From c56a655be4aba44bfd95729726d9dead9f64628f Mon Sep 17 00:00:00 2001 From: Antoine Pilote Date: Sun, 2 Jul 2023 16:56:11 -0400 Subject: [PATCH] Improved Volumetric --- Editor/resources/Shaders/volumetric.shader | 5 +++-- Nuake/src/Rendering/PostFX/Volumetric.cpp | 1 + Nuake/src/Rendering/PostFX/Volumetric.h | 2 +- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/Editor/resources/Shaders/volumetric.shader b/Editor/resources/Shaders/volumetric.shader index ef124b2f..a711c536 100644 --- a/Editor/resources/Shaders/volumetric.shader +++ b/Editor/resources/Shaders/volumetric.shader @@ -38,6 +38,7 @@ struct Light { vec3 color; vec3 direction; sampler2D shadowmap; + float strength; }; uniform Light u_Lights[MAX_LIGHT]; @@ -86,7 +87,7 @@ vec3 ComputeVolumetric(vec3 FragPos, Light light) if (closestDepth > currentDepth && closestDepth < 999) { //accumFog = vec3(light.color); - accumFog += (ComputeScattering(dot(rayDirection, light.direction)).xxx * light.color * 10.0); + accumFog += (ComputeScattering(dot(rayDirection, light.direction)).xxx * light.color ); //accumFog = vec3(projCoords.x, projCoords.y, 1.0); } @@ -95,7 +96,7 @@ vec3 ComputeVolumetric(vec3 FragPos, Light light) } accumFog /= u_StepCount; - return accumFog; + return accumFog * 5.0; } // Converts depth to World space coords. diff --git a/Nuake/src/Rendering/PostFX/Volumetric.cpp b/Nuake/src/Rendering/PostFX/Volumetric.cpp index a2ff4a10..bbf043c9 100644 --- a/Nuake/src/Rendering/PostFX/Volumetric.cpp +++ b/Nuake/src/Rendering/PostFX/Volumetric.cpp @@ -59,6 +59,7 @@ namespace Nuake { volumetricShader->SetUniformVec3(u_light + "direction", light.GetDirection()); volumetricShader->SetUniformTex(u_light + "shadowmap", light.m_Framebuffers[0]->GetTexture(GL_DEPTH_ATTACHMENT).get(), 5 + i); + volumetricShader->SetUniform1f(u_light + "strength", light.Strength); } diff --git a/Nuake/src/Rendering/PostFX/Volumetric.h b/Nuake/src/Rendering/PostFX/Volumetric.h index fda79322..2ded3bae 100644 --- a/Nuake/src/Rendering/PostFX/Volumetric.h +++ b/Nuake/src/Rendering/PostFX/Volumetric.h @@ -11,7 +11,7 @@ namespace Nuake { private: uint32_t mStepCount = 50; float mRenderRatio = 1.0f; - float mFogAmount = 0.9f; + float mFogAmount = 0.4f; Vector2 mSize; Texture* mDepth;