playcanvas
Version:
PlayCanvas WebGL game engine
26 lines (20 loc) • 728 B
JavaScript
var linearizeDepthPS = /* wgsl */ `
fn linearizeDepthWithParams(z: f32, cameraParams: vec4f) -> f32 {
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 camera_params: vec4f; // x: 1 / camera_far, y: camera_far, z: camera_near, w: is_ortho
fn linearizeDepth(z: f32) -> f32 {
return linearizeDepthWithParams(z, uniform.camera_params);
}
`;
export { linearizeDepthPS as default };