@@ -25,6 +25,8 @@ const params = {
2525 metalness : 0.8 ,
2626 ior : 1.495 ,
2727 transmission : 0.0 ,
28+ attenuationColor : '#ffffff' ,
29+ attenuationDistance : 0.5 ,
2830 opacity : 1.0 ,
2931 clearcoat : 0.0 ,
3032 clearcoatRoughness : 0.0 ,
@@ -45,6 +47,8 @@ const params = {
4547 roughness : 0.9 ,
4648 metalness : 0.1 ,
4749 transmission : 0.0 ,
50+ attenuationColor : '#ffffff' ,
51+ attenuationDistance : 0.5 ,
4852 ior : 1.495 ,
4953 opacity : 1.0 ,
5054 clearcoat : 0.0 ,
@@ -63,17 +67,7 @@ const params = {
6367 color : '#000000' ,
6468 roughness : 0.1 ,
6569 metalness : 0.05 ,
66- clearcoat : 0.0 ,
67- clearcoatRoughness : 0.0 ,
68- sheenColor : '#000000' ,
69- sheenRoughness : 0.0 ,
70- iridescence : 0.0 ,
71- iridescenceIOR : 1.5 ,
72- iridescenceThickness : 400 ,
73- specularColor : '#ffffff' ,
74- specularIntensity : 1.0 ,
7570 matte : false ,
76- castShadow : true ,
7771 } ,
7872
7973 multipleImportanceSampling : true ,
@@ -104,7 +98,9 @@ if ( window.location.hash.includes( 'transmission' ) ) {
10498 params . material1 . roughness = 0.23 ;
10599 params . material1 . transmission = 1.0 ;
106100 params . material1 . color = '#ffffff' ;
101+
107102 params . bounces = 10 ;
103+ params . tiles = 2 ;
108104
109105} else if ( window . location . hash . includes ( 'iridescent' ) ) {
110106
@@ -113,6 +109,26 @@ if ( window.location.hash.includes( 'transmission' ) ) {
113109 params . material1 . metalness = 1.0 ;
114110 params . material1 . iridescence = 1.0 ;
115111
112+ } else if ( window . location . hash . includes ( 'acrylic' ) ) {
113+
114+ params . material1 . color = '#ffffff' ;
115+ params . material1 . roughness = 0 ;
116+ params . material1 . metalness = 0 ;
117+ params . material1 . transmission = 1.0 ;
118+ params . material1 . attenuationDistance = 0.75 ;
119+ params . material1 . attenuationColor = '#2a6dc6' ;
120+
121+ params . material2 . color = '#ffffff' ;
122+ params . material2 . roughness = 0.0 ;
123+ params . material2 . metalness = 0.975 ;
124+
125+ params . material3 . color = '#999999' ;
126+ params . material3 . roughness = 0.2 ;
127+ params . material3 . metalness = 0.0 ;
128+
129+ params . bounces = 20 ;
130+ params . tiles = 3 ;
131+
116132}
117133
118134// adjust performance parameters for mobile
@@ -336,6 +352,8 @@ async function init() {
336352 denoiseFolder . add ( params , 'denoiseSigma' , 0.01 , 12.0 ) ;
337353 denoiseFolder . add ( params , 'denoiseThreshold' , 0.01 , 1.0 ) ;
338354 denoiseFolder . add ( params , 'denoiseKSigma' , 0.0 , 12.0 ) ;
355+ denoiseFolder . close ( ) ;
356+
339357
340358 const envFolder = gui . addFolder ( 'Environment' ) ;
341359 envFolder . add ( params , 'environmentIntensity' , 0 , 10 ) . onChange ( ( ) => {
@@ -377,6 +395,7 @@ async function init() {
377395 }
378396
379397 } ) ;
398+ envFolder . close ( ) ;
380399
381400 const cameraFolder = gui . addFolder ( 'Camera' ) ;
382401 cameraFolder . add ( params , 'cameraProjection' , [ 'Perspective' , 'Orthographic' , 'Equirectangular' ] ) . onChange ( v => {
@@ -402,6 +421,7 @@ async function init() {
402421 reset ( ) ;
403422
404423 } ) . listen ( ) ;
424+ cameraFolder . close ( ) ;
405425
406426 const matFolder1 = gui . addFolder ( 'Shell Material' ) ;
407427 matFolder1 . addColor ( params . material1 , 'color' ) . onChange ( reset ) ;
@@ -411,6 +431,8 @@ async function init() {
411431 matFolder1 . add ( params . material1 , 'metalness' , 0 , 1 ) . onChange ( reset ) ;
412432 matFolder1 . add ( params . material1 , 'opacity' , 0 , 1 ) . onChange ( reset ) ;
413433 matFolder1 . add ( params . material1 , 'transmission' , 0 , 1 ) . onChange ( reset ) ;
434+ matFolder1 . add ( params . material1 , 'attenuationDistance' , 0.05 , 2.0 ) . onChange ( reset ) ;
435+ matFolder1 . addColor ( params . material1 , 'attenuationColor' ) . onChange ( reset ) ;
414436 matFolder1 . add ( params . material1 , 'ior' , 0.9 , 3.0 ) . onChange ( reset ) ;
415437 matFolder1 . add ( params . material1 , 'clearcoat' , 0 , 1 ) . onChange ( reset ) ;
416438 matFolder1 . add ( params . material1 , 'clearcoatRoughness' , 0 , 1 ) . onChange ( reset ) ;
@@ -433,6 +455,8 @@ async function init() {
433455 matFolder2 . add ( params . material2 , 'metalness' , 0 , 1 ) . onChange ( reset ) ;
434456 matFolder2 . add ( params . material2 , 'opacity' , 0 , 1 ) . onChange ( reset ) ;
435457 matFolder2 . add ( params . material2 , 'transmission' , 0 , 1 ) . onChange ( reset ) ;
458+ matFolder2 . add ( params . material2 , 'attenuationDistance' , 0.05 , 2.0 ) . onChange ( reset ) ;
459+ matFolder2 . addColor ( params . material2 , 'attenuationColor' ) . onChange ( reset ) ;
436460 matFolder2 . add ( params . material2 , 'ior' , 0.9 , 3.0 ) . onChange ( reset ) ;
437461 matFolder2 . add ( params . material2 , 'clearcoat' , 0 , 1 ) . onChange ( reset ) ;
438462 matFolder2 . add ( params . material2 , 'clearcoatRoughness' , 0 , 1 ) . onChange ( reset ) ;
@@ -451,17 +475,7 @@ async function init() {
451475 matFolder3 . addColor ( params . material3 , 'color' ) . onChange ( reset ) ;
452476 matFolder3 . add ( params . material3 , 'roughness' , 0 , 1 ) . onChange ( reset ) ;
453477 matFolder3 . add ( params . material3 , 'metalness' , 0 , 1 ) . onChange ( reset ) ;
454- matFolder3 . add ( params . material3 , 'clearcoat' , 0 , 1 ) . onChange ( reset ) ;
455- matFolder3 . add ( params . material3 , 'clearcoatRoughness' , 0 , 1 ) . onChange ( reset ) ;
456- matFolder3 . addColor ( params . material3 , 'sheenColor' ) . onChange ( reset ) ;
457- matFolder3 . add ( params . material3 , 'sheenRoughness' , 0 , 1 ) . onChange ( reset ) ;
458478 matFolder3 . add ( params . material3 , 'matte' ) . onChange ( reset ) ;
459- matFolder3 . add ( params . material3 , 'castShadow' ) . onChange ( reset ) ;
460- matFolder3 . add ( params . material3 , 'iridescence' , 0.0 , 1.0 ) . onChange ( reset ) ;
461- matFolder3 . add ( params . material3 , 'iridescenceIOR' , 0.1 , 3.0 ) . onChange ( reset ) ;
462- matFolder3 . add ( params . material3 , 'iridescenceThickness' , 0.0 , 1200.0 ) . onChange ( reset ) ;
463- matFolder3 . addColor ( params . material3 , 'specularColor' ) . onChange ( reset ) ;
464- matFolder3 . add ( params . material3 , 'specularIntensity' , 0.0 , 1.0 ) . onChange ( reset ) ;
465479 matFolder3 . close ( ) ;
466480
467481 animate ( ) ;
@@ -562,6 +576,8 @@ function animate() {
562576 m1 . metalness = params . material1 . metalness ;
563577 m1 . roughness = params . material1 . roughness ;
564578 m1 . transmission = params . material1 . transmission ;
579+ m1 . attenuationDistance = params . material1 . attenuationDistance ;
580+ m1 . attenuationColor . set ( params . material1 . attenuationColor ) ;
565581 m1 . ior = params . material1 . ior ;
566582 m1 . opacity = params . material1 . opacity ;
567583 m1 . clearcoat = params . material1 . clearcoat ;
@@ -581,6 +597,8 @@ function animate() {
581597 m2 . metalness = params . material2 . metalness ;
582598 m2 . roughness = params . material2 . roughness ;
583599 m2 . transmission = params . material2 . transmission ;
600+ m2 . attenuationDistance = params . material2 . attenuationDistance ;
601+ m2 . attenuationColor . set ( params . material2 . attenuationColor ) ;
584602 m2 . ior = params . material2 . ior ;
585603 m2 . opacity = params . material2 . opacity ;
586604 m2 . clearcoat = params . material2 . clearcoat ;
@@ -597,23 +615,13 @@ function animate() {
597615 m3 . color . set ( params . material3 . color ) . convertSRGBToLinear ( ) ;
598616 m3 . metalness = params . material3 . metalness ;
599617 m3 . roughness = params . material3 . roughness ;
600- m3 . clearcoat = params . material3 . clearcoat ;
601- m3 . clearcoatRoughness = params . material3 . clearcoatRoughness ;
602- m3 . sheenColor . set ( params . material3 . sheenColor ) . convertSRGBToLinear ( ) ;
603- m3 . sheenRoughness = params . material3 . sheenRoughness ;
604- m3 . iridescence = params . material3 . iridescence ;
605- m3 . iridescenceIOR = params . material3 . iridescenceIOR ;
606- m3 . iridescenceThicknessRange = [ 0 , params . material3 . iridescenceThickness ] ;
607- m3 . specularColor . set ( params . material3 . specularColor ) . convertSRGBToLinear ( ) ;
608- m3 . specularIntensity = params . material3 . specularIntensity ;
609618
610619 ptRenderer . material . materials . updateFrom ( sceneInfo . materials , sceneInfo . textures ) ;
611620 ptRenderer . material . materials . setMatte ( 0 , params . material1 . matte ) ;
612621 ptRenderer . material . materials . setMatte ( 1 , params . material2 . matte ) ;
613622 ptRenderer . material . materials . setMatte ( 2 , params . material3 . matte ) ;
614623 ptRenderer . material . materials . setCastShadow ( 0 , params . material1 . castShadow ) ;
615624 ptRenderer . material . materials . setCastShadow ( 1 , params . material2 . castShadow ) ;
616- ptRenderer . material . materials . setCastShadow ( 2 , params . material3 . castShadow ) ;
617625
618626 ptRenderer . material . filterGlossyFactor = params . filterGlossyFactor ;
619627 ptRenderer . material . environmentIntensity = params . environmentIntensity ;
0 commit comments