From 540f134a079fe600fb1738a45f5c122abd484683 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tur=C3=A1nszki=20J=C3=A1nos?= Date: Sun, 5 Mar 2023 10:25:51 +0100 Subject: [PATCH] gi boost will affect all indirect diffuse consistently --- WickedEngine/shaders/lightingHF.hlsli | 2 +- WickedEngine/shaders/objectHF.hlsli | 10 +++++----- WickedEngine/wiVersion.cpp | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/WickedEngine/shaders/lightingHF.hlsli b/WickedEngine/shaders/lightingHF.hlsli index 091cb8ee9..9d1087897 100644 --- a/WickedEngine/shaders/lightingHF.hlsli +++ b/WickedEngine/shaders/lightingHF.hlsli @@ -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; diff --git a/WickedEngine/shaders/objectHF.hlsli b/WickedEngine/shaders/objectHF.hlsli index 92154aa55..e5a71ea96 100644 --- a/WickedEngine/shaders/objectHF.hlsli +++ b/WickedEngine/shaders/objectHF.hlsli @@ -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; } diff --git a/WickedEngine/wiVersion.cpp b/WickedEngine/wiVersion.cpp index a11f33899..0fe21cee0 100644 --- a/WickedEngine/wiVersion.cpp +++ b/WickedEngine/wiVersion.cpp @@ -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);