playcanvas
Version:
PlayCanvas WebGL game engine
26 lines (24 loc) • 751 B
JavaScript
var wgslCocPS = `
varying uv0: vec2f;
uniform params: vec3f;
@fragment
fn fragmentMain(input: FragmentInput) -> FragmentOutput {
var output: FragmentOutput;
let depth: f32 = getLinearScreenDepth(uv0);
let focusDistance: f32 = uniform.params.x;
let focusRange: f32 = uniform.params.y;
let invRange: f32 = uniform.params.z;
let farRange: f32 = focusDistance + focusRange * 0.5;
let cocFar: f32 = min((depth - farRange) * invRange, 1.0);
let nearRange: f32 = focusDistance - focusRange * 0.5;
var cocNear: f32 = min((nearRange - depth) * invRange, 1.0);
var cocNear: f32 = 0.0;
output.color = vec4f(cocFar, cocNear, 0.0, 0.0);
return output;
}
`;
export { wgslCocPS as default };