浏览代码

Merge pull request #16578 from yomboprime/ldraw_opacity

LDrawLoader: Make lines honor material opacity
Mr.doob 6 年之前
父节点
当前提交
37bc2fc852
共有 1 个文件被更改,包括 10 次插入2 次删除
  1. 10 2
      examples/js/loaders/LDrawLoader.js

+ 10 - 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;
@@ -1288,7 +1289,12 @@ THREE.LDrawLoader = ( function () {
 			if ( ! edgeMaterial ) {
 			if ( ! edgeMaterial ) {
 
 
 				// This is the material used for edges
 				// This is the material used for edges
-				edgeMaterial = new THREE.LineBasicMaterial( { color: edgeColour } );
+				edgeMaterial = new THREE.LineBasicMaterial( {
+					color: edgeColour,
+					transparent: isTransparent,
+					opacity: alpha,
+					depthWrite: ! isTransparent
+				} );
 				edgeMaterial.userData.code = code;
 				edgeMaterial.userData.code = code;
 				edgeMaterial.name = name + " - Edge";
 				edgeMaterial.name = name + " - Edge";
 				edgeMaterial.userData.canHaveEnvMap = false;
 				edgeMaterial.userData.canHaveEnvMap = false;
@@ -1304,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;