Răsfoiți Sursa

Revert "GLTFLoader: Simplified alphaMode handling."

This reverts commit 15947a3ac2006f980af50cb625024634e2cf1453.
Mr.doob 5 ani în urmă
părinte
comite
8582c74379

+ 15 - 3
examples/js/loaders/GLTFLoader.js

@@ -2092,7 +2092,7 @@ THREE.GLTFLoader = ( function () {
 
 		}
 
-		var alphaMode = materialDef.alphaMode;
+		var alphaMode = materialDef.alphaMode || ALPHA_MODES.OPAQUE;
 
 		if ( alphaMode === ALPHA_MODES.BLEND ) {
 
@@ -2101,9 +2101,21 @@ THREE.GLTFLoader = ( function () {
 			// See: https://github.com/mrdoob/three.js/issues/17706
 			materialParams.depthWrite = false;
 
-		} else if ( alphaMode === ALPHA_MODES.MASK ) {
+		} else {
+
+			materialParams.transparent = false;
+
+			if ( alphaMode === ALPHA_MODES.MASK ) {
+
+				materialParams.alphaTest = materialDef.alphaCutoff !== undefined ? materialDef.alphaCutoff : 0.5;
 
-			materialParams.alphaTest = materialDef.alphaCutoff !== undefined ? materialDef.alphaCutoff : 0.5;
+			} else {
+
+				// for ALPHA_MODES.OPAQUE, we use a negative alphaTest value to enable alphaTesting,
+				// causing the test to always be passed, but also replacing any alpha value with 1.0.
+				materialParams.alphaTest = - 0.5;
+
+			}
 
 		}
 

+ 15 - 3
examples/jsm/loaders/GLTFLoader.js

@@ -2155,7 +2155,7 @@ var GLTFLoader = ( function () {
 
 		}
 
-		var alphaMode = materialDef.alphaMode;
+		var alphaMode = materialDef.alphaMode || ALPHA_MODES.OPAQUE;
 
 		if ( alphaMode === ALPHA_MODES.BLEND ) {
 
@@ -2164,9 +2164,21 @@ var GLTFLoader = ( function () {
 			// See: https://github.com/mrdoob/three.js/issues/17706
 			materialParams.depthWrite = false;
 
-		} else if ( alphaMode === ALPHA_MODES.MASK ) {
+		} else {
+
+			materialParams.transparent = false;
+
+			if ( alphaMode === ALPHA_MODES.MASK ) {
+
+				materialParams.alphaTest = materialDef.alphaCutoff !== undefined ? materialDef.alphaCutoff : 0.5;
 
-			materialParams.alphaTest = materialDef.alphaCutoff !== undefined ? materialDef.alphaCutoff : 0.5;
+			} else {
+
+				// for ALPHA_MODES.OPAQUE, we use a negative alphaTest value to enable alphaTesting,
+				// causing the test to always be passed, but also replacing any alpha value with 1.0.
+				materialParams.alphaTest = - 0.5;
+
+			}
 
 		}
 

+ 1 - 6
examples/webgl_loader_gltf_extensions.html

@@ -5,11 +5,6 @@
 		<meta charset="utf-8">
 		<meta name="viewport" content="width=device-width, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0">
 		<link type="text/css" rel="stylesheet" href="main.css">
-		<style>
-			body {
-				background-color: white;
-			}
-		</style>
 	</head>
 
 	<body>
@@ -19,7 +14,7 @@
 			<div id="description"></div>
 		</div>
 
-		<div id="container"></div>
+		<div id="container" style="background-color: white;"></div>
 
 		<script type="module">