gi boost will affect all indirect diffuse consistently

This commit is contained in:
Turánszki János
2023-03-05 10:25:51 +01:00
parent 626b5ac6eb
commit 540f134a07
3 changed files with 7 additions and 7 deletions
+1 -1
View File
@@ -36,7 +36,7 @@ struct Lighting
inline void ApplyLighting(in Surface surface, in Lighting lighting, inout float4 color)
{
float3 diffuse = lighting.direct.diffuse / PI + lighting.indirect.diffuse * (1 - surface.F) * surface.occlusion;
float3 diffuse = lighting.direct.diffuse / PI + lighting.indirect.diffuse * GetFrame().gi_boost * (1 - surface.F) * surface.occlusion;
float3 specular = lighting.direct.specular + lighting.indirect.specular * surface.occlusion; // reminder: cannot apply surface.F for whole indirect specular, because multiple layers have separate fresnels (sheen, clearcoat)
color.rgb = lerp(surface.albedo * diffuse, surface.refraction.rgb, surface.refraction.a);
color.rgb += specular;
+5 -5
View File
@@ -479,7 +479,7 @@ inline void ForwardLighting(inout Surface surface, inout Lighting lighting)
[branch]
if ((surface.flags & SURFACE_FLAG_GI_APPLIED) == 0 && GetScene().ddgi.color_texture >= 0)
{
lighting.indirect.diffuse = ddgi_sample_irradiance(surface.P, surface.N) * GetFrame().gi_boost;
lighting.indirect.diffuse = ddgi_sample_irradiance(surface.P, surface.N);
surface.flags |= SURFACE_FLAG_GI_APPLIED;
}
@@ -747,21 +747,21 @@ inline void TiledLighting(inout Surface surface, inout Lighting lighting, uint f
[branch]
if ((surface.flags & SURFACE_FLAG_GI_APPLIED) == 0 && GetCamera().texture_rtdiffuse_index >= 0)
{
lighting.indirect.diffuse = bindless_textures[GetCamera().texture_rtdiffuse_index][surface.pixel].rgb * GetFrame().gi_boost;
lighting.indirect.diffuse = bindless_textures[GetCamera().texture_rtdiffuse_index][surface.pixel].rgb;
surface.flags |= SURFACE_FLAG_GI_APPLIED;
}
[branch]
if ((surface.flags & SURFACE_FLAG_GI_APPLIED) == 0 && GetFrame().options & OPTION_BIT_SURFELGI_ENABLED && GetCamera().texture_surfelgi_index >= 0 && surfel_cellvalid(surfel_cell(surface.P)))
{
lighting.indirect.diffuse = bindless_textures[GetCamera().texture_surfelgi_index][surface.pixel].rgb * GetFrame().gi_boost;
lighting.indirect.diffuse = bindless_textures[GetCamera().texture_surfelgi_index][surface.pixel].rgb;
surface.flags |= SURFACE_FLAG_GI_APPLIED;
}
[branch]
if ((surface.flags & SURFACE_FLAG_GI_APPLIED) == 0 && GetCamera().texture_vxgi_diffuse_index >= 0)
{
lighting.indirect.diffuse = bindless_textures[GetCamera().texture_vxgi_diffuse_index][surface.pixel].rgb * GetFrame().gi_boost;
lighting.indirect.diffuse = bindless_textures[GetCamera().texture_vxgi_diffuse_index][surface.pixel].rgb;
surface.flags |= SURFACE_FLAG_GI_APPLIED;
}
[branch]
@@ -775,7 +775,7 @@ inline void TiledLighting(inout Surface surface, inout Lighting lighting, uint f
[branch]
if ((surface.flags & SURFACE_FLAG_GI_APPLIED) == 0 && GetScene().ddgi.color_texture >= 0)
{
lighting.indirect.diffuse = ddgi_sample_irradiance(surface.P, surface.N) * GetFrame().gi_boost;
lighting.indirect.diffuse = ddgi_sample_irradiance(surface.P, surface.N);
surface.flags |= SURFACE_FLAG_GI_APPLIED;
}
+1 -1
View File
@@ -9,7 +9,7 @@ namespace wi::version
// minor features, major updates, breaking compatibility changes
const int minor = 71;
// minor bug fixes, alterations, refactors, updates
const int revision = 171;
const int revision = 172;
const std::string version_string = std::to_string(major) + "." + std::to_string(minor) + "." + std::to_string(revision);