Explorar el Código

SSGINode: Fix linear thickness computation. (#31863)

Michael Herzog hace 9 meses
padre
commit
b4e2207037

+ 1 - 1
examples/jsm/tsl/display/SSGINode.js

@@ -493,7 +493,7 @@ class SSGINode extends TempNode {
 
 				const sampleViewPosition = getViewPosition( sampleUV, sampleDepth( sampleUV ), this._cameraProjectionMatrixInverse ).toConst();
 				const pixelToSample = sampleViewPosition.sub( viewPosition ).normalize().toConst();
-				const linearThicknessMultiplier = this.useLinearThickness.equal( true ).select( sampleViewPosition.z.div( this._cameraFar ).clamp().mul( 100 ), float( 1 ) );
+				const linearThicknessMultiplier = this.useLinearThickness.equal( true ).select( sampleViewPosition.z.negate().div( this._cameraFar ).clamp().mul( 100 ), float( 1 ) );
 				const pixelToSampleBackface = normalize( sampleViewPosition.sub( linearThicknessMultiplier.mul( viewDir ).mul( THICKNESS ) ).sub( viewPosition ) );
 
 				let frontBackHorizon = vec2( dot( pixelToSample, viewDir ), dot( pixelToSampleBackface, viewDir ) );

+ 1 - 1
examples/webgpu_postprocessing_ssgi.html

@@ -132,9 +132,9 @@
 				gui.add( giPass.backfaceLighting, 'value', 0, 1 ).name( 'backface lighting' );
 				gui.add( giPass.aoIntensity, 'value', 0, 4 ).name( 'AO intenstiy' );
 				gui.add( giPass.giIntensity, 'value', 0, 100 ).name( 'GI intenstiy' );
+				gui.add( giPass.useLinearThickness, 'value' ).name( 'use linear thickness' );
 				gui.add( giPass.useScreenSpaceSampling, 'value' ).name( 'screen-space sampling' );
 				gui.add( giPass, 'useTemporalFiltering' ).name( 'temporal filtering' );
-				//gui.add( giPass.useLinearThickness, 'value' ).name( 'use linear thickness' );
 
 				const params = {
 					output: 0

粤ICP备19079148号