浏览代码

Adjust lego pathtraced materials (#25883)

* Upgrade pathtracer to 0.0.14

* Adjust PT materials

* Adjust materials
Garrett Johnson 2 年之前
父节点
当前提交
6e2282c476
共有 1 个文件被更改,包括 33 次插入2 次删除
  1. 33 2
      examples/webgl_renderer_pathtracer.html

+ 33 - 2
examples/webgl_renderer_pathtracer.html

@@ -179,6 +179,37 @@
 							legoGroup = LDrawUtils.mergeObject( legoGroup );
 							legoGroup = LDrawUtils.mergeObject( legoGroup );
 							legoGroup.rotation.x = Math.PI;
 							legoGroup.rotation.x = Math.PI;
 
 
+							// adjust the materials to use transmission, be a bit shinier
+							legoGroup.traverse( c => {
+
+								if ( c.material ) {
+
+									c.material.roughness *= 0.25;
+
+									if ( c.material.opacity < 1.0 ) {
+
+										const oldMaterial = c.material;
+										const newMaterial = new THREE.MeshPhysicalMaterial();
+
+										newMaterial.opacity = 1.0;
+										newMaterial.transmission = 1.0;
+										newMaterial.ior = 1.4;
+										newMaterial.roughness = oldMaterial.roughness;
+										newMaterial.metalness = 0.0;
+
+										const hsl = {};
+										oldMaterial.color.getHSL( hsl );
+										hsl.l = Math.max( hsl.l, 0.35 );
+										newMaterial.color.setHSL( hsl.h, hsl.s, hsl.l );
+
+										c.material = newMaterial;
+
+									}
+
+								}
+
+							} );
+
 							model = new THREE.Group();
 							model = new THREE.Group();
 							model.add( legoGroup );
 							model.add( legoGroup );
 
 
@@ -315,7 +346,7 @@
 					pathTracer.reset();
 					pathTracer.reset();
 
 
 				} );
 				} );
-				gui.add( params, 'resolutionScale', 0.1, 1.0 ).onChange( onWindowResize );
+				gui.add( params, 'resolutionScale', 0.1, 1.0, 0.1 ).onChange( onWindowResize );
 				gui.add( params, 'tiles', 1, 3, 1 ).onChange( v => {
 				gui.add( params, 'tiles', 1, 3, 1 ).onChange( v => {
 
 
 					pathTracer.tiles.set( v, v );
 					pathTracer.tiles.set( v, v );
@@ -374,7 +405,7 @@
 					floor.material.metalness = params.metalness;
 					floor.material.metalness = params.metalness;
 
 
 					pathTracer.material.materials.updateFrom( sceneInfo.materials, sceneInfo.textures );
 					pathTracer.material.materials.updateFrom( sceneInfo.materials, sceneInfo.textures );
-					pathTracer.material.filterGlossyFactor = 0.5;
+					pathTracer.material.filterGlossyFactor = 1;
 					pathTracer.material.physicalCamera.updateFrom( camera );
 					pathTracer.material.physicalCamera.updateFrom( camera );
 
 
 					camera.updateMatrixWorld();
 					camera.updateMatrixWorld();