From f91e454065cb97750e052b84407de10d829d5e43 Mon Sep 17 00:00:00 2001 From: Anton Palmqvist <13031779+AntonPalmqvist@users.noreply.github.com> Date: Mon, 15 Jul 2024 20:22:24 -0700 Subject: [PATCH 1/2] materialDatabase updates: - Switched tonemapper from ACES to AgX - Added iridescence for materials that support it - Changed reference image source to URL from API --- example/materialDatabase.js | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/example/materialDatabase.js b/example/materialDatabase.js index 1e6eee6c..cb3226dc 100644 --- a/example/materialDatabase.js +++ b/example/materialDatabase.js @@ -1,5 +1,5 @@ import { - ACESFilmicToneMapping, + AgXToneMapping, PerspectiveCamera, Scene, Box3, @@ -48,7 +48,7 @@ async function init() { // renderer renderer = new WebGLRenderer( { antialias: true } ); - renderer.toneMapping = ACESFilmicToneMapping; + renderer.toneMapping = AgXToneMapping; document.body.appendChild( renderer.domElement ); // path tracer @@ -181,13 +181,22 @@ function applyMaterialInfo( info, material ) { material.roughness = 1.0; material.ior = 1.5; material.thickness = 1.0; + material.iridescence = 0.0; + material.iridescenceIOR = 1.0; + material.iridescenceThicknessRange = [ 0, 0 ] if ( info.specularColor ) material.specularColor.setRGB( ...info.specularColor ); if ( 'metalness' in info ) material.metalness = info.metalness; if ( 'roughness' in info ) material.roughness = info.roughness; if ( 'ior' in info ) material.ior = info.ior; if ( 'transmission' in info ) material.transmission = info.transmission; + if ( 'thinFilmThickness' in info ) { + material.iridescence = 1.0; + material.iridescenceIOR = info.thinFilmIor; + material.iridescenceThicknessRange = [ info.thinFilmThickness, info.thinFilmThickness ]; + + } if ( material.transmission ) { if ( info.color ) material.attenuationColor.setRGB( ...info.color ); @@ -199,8 +208,7 @@ function applyMaterialInfo( info, material ) { } - const cleanName = info.name.replace( /\s+/g, '-' ).replace( /[()]+/g, '' ); - imgEl.src = `https://physicallybased.info/reference/render/${ cleanName }-cycles.png`; + imgEl.src = info.reference[0]; } From 31ebc2ae4931f47712e13d3169c95e493f165271 Mon Sep 17 00:00:00 2001 From: Anton Palmqvist <13031779+AntonPalmqvist@users.noreply.github.com> Date: Tue, 16 Jul 2024 21:26:22 -0700 Subject: [PATCH 2/2] Formatting fixes --- example/materialDatabase.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/example/materialDatabase.js b/example/materialDatabase.js index cb3226dc..bf04f5ae 100644 --- a/example/materialDatabase.js +++ b/example/materialDatabase.js @@ -183,7 +183,7 @@ function applyMaterialInfo( info, material ) { material.thickness = 1.0; material.iridescence = 0.0; material.iridescenceIOR = 1.0; - material.iridescenceThicknessRange = [ 0, 0 ] + material.iridescenceThicknessRange = [ 0, 0 ]; if ( info.specularColor ) material.specularColor.setRGB( ...info.specularColor ); if ( 'metalness' in info ) material.metalness = info.metalness; @@ -197,6 +197,7 @@ function applyMaterialInfo( info, material ) { material.iridescenceThicknessRange = [ info.thinFilmThickness, info.thinFilmThickness ]; } + if ( material.transmission ) { if ( info.color ) material.attenuationColor.setRGB( ...info.color ); @@ -208,7 +209,7 @@ function applyMaterialInfo( info, material ) { } - imgEl.src = info.reference[0]; + imgEl.src = info.reference[ 0 ]; }