Skip to content

Commit e9f292d

Browse files
committed
Add: infiniteThick.
1 parent b45a611 commit e9f292d

File tree

3 files changed

+26
-3
lines changed

3 files changed

+26
-3
lines changed

examples/jsm/postprocessing/SSRrPass.js

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,23 @@ var SSRrPass = function ( { renderer, scene, camera, width, height, selects, enc
6565
}
6666
} );
6767

68+
this._infiniteThick = SSRrShader.defines.INFINITE_THICK;
69+
Object.defineProperty( this, 'infiniteThick', {
70+
get() {
71+
72+
return this._infiniteThick;
73+
74+
},
75+
set( val ) {
76+
77+
if ( this._infiniteThick === val ) return;
78+
this._infiniteThick = val;
79+
this.ssrrMaterial.defines.INFINITE_THICK = val;
80+
this.ssrrMaterial.needsUpdate = true;
81+
82+
}
83+
} );
84+
6885
// beauty render target with depth buffer
6986

7087
var depthTexture = new DepthTexture();

examples/jsm/shaders/SSRrShader.js

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ var SSRrShader = {
99
MAX_STEP: 0,
1010
PERSPECTIVE_CAMERA: true,
1111
SPECULAR: true,
12+
INFINITE_THICK: true,
1213
},
1314

1415
uniforms: {
@@ -180,10 +181,14 @@ var SSRrShader = {
180181
float viewRefractRayZ=viewPosition.z+s*(d1viewPosition.z-viewPosition.z);
181182
float sD=surfDist;
182183
#endif
183-
if(viewRefractRayZ-sD>vZ) continue;
184184
185-
float away=pointToLineDistance(vP,viewPosition,d1viewPosition);
186-
if(away<=sD){
185+
#ifdef INFINITE_THICK
186+
if(viewRefractRayZ<=vZ){
187+
#else
188+
if(viewRefractRayZ-sD>vZ) continue;
189+
float away=pointToLineDistance(vP,viewPosition,d1viewPosition);
190+
if(away<=sD){
191+
#endif
187192
vec4 refractColor=texture2D(tDiffuse,uv);
188193
#ifdef SPECULAR
189194
vec4 specularColor=texture2D(tSpecular,vUv);

examples/webgl_postprocessing_ssrr.html

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -217,6 +217,7 @@
217217
folder.add( ssrrPass, 'surfDist' ).min( 0 ).max( .005 ).step( .0001 );
218218
ssrrPass.maxDistance = 15;
219219
folder.add( ssrrPass, 'maxDistance' ).min( 0 ).max( 20 ).step( .001 )
220+
folder.add( ssrrPass, 'infiniteThick' );
220221
// folder.open()
221222
// gui.close()
222223

0 commit comments

Comments
 (0)