playcanvas
Version:
Open-source WebGL/WebGPU 3D engine for the web
35 lines (29 loc) • 822 B
JavaScript
var coc_default = (
/* glsl */
`
varying vec2 uv0;
uniform vec3 params;
void main()
{
float depth = getLinearScreenDepth(uv0);
// near and far focus ranges
float focusDistance = params.x;
float focusRange = params.y;
float invRange = params.z;
float farRange = focusDistance + focusRange * 0.5;
// near and far CoC
float cocFar = min((depth - farRange) * invRange, 1.0);
float nearRange = focusDistance - focusRange * 0.5;
float cocNear = min((nearRange - depth) * invRange, 1.0);
float cocNear = 0.0;
gl_FragColor = vec4(cocFar, cocNear, 0.0, 0.0);
}
`
);
export {
coc_default as default
};