UNPKG

playcanvas

Version:

PlayCanvas WebGL game engine

4 lines (2 loc) 2.09 kB
var shadowStandardGL2PS = "\nfloat _getShadowPCF5x5(SHADOWMAP_ACCEPT(shadowMap), vec3 shadowCoord, vec3 shadowParams) {\n float z = shadowCoord.z;\n vec2 uv = shadowCoord.xy * shadowParams.x;\n float shadowMapSizeInv = 1.0 / shadowParams.x;\n vec2 base_uv = floor(uv + 0.5);\n float s = (uv.x + 0.5 - base_uv.x);\n float t = (uv.y + 0.5 - base_uv.y);\n base_uv -= vec2(0.5);\n base_uv *= shadowMapSizeInv;\n float uw0 = (4.0 - 3.0 * s);\n float uw1 = 7.0;\n float uw2 = (1.0 + 3.0 * s);\n float u0 = (3.0 - 2.0 * s) / uw0 - 2.0;\n float u1 = (3.0 + s) / uw1;\n float u2 = s / uw2 + 2.0;\n float vw0 = (4.0 - 3.0 * t);\n float vw1 = 7.0;\n float vw2 = (1.0 + 3.0 * t);\n float v0 = (3.0 - 2.0 * t) / vw0 - 2.0;\n float v1 = (3.0 + t) / vw1;\n float v2 = t / vw2 + 2.0;\n float sum = 0.0;\n u0 = u0 * shadowMapSizeInv + base_uv.x;\n v0 = v0 * shadowMapSizeInv + base_uv.y;\n u1 = u1 * shadowMapSizeInv + base_uv.x;\n v1 = v1 * shadowMapSizeInv + base_uv.y;\n u2 = u2 * shadowMapSizeInv + base_uv.x;\n v2 = v2 * shadowMapSizeInv + base_uv.y;\n sum += uw0 * vw0 * textureShadow(shadowMap, vec3(u0, v0, z));\n sum += uw1 * vw0 * textureShadow(shadowMap, vec3(u1, v0, z));\n sum += uw2 * vw0 * textureShadow(shadowMap, vec3(u2, v0, z));\n sum += uw0 * vw1 * textureShadow(shadowMap, vec3(u0, v1, z));\n sum += uw1 * vw1 * textureShadow(shadowMap, vec3(u1, v1, z));\n sum += uw2 * vw1 * textureShadow(shadowMap, vec3(u2, v1, z));\n sum += uw0 * vw2 * textureShadow(shadowMap, vec3(u0, v2, z));\n sum += uw1 * vw2 * textureShadow(shadowMap, vec3(u1, v2, z));\n sum += uw2 * vw2 * textureShadow(shadowMap, vec3(u2, v2, z));\n sum *= 1.0f / 144.0;\n sum = saturate(sum);\n return sum;\n}\nfloat getShadowPCF5x5(SHADOWMAP_ACCEPT(shadowMap), vec3 shadowCoord, vec4 shadowParams) {\n return _getShadowPCF5x5(SHADOWMAP_PASS(shadowMap), shadowCoord, shadowParams.xyz);\n}\nfloat getShadowSpotPCF5x5(SHADOWMAP_ACCEPT(shadowMap), vec3 shadowCoord, vec4 shadowParams) {\n return _getShadowPCF5x5(SHADOWMAP_PASS(shadowMap), shadowCoord, shadowParams.xyz);\n}\n"; export { shadowStandardGL2PS as default };