playcanvas
Version:
Open-source WebGL/WebGPU 3D engine for the web
109 lines (87 loc) • 2.77 kB
JavaScript
var compose_default = (
/* glsl */
`
varying vec2 uv0;
uniform sampler2D sceneTexture;
uniform vec2 sceneTextureInvRes;
void main() {
vec2 uv = uv0;
vec4 scene = texture2DLod(sceneTexture, uv, 0.0);
vec3 result = scene.rgb;
// Apply CAS
result = applyCas(result, uv, sharpness);
// Apply DOF
result = applyDof(result, uv0);
// Apply SSAO
result = applySsao(result, uv0);
// Apply Fringing
result = applyFringing(result, uv);
// Apply Bloom
result = applyBloom(result, uv0);
// Apply Color Enhancement (shadows, highlights, vibrance)
result = applyColorEnhance(result);
// Apply Color Grading
result = applyGrading(result);
// Apply Tone Mapping
result = toneMap(max(vec3(0.0), result));
// Apply Color LUT after tone mapping, in LDR space
result = applyColorLUT(result);
// Apply Vignette
result = applyVignette(result, uv);
// Debug output handling in one centralized location
result = scene.rgb;
result = dBloom * bloomIntensity;
result = vec3(dCoc, 0.0);
result = dBlur;
result = vec3(dSsao);
result = vec3(dVignette);
// Apply gamma correction
result = gammaCorrectOutput(result);
gl_FragColor = vec4(result, scene.a);
}
`
);
export {
compose_default as default
};