playcanvas
Version:
PlayCanvas WebGL game engine
4 lines (2 loc) • 1.07 kB
JavaScript
var litShadowMainPS = '\n#if LIGHT_TYPE != DIRECTIONAL\n uniform vec3 view_position;\n uniform float light_radius;\n#endif\n#if SHADOW_TYPE == PCSS_32F\n #include "linearizeDepthPS"\n#endif\nvoid main(void) {\n evaluateFrontend();\n #ifdef PERSPECTIVE_DEPTH\n float depth = gl_FragCoord.z;\n #if SHADOW_TYPE == PCSS_32F\n #if LIGHT_TYPE != DIRECTIONAL\n depth = linearizeDepth(depth, camera_params);\n #endif\n #endif\n #else\n float depth = min(distance(view_position, vPositionW) / light_radius, 0.99999);\n #define MODIFIED_DEPTH\n #endif\n #if SHADOW_TYPE == VSM_16F || SHADOW_TYPE == VSM_32F\n #if SHADOW_TYPE == VSM_32F\n float exponent = 15.0;\n #else\n float exponent = 5.54;\n #endif\n depth = 2.0 * depth - 1.0;\n depth = exp(exponent * depth);\n gl_FragColor = vec4(depth, depth*depth, 1.0, 1.0);\n #else\n #if SHADOW_TYPE == PCSS_32F\n gl_FragColor.r = depth;\n #else\n #ifdef MODIFIED_DEPTH\n gl_FragDepth = depth;\n #endif\n gl_FragColor = vec4(1.0);\n #endif\n #endif\n}\n';
export { litShadowMainPS as default };