gi boost will affect all indirect diffuse consistently
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user