From 886a76515dacb010f9cbf731316ec03f58caaea7 Mon Sep 17 00:00:00 2001 From: "Mr.doob" Date: Thu, 30 Oct 2025 16:56:49 +0900 Subject: [PATCH 1/2] WebGLRenderer: Add energy conservation to sheen layer. --- .../lights_physical_pars_fragment.glsl.js | 44 +++++++++++++++++-- 1 file changed, 40 insertions(+), 4 deletions(-) diff --git a/src/renderers/shaders/ShaderChunk/lights_physical_pars_fragment.glsl.js b/src/renderers/shaders/ShaderChunk/lights_physical_pars_fragment.glsl.js index 330e502c8fe783..8cf05dc09a2794 100644 --- a/src/renderers/shaders/ShaderChunk/lights_physical_pars_fragment.glsl.js +++ b/src/renderers/shaders/ShaderChunk/lights_physical_pars_fragment.glsl.js @@ -530,6 +530,22 @@ void RE_Direct_Physical( const in IncidentLight directLight, const in vec3 geome sheenSpecularDirect += irradiance * BRDF_Sheen( directLight.direction, geometryViewDir, geometryNormal, material.sheenColor, material.sheenRoughness ); + // Energy conservation: reduce base layers by sheen energy + float dotNV = saturate( dot( geometryNormal, geometryViewDir ) ); + float maxSheenColor = max( max( material.sheenColor.r, material.sheenColor.g ), material.sheenColor.b ); + + // Approximate directional albedo + float x = 1.0 - dotNV; + float r = material.sheenRoughness; + float r2 = r * r; + float baseAlbedo = 0.04 + 0.96 * r2; + float fresnelFactor = pow( x, 5.0 * ( 1.0 - r ) ); + float E_sheen = baseAlbedo * mix( 1.0, fresnelFactor, 1.0 - r2 * r ); + + // Scale base layers + float sheenScaling = 1.0 - maxSheenColor * E_sheen; + irradiance *= sheenScaling; + #endif reflectedLight.directSpecular += irradiance * BRDF_GGX_Multiscatter( directLight.direction, geometryViewDir, geometryNormal, material ); @@ -555,6 +571,20 @@ void RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 irradia sheenSpecularIndirect += irradiance * material.sheenColor * IBLSheenBRDF( geometryNormal, geometryViewDir, material.sheenRoughness ); + // Energy conservation for indirect lighting + float dotNV = saturate( dot( geometryNormal, geometryViewDir ) ); + float maxSheenColor = max( max( material.sheenColor.r, material.sheenColor.g ), material.sheenColor.b ); + + // Approximate directional albedo (same as direct lighting) + float x = 1.0 - dotNV; + float r = material.sheenRoughness; + float r2 = r * r; + float baseAlbedo = 0.04 + 0.96 * r2; + float fresnelFactor = pow( x, 5.0 * ( 1.0 - r ) ); + float E_sheen = baseAlbedo * mix( 1.0, fresnelFactor, 1.0 - r2 * r ); + + float sheenScaling = 1.0 - maxSheenColor * E_sheen; + #endif // Both indirect specular and indirect diffuse light accumulate here @@ -576,10 +606,16 @@ void RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 irradia vec3 totalScattering = singleScattering + multiScattering; vec3 diffuse = material.diffuseColor * ( 1.0 - max( max( totalScattering.r, totalScattering.g ), totalScattering.b ) ); - reflectedLight.indirectSpecular += radiance * singleScattering; - reflectedLight.indirectSpecular += multiScattering * cosineWeightedIrradiance; - - reflectedLight.indirectDiffuse += diffuse * cosineWeightedIrradiance; + #ifdef USE_SHEEN + // Apply energy conservation scaling to base layers + reflectedLight.indirectSpecular += radiance * singleScattering * sheenScaling; + reflectedLight.indirectSpecular += multiScattering * cosineWeightedIrradiance * sheenScaling; + reflectedLight.indirectDiffuse += diffuse * cosineWeightedIrradiance * sheenScaling; + #else + reflectedLight.indirectSpecular += radiance * singleScattering; + reflectedLight.indirectSpecular += multiScattering * cosineWeightedIrradiance; + reflectedLight.indirectDiffuse += diffuse * cosineWeightedIrradiance; + #endif } From 4cf8b6223f86cbb3652b218104c934ece3810d34 Mon Sep 17 00:00:00 2001 From: "Mr.doob" Date: Thu, 30 Oct 2025 17:22:38 +0900 Subject: [PATCH 2/2] Updated screenshot. --- .../screenshots/webgl_loader_gltf_sheen.jpg | Bin 25693 -> 26624 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/examples/screenshots/webgl_loader_gltf_sheen.jpg b/examples/screenshots/webgl_loader_gltf_sheen.jpg index 97bd0d7600040e9dd83f690b9c1310c2763bde5f..228ccd1e048ac2409ec57092b6f1daaa59ccc691 100644 GIT binary patch delta 24115 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 Qg5r4o@0yXC_V3*P0N7ZhUH||9