|
@@ -1637,40 +1637,24 @@ THREE.ShaderChunk = {
|
|
|
"mat3 depthKernel;",
|
|
|
|
|
|
"depthKernel[0][0] = unpackDepth( texture2D( shadowMap[ i ], shadowCoord.xy + vec2( dx0, dy0 ) ) );",
|
|
|
- "if ( depthKernel[0][0] < shadowCoord.z ) shadowKernel[0][0] = 0.25;",
|
|
|
- "else shadowKernel[0][0] = 0.0;",
|
|
|
-
|
|
|
"depthKernel[0][1] = unpackDepth( texture2D( shadowMap[ i ], shadowCoord.xy + vec2( dx0, 0.0 ) ) );",
|
|
|
- "if ( depthKernel[0][1] < shadowCoord.z ) shadowKernel[0][1] = 0.25;",
|
|
|
- "else shadowKernel[0][1] = 0.0;",
|
|
|
-
|
|
|
- "depthKernel[0][2] = unpackDepth( texture2D( shadowMap[ i], shadowCoord.xy + vec2( dx0, dy1 ) ) );",
|
|
|
- "if ( depthKernel[0][2] < shadowCoord.z ) shadowKernel[0][2] = 0.25;",
|
|
|
- "else shadowKernel[0][2] = 0.0;",
|
|
|
-
|
|
|
+ "depthKernel[0][2] = unpackDepth( texture2D( shadowMap[ i ], shadowCoord.xy + vec2( dx0, dy1 ) ) );",
|
|
|
"depthKernel[1][0] = unpackDepth( texture2D( shadowMap[ i ], shadowCoord.xy + vec2( 0.0, dy0 ) ) );",
|
|
|
- "if ( depthKernel[1][0] < shadowCoord.z ) shadowKernel[1][0] = 0.25;",
|
|
|
- "else shadowKernel[1][0] = 0.0;",
|
|
|
-
|
|
|
"depthKernel[1][1] = unpackDepth( texture2D( shadowMap[ i ], shadowCoord.xy ) );",
|
|
|
- "if ( depthKernel[1][1] < shadowCoord.z ) shadowKernel[1][1] = 0.25;",
|
|
|
- "else shadowKernel[1][1] = 0.0;",
|
|
|
-
|
|
|
"depthKernel[1][2] = unpackDepth( texture2D( shadowMap[ i ], shadowCoord.xy + vec2( 0.0, dy1 ) ) );",
|
|
|
- "if ( depthKernel[1][2] < shadowCoord.z ) shadowKernel[1][2] = 0.25;",
|
|
|
- "else shadowKernel[1][2] = 0.0;",
|
|
|
-
|
|
|
"depthKernel[2][0] = unpackDepth( texture2D( shadowMap[ i ], shadowCoord.xy + vec2( dx1, dy0 ) ) );",
|
|
|
- "if ( depthKernel[2][0] < shadowCoord.z ) shadowKernel[2][0] = 0.25;",
|
|
|
- "else shadowKernel[2][0] = 0.0;",
|
|
|
-
|
|
|
"depthKernel[2][1] = unpackDepth( texture2D( shadowMap[ i ], shadowCoord.xy + vec2( dx1, 0.0 ) ) );",
|
|
|
- "if ( depthKernel[2][1] < shadowCoord.z ) shadowKernel[2][1] = 0.25;",
|
|
|
- "else shadowKernel[2][1] = 0.0;",
|
|
|
-
|
|
|
"depthKernel[2][2] = unpackDepth( texture2D( shadowMap[ i ], shadowCoord.xy + vec2( dx1, dy1 ) ) );",
|
|
|
- "if ( depthKernel[2][2] < shadowCoord.z ) shadowKernel[2][2] = 0.25;",
|
|
|
- "else shadowKernel[2][2] = 0.0;",
|
|
|
+
|
|
|
+ "vec3 shadowZ = vec3( shadowCoord.z );",
|
|
|
+ "shadowKernel[0] = vec3(lessThan(depthKernel[0], shadowZ ));",
|
|
|
+ "shadowKernel[0] *= vec3(0.25);",
|
|
|
+
|
|
|
+ "shadowKernel[1] = vec3(lessThan(depthKernel[1], shadowZ ));",
|
|
|
+ "shadowKernel[1] *= vec3(0.25);",
|
|
|
+
|
|
|
+ "shadowKernel[2] = vec3(lessThan(depthKernel[2], shadowZ ));",
|
|
|
+ "shadowKernel[2] *= vec3(0.25);",
|
|
|
|
|
|
"vec2 fractionalCoord = 1.0 - fract( shadowCoord.xy * shadowMapSize[i].xy );",
|
|
|
|