UNPKG

playcanvas

Version:

Open-source WebGL/WebGPU 3D engine for the web

77 lines (76 loc) 2.06 kB
var compose_default = ` #include "tonemappingPS" #include "gammaPS" varying uv0: vec2f; var sceneTexture: texture_2d<f32>; var sceneTextureSampler: sampler; uniform sceneTextureInvRes: vec2f; #include "composeBloomPS" #include "composeDofPS" #include "composeSsaoPS" #include "composeGradingPS" #include "composeColorEnhancePS" #include "composeVignettePS" #include "composeFringingPS" #include "composeCasPS" #include "composeColorLutPS" #include "composeDeclarationsPS" @fragment fn fragmentMain(input: FragmentInput) -> FragmentOutput { #include "composeMainStartPS" var output: FragmentOutput; var uv = uv0; let scene = textureSampleLevel(sceneTexture, sceneTextureSampler, uv, 0.0); var result = scene.rgb; #ifdef CAS result = applyCas(result, uv, uniform.sharpness); #endif #ifdef DOF result = applyDof(result, uv0); #endif #ifdef SSAO_TEXTURE result = applySsao(result, uv0); #endif #ifdef FRINGING result = applyFringing(result, uv); #endif #ifdef BLOOM result = applyBloom(result, uv0); #endif #ifdef COLOR_ENHANCE result = applyColorEnhance(result); #endif #ifdef GRADING result = applyGrading(result); #endif result = toneMap(max(vec3f(0.0), result)); #ifdef COLOR_LUT result = applyColorLUT(result); #endif #ifdef VIGNETTE result = applyVignette(result, uv); #endif #include "composeMainEndPS" #ifdef DEBUG_COMPOSE #if DEBUG_COMPOSE == scene result = scene.rgb; #elif defined(BLOOM) && DEBUG_COMPOSE == bloom result = dBloom * uniform.bloomIntensity; #elif defined(DOF) && DEBUG_COMPOSE == dofcoc result = vec3f(dCoc, 0.0); #elif defined(DOF) && DEBUG_COMPOSE == dofblur result = dBlur; #elif defined(SSAO_TEXTURE) && DEBUG_COMPOSE == ssao result = vec3f(dSsao); #elif defined(VIGNETTE) && DEBUG_COMPOSE == vignette result = vec3f(dVignette); #endif #endif result = gammaCorrectOutput(result); output.color = vec4f(result, scene.a); return output; } `; export { compose_default as default };