|
@@ -33,15 +33,11 @@ function WebGLShadowMap( _renderer, _objects, _capabilities ) {
|
|
|
|
|
|
const shadowMaterialVertical = new ShaderMaterial( {
|
|
const shadowMaterialVertical = new ShaderMaterial( {
|
|
|
|
|
|
- defines: {
|
|
|
|
- SAMPLE_RATE: 2.0 / 8.0,
|
|
|
|
- HALF_SAMPLE_RATE: 1.0 / 8.0
|
|
|
|
- },
|
|
|
|
-
|
|
|
|
uniforms: {
|
|
uniforms: {
|
|
shadow_pass: { value: null },
|
|
shadow_pass: { value: null },
|
|
resolution: { value: new Vector2() },
|
|
resolution: { value: new Vector2() },
|
|
- radius: { value: 4.0 }
|
|
|
|
|
|
+ radius: { value: 4.0 },
|
|
|
|
+ samples: { value: 8.0 }
|
|
},
|
|
},
|
|
|
|
|
|
vertexShader: vsm_vert,
|
|
vertexShader: vsm_vert,
|
|
@@ -213,6 +209,7 @@ function WebGLShadowMap( _renderer, _objects, _capabilities ) {
|
|
shadowMaterialVertical.uniforms.shadow_pass.value = shadow.map.texture;
|
|
shadowMaterialVertical.uniforms.shadow_pass.value = shadow.map.texture;
|
|
shadowMaterialVertical.uniforms.resolution.value = shadow.mapSize;
|
|
shadowMaterialVertical.uniforms.resolution.value = shadow.mapSize;
|
|
shadowMaterialVertical.uniforms.radius.value = shadow.radius;
|
|
shadowMaterialVertical.uniforms.radius.value = shadow.radius;
|
|
|
|
+ shadowMaterialVertical.uniforms.samples.value = shadow.blurSamples;
|
|
_renderer.setRenderTarget( shadow.mapPass );
|
|
_renderer.setRenderTarget( shadow.mapPass );
|
|
_renderer.clear();
|
|
_renderer.clear();
|
|
_renderer.renderBufferDirect( camera, null, geometry, shadowMaterialVertical, fullScreenMesh, null );
|
|
_renderer.renderBufferDirect( camera, null, geometry, shadowMaterialVertical, fullScreenMesh, null );
|
|
@@ -222,6 +219,7 @@ function WebGLShadowMap( _renderer, _objects, _capabilities ) {
|
|
shadowMaterialHorizontal.uniforms.shadow_pass.value = shadow.mapPass.texture;
|
|
shadowMaterialHorizontal.uniforms.shadow_pass.value = shadow.mapPass.texture;
|
|
shadowMaterialHorizontal.uniforms.resolution.value = shadow.mapSize;
|
|
shadowMaterialHorizontal.uniforms.resolution.value = shadow.mapSize;
|
|
shadowMaterialHorizontal.uniforms.radius.value = shadow.radius;
|
|
shadowMaterialHorizontal.uniforms.radius.value = shadow.radius;
|
|
|
|
+ shadowMaterialHorizontal.uniforms.samples.value = shadow.blurSamples;
|
|
_renderer.setRenderTarget( shadow.map );
|
|
_renderer.setRenderTarget( shadow.map );
|
|
_renderer.clear();
|
|
_renderer.clear();
|
|
_renderer.renderBufferDirect( camera, null, geometry, shadowMaterialHorizontal, fullScreenMesh, null );
|
|
_renderer.renderBufferDirect( camera, null, geometry, shadowMaterialHorizontal, fullScreenMesh, null );
|