@@ -31,12 +31,13 @@ function WebGLShadowMap( _renderer, _objects, _capabilities ) {
3131 const shadowSide = { 0 : BackSide , 1 : FrontSide , 2 : DoubleSide } ;
3232
3333 const shadowMaterialVertical = new ShaderMaterial ( {
34-
34+ defines : {
35+ VSM_SAMPLES : 8
36+ } ,
3537 uniforms : {
3638 shadow_pass : { value : null } ,
3739 resolution : { value : new Vector2 ( ) } ,
38- radius : { value : 4.0 } ,
39- samples : { value : 8.0 }
40+ radius : { value : 4.0 }
4041 } ,
4142
4243 vertexShader : vsm . vertex ,
@@ -202,12 +203,21 @@ function WebGLShadowMap( _renderer, _objects, _capabilities ) {
202203
203204 const geometry = _objects . update ( fullScreenMesh ) ;
204205
206+ if ( shadowMaterialVertical . defines . VSM_SAMPLES !== shadow . blurSamples ) {
207+
208+ shadowMaterialVertical . defines . VSM_SAMPLES = shadow . blurSamples ;
209+ shadowMaterialHorizontal . defines . VSM_SAMPLES = shadow . blurSamples ;
210+
211+ shadowMaterialVertical . needsUpdate = true ;
212+ shadowMaterialHorizontal . needsUpdate = true ;
213+
214+ }
215+
205216 // vertical pass
206217
207218 shadowMaterialVertical . uniforms . shadow_pass . value = shadow . map . texture ;
208219 shadowMaterialVertical . uniforms . resolution . value = shadow . mapSize ;
209220 shadowMaterialVertical . uniforms . radius . value = shadow . radius ;
210- shadowMaterialVertical . uniforms . samples . value = shadow . blurSamples ;
211221 _renderer . setRenderTarget ( shadow . mapPass ) ;
212222 _renderer . clear ( ) ;
213223 _renderer . renderBufferDirect ( camera , null , geometry , shadowMaterialVertical , fullScreenMesh , null ) ;
@@ -217,7 +227,6 @@ function WebGLShadowMap( _renderer, _objects, _capabilities ) {
217227 shadowMaterialHorizontal . uniforms . shadow_pass . value = shadow . mapPass . texture ;
218228 shadowMaterialHorizontal . uniforms . resolution . value = shadow . mapSize ;
219229 shadowMaterialHorizontal . uniforms . radius . value = shadow . radius ;
220- shadowMaterialHorizontal . uniforms . samples . value = shadow . blurSamples ;
221230 _renderer . setRenderTarget ( shadow . map ) ;
222231 _renderer . clear ( ) ;
223232 _renderer . renderBufferDirect ( camera , null , geometry , shadowMaterialHorizontal , fullScreenMesh , null ) ;
0 commit comments