Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
float const depthGL = read_imagef (depthImage, depthSampler, (int2) (x, y)).x; // in range [0,1]
float2 const pixel = (float2) ( (x + 0.5f) / (float) imageSizeX,
(y + 0.5f) / (float) imageSizeY); // in range [0,1]
float4 point_NDC = (float4) ( 2.0f * pixel.x - 1.0f, // in range [-1,1]
2.0f * pixel.y - 1.0f, // in range [-1,1]
2.0f * depthGL - 1.0f, // in range [-1,1]
1.0f);
point_NDC.z -= 1.25e-6f; // apply constant polygon offset for OpenGL depth
float4 const point_WORLD = matVecMult (trsf_NDC_WORLD, point_NDC);
float const rayTime = depthGL < 1.f ? length (point_WORLD.xyz / point_WORLD.w - ray.Origin.xyz) : BIGFLOAT;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment