|
@@ -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();
|