浏览代码

Fixed DoubleSide regression in Projector.

Mr.doob 11 年之前
父节点
当前提交
d61d5f7a3e
共有 2 个文件被更改,包括 4 次插入3 次删除
  1. 2 2
      examples/canvas_materials.html
  2. 2 1
      src/core/Projector.js

+ 2 - 2
examples/canvas_materials.html

@@ -68,8 +68,8 @@
 				var materials = [
 
 					new THREE.MeshBasicMaterial( { color: 0x00ffff, wireframe: true, side: THREE.DoubleSide } ),
-					new THREE.MeshBasicMaterial( { color: 0xff0000, blending: THREE.AdditiveBlending, side: THREE.DoubleSide } ),
-					new THREE.MeshLambertMaterial( { color: 0xffffff, shading: THREE.FlatShading, side: THREE.DoubleSide, overdraw: true } ),
+					new THREE.MeshBasicMaterial( { color: 0xff0000, blending: THREE.AdditiveBlending } ),
+					new THREE.MeshLambertMaterial( { color: 0xffffff, shading: THREE.FlatShading, overdraw: true } ),
 					new THREE.MeshLambertMaterial( { color: 0xffffff, shading: THREE.SmoothShading, overdraw: true } ),
 					new THREE.MeshDepthMaterial( { overdraw: true } ),
 					new THREE.MeshNormalMaterial( { overdraw: true } ),

+ 2 - 1
src/core/Projector.js

@@ -470,7 +470,8 @@ THREE.Projector = function () {
 
 						var visible = renderList.checkTriangleVisibility( v1, v2, v3 );
 
-						if ( visible === ( side === THREE.BackSide ) ) continue;
+						if ( ( visible === false && side === THREE.FrontSide ) ||
+							 ( visible === true && side === THREE.BackSide ) ) continue;
 
 						_face = getNextFaceInPool();