@animech-public/playcanvas
Version:
PlayCanvas WebGL game engine
31 lines (29 loc) • 776 B
JavaScript
var linearizeDepthPS = `
float linearizeDepth(float z, vec4 cameraParams) {
if (cameraParams.w == 0.0)
return (cameraParams.z * cameraParams.y) / (cameraParams.y + z * (cameraParams.z - cameraParams.y));
else
return cameraParams.z + z * (cameraParams.y - cameraParams.z);
}
uniform vec4 camera_params;
float linearizeDepth(float z) {
return linearizeDepth(z, camera_params);
}
float unpackFloat(vec4 rgbaDepth) {
const vec4 bitShift = vec4(1.0 / (256.0 * 256.0 * 256.0), 1.0 / (256.0 * 256.0), 1.0 / 256.0, 1.0);
return dot(rgbaDepth, bitShift);
}
`;
export { linearizeDepthPS as default };