浏览代码

Set depthWrite so lines are not occluded by transparent meshes

yomboprime 6 年之前
父节点
当前提交
f5bf93fc18
共有 1 个文件被更改,包括 6 次插入2 次删除
  1. 6 2
      examples/js/loaders/LDrawLoader.js

+ 6 - 2
examples/js/loaders/LDrawLoader.js

@@ -1273,6 +1273,7 @@ THREE.LDrawLoader = ( function () {
 			material.transparent = isTransparent;
 			material.transparent = isTransparent;
 			material.premultipliedAlpha = true;
 			material.premultipliedAlpha = true;
 			material.opacity = alpha;
 			material.opacity = alpha;
+			material.depthWrite = ! isTransparent;
 
 
 			material.polygonOffset = true;
 			material.polygonOffset = true;
 			material.polygonOffsetFactor = 1;
 			material.polygonOffsetFactor = 1;
@@ -1291,7 +1292,8 @@ THREE.LDrawLoader = ( function () {
 				edgeMaterial = new THREE.LineBasicMaterial( {
 				edgeMaterial = new THREE.LineBasicMaterial( {
 					color: edgeColour,
 					color: edgeColour,
 					transparent: isTransparent,
 					transparent: isTransparent,
-					opacity: alpha
+					opacity: alpha,
+					depthWrite: ! isTransparent
 				} );
 				} );
 				edgeMaterial.userData.code = code;
 				edgeMaterial.userData.code = code;
 				edgeMaterial.name = name + " - Edge";
 				edgeMaterial.name = name + " - Edge";
@@ -1308,7 +1310,9 @@ THREE.LDrawLoader = ( function () {
 						opacity: {
 						opacity: {
 							value: alpha
 							value: alpha
 						}
 						}
-					}
+					},
+					transparent: isTransparent,
+					depthWrite: ! isTransparent
 				} );
 				} );
 				edgeMaterial.userData.conditionalEdgeMaterial.userData.canHaveEnvMap = false;
 				edgeMaterial.userData.conditionalEdgeMaterial.userData.canHaveEnvMap = false;