فهرست منبع

ReflectorForSSRPass : Fixed feedback and improved robustness (#21385)

* fixed illegal feedback

* x === true .. over Boolean(x)

* toggle reflector externally

* rm comments

* add empty lines
ycw 4 سال پیش
والد
کامیت
a5296898e0
2فایلهای تغییر یافته به همراه5 افزوده شده و 4 حذف شده
  1. 4 4
      examples/jsm/objects/ReflectorForSSRPass.js
  2. 1 0
      examples/jsm/postprocessing/SSRPass.js

+ 4 - 4
examples/jsm/objects/ReflectorForSSRPass.js

@@ -32,7 +32,7 @@ var Reflector = function ( geometry, options ) {
 	var textureHeight = options.textureHeight || 512;
 	var clipBias = options.clipBias || 0;
 	var shader = options.shader || Reflector.ReflectorShader;
-	var useDepthTexture = options.useDepthTexture
+	var useDepthTexture = options.useDepthTexture === true;
 	var yAxis = new Vector3(0, 1, 0);
 	var vecTemp0 = new Vector3();
 	var vecTemp1 = new Vector3();
@@ -108,9 +108,9 @@ var Reflector = function ( geometry, options ) {
 
 	var material = new ShaderMaterial( {
 		transparent: useDepthTexture,
-    defines: Object.assign({
-      useDepthTexture: useDepthTexture
-    }, Reflector.ReflectorShader.defines),
+    defines: Object.assign( {}, Reflector.ReflectorShader.defines, {
+      useDepthTexture
+    } ),
 		uniforms: UniformsUtils.clone( shader.uniforms ),
 		fragmentShader: shader.fragmentShader,
 		vertexShader: shader.vertexShader

+ 1 - 0
examples/jsm/postprocessing/SSRPass.js

@@ -383,6 +383,7 @@ SSRPass.prototype = Object.assign( Object.create( Pass.prototype ), {
 		renderer.clear();
 		if ( this.groundReflector ) {
 
+			this.groundReflector.visible = false;
 			this.groundReflector.doRender( this.renderer, this.scene, this.camera );
 			this.groundReflector.visible = true;