Browse Source

Merge pull request #13272 from sunag/90dev-mirror-issue

mirror nodes fixes
Mr.doob 7 years ago
parent
commit
32c8956fbe
2 changed files with 7 additions and 3 deletions
  1. 2 0
      examples/js/objects/ReflectorRTT.js
  2. 5 3
      examples/webgl_mirror_nodes.html

+ 2 - 0
examples/js/objects/ReflectorRTT.js

@@ -4,6 +4,8 @@ THREE.ReflectorRTT = function ( geometry, options ) {
 
 
 	this.geometry.setDrawRange( 0, 0 ); // avoid rendering geometry
 	this.geometry.setDrawRange( 0, 0 ); // avoid rendering geometry
 
 
+	this.renderOrder = -Infinity; // render RTT first
+
 };
 };
 
 
 THREE.ReflectorRTT.prototype = Object.create( THREE.Reflector.prototype );
 THREE.ReflectorRTT.prototype = Object.create( THREE.Reflector.prototype );

+ 5 - 3
examples/webgl_mirror_nodes.html

@@ -227,9 +227,11 @@
 			//--
 			//--
 
 
 			var mirrorMesh = new THREE.Mesh( planeGeo, groundMirrorMaterial );
 			var mirrorMesh = new THREE.Mesh( planeGeo, groundMirrorMaterial );
-			mirrorMesh.add( groundMirror );
-			mirrorMesh.rotateX( - Math.PI / 2 );
-			scene.add( mirrorMesh );
+			// add all alternative mirror materials inside the ReflectorRTT to prevent:
+			// glDrawElements: Source and destination textures of the draw are the same.
+			groundMirror.add( mirrorMesh );
+			groundMirror.rotateX( - Math.PI / 2 );
+			scene.add( groundMirror );
 
 
 			sphereGroup = new THREE.Object3D();
 			sphereGroup = new THREE.Object3D();
 			scene.add( sphereGroup );
 			scene.add( sphereGroup );