diff options
| author | yum <yum.food.vr@gmail.com> | 2026-02-23 17:35:40 -0800 |
|---|---|---|
| committer | yum <yum.food.vr@gmail.com> | 2026-02-23 17:35:40 -0800 |
| commit | 2d205f1f5df12b6e66f6cca1a05152b18d53c0d1 (patch) | |
| tree | eeb2136c9be31b3d12887d12e475c64576dbf7f6 | |
| parent | ca92a8c6affe7184b9cd6b253e53a8542429accb (diff) | |
Fix IBL DFG term
| -rwxr-xr-x | brdf.cginc | 12 |
1 files changed, 5 insertions, 7 deletions
@@ -166,15 +166,13 @@ float4 brdf(Pbr pbr, LightData data) { remainder = saturate(remainder - indirect_specular_cc); #endif - float3 base_color = lerp(1, pbr.albedo.xyz, pbr.metallic); - float3 specular_dfg = lerp(dfg.xxx, dfg.yyy, f0); - float3 ibl_specular_reflectance = specular_dfg * base_color; - float3 indirect_specular = data.indirect.specular * ibl_specular_reflectance; - - return float4(specular_dfg, 1); + float3 specular_tint = lerp(1, pbr.albedo.xyz, pbr.metallic); + // Filament whitepaper section 5.3.4.6 + float3 specular_dfg = dfg.xxx * f0 + dfg.yyy; + float3 indirect_specular = specular_tint * data.indirect.specular * specular_dfg; specular += indirect_specular; - remainder = saturate(remainder - indirect_specular); + //remainder = saturate(remainder - indirect_specular); float3 indirect_diffuse = pbr.albedo.xyz * data.indirect.diffuse * remainder * (1.0 - pbr.metallic); diffuse += indirect_diffuse; |
