Parcourir la source

Convert to linear colors when parsing LDraw models (#23272)

Garrett Johnson il y a 3 ans
Parent
commit
82776b6d56
2 fichiers modifiés avec 4 ajouts et 0 suppressions
  1. 3 0
      examples/jsm/loaders/LDrawLoader.js
  2. 1 0
      examples/webgl_loader_ldraw.html

+ 3 - 0
examples/jsm/loaders/LDrawLoader.js

@@ -2329,6 +2329,7 @@ class LDrawLoader extends Loader {
 		material.premultipliedAlpha = true;
 		material.premultipliedAlpha = true;
 		material.opacity = alpha;
 		material.opacity = alpha;
 		material.depthWrite = ! isTransparent;
 		material.depthWrite = ! isTransparent;
+		material.color.convertSRGBToLinear();
 
 
 		material.polygonOffset = true;
 		material.polygonOffset = true;
 		material.polygonOffsetFactor = 1;
 		material.polygonOffsetFactor = 1;
@@ -2350,6 +2351,7 @@ class LDrawLoader extends Loader {
 			} );
 			} );
 			edgeMaterial.userData.code = code;
 			edgeMaterial.userData.code = code;
 			edgeMaterial.name = name + ' - Edge';
 			edgeMaterial.name = name + ' - Edge';
+			edgeMaterial.color.convertSRGBToLinear();
 
 
 			// This is the material used for conditional edges
 			// This is the material used for conditional edges
 			edgeMaterial.userData.conditionalEdgeMaterial = new LDrawConditionalLineMaterial( {
 			edgeMaterial.userData.conditionalEdgeMaterial = new LDrawConditionalLineMaterial( {
@@ -2361,6 +2363,7 @@ class LDrawLoader extends Loader {
 				opacity: alpha,
 				opacity: alpha,
 
 
 			} );
 			} );
+			edgeMaterial.userData.conditionalEdgeMaterial.color.convertSRGBToLinear();
 
 
 		}
 		}
 
 

+ 1 - 0
examples/webgl_loader_ldraw.html

@@ -88,6 +88,7 @@
 				renderer = new THREE.WebGLRenderer( { antialias: true } );
 				renderer = new THREE.WebGLRenderer( { antialias: true } );
 				renderer.setPixelRatio( window.devicePixelRatio );
 				renderer.setPixelRatio( window.devicePixelRatio );
 				renderer.setSize( window.innerWidth, window.innerHeight );
 				renderer.setSize( window.innerWidth, window.innerHeight );
+				renderer.outputEncoding = THREE.sRGBEncoding;
 				renderer.toneMapping = THREE.ACESFilmicToneMapping;
 				renderer.toneMapping = THREE.ACESFilmicToneMapping;
 				container.appendChild( renderer.domElement );
 				container.appendChild( renderer.domElement );