Added toggle for SSR

This commit is contained in:
Antoine Pilote
2023-09-07 20:51:18 -04:00
parent 6a73249da7
commit 9733d90aef
3 changed files with 48 additions and 15 deletions

View File

@@ -867,10 +867,25 @@ namespace Nuake {
ImGui::TableSetupColumn("set", 0, 0.6);
ImGui::TableSetupColumn("reset", 0, 0.1);
ImGui::TableNextColumn();
SSR* ssr = scene->m_SceneRenderer->mSSR.get();
{
ImGui::TableNextColumn();
// Title
ImGui::Text("SSR");
ImGui::TableNextColumn();
ImGui::Checkbox("##SSREnabled", &env->SSREnabled);
ImGui::TableNextColumn();
// Reset button
ImGui::PushStyleColor(ImGuiCol_Button, ImVec4(1, 1, 1, 0));
std::string resetSSR = ICON_FA_UNDO + std::string("##resetSSR");
if (ImGui::Button(resetSSR.c_str())) env->SSREnabled = false;
ImGui::PopStyleColor();
}
{
ImGui::TableNextColumn();
// Title
ImGui::Text("SSR RayStep");
ImGui::TableNextColumn();

View File

@@ -76,7 +76,7 @@ namespace Nuake
sceneEnv->mBloom->Resize(framebuffer.GetSize());
sceneEnv->mBloom->Draw();
finalOutput = scene.GetEnvironment()->mBloom->GetOutput();
finalOutput = sceneEnv->mBloom->GetOutput();
}
const auto view = scene.m_Registry.view<LightComponent>();
@@ -88,7 +88,7 @@ namespace Nuake
lightList.push_back(lc);
}
if (scene.GetEnvironment()->VolumetricEnabled)
if (sceneEnv->VolumetricEnabled)
{
sceneEnv->mVolumetric->Resize(framebuffer.GetSize());
sceneEnv->mVolumetric->SetDepth(mGBuffer->GetTexture(GL_DEPTH_ATTACHMENT).get());
@@ -139,20 +139,36 @@ namespace Nuake
}
mToneMapBuffer->Unbind();
mSSR->Resize(framebuffer.GetSize());
mSSR->Draw(mGBuffer.get(), framebuffer.GetTexture(), mView, mProjection, scene.GetCurrentCamera());
framebuffer.Bind();
if (sceneEnv->SSREnabled)
{
RenderCommand::Clear();
Shader* shader = ShaderManager::GetShader("resources/Shaders/combine.shader");
shader->Bind();
mSSR->Resize(framebuffer.GetSize());
mSSR->Draw(mGBuffer.get(), framebuffer.GetTexture(), mView, mProjection, scene.GetCurrentCamera());
shader->SetUniformTex("u_Source", mToneMapBuffer->GetTexture().get(), 0);
shader->SetUniformTex("u_Source2", mSSR->OutputFramebuffer->GetTexture().get(), 1);
Renderer::DrawQuad();
framebuffer.Bind();
{
RenderCommand::Clear();
Shader* shader = ShaderManager::GetShader("resources/Shaders/combine.shader");
shader->Bind();
shader->SetUniformTex("u_Source", mToneMapBuffer->GetTexture().get(), 0);
shader->SetUniformTex("u_Source2", mSSR->OutputFramebuffer->GetTexture().get(), 1);
Renderer::DrawQuad();
}
framebuffer.Unbind();
}
else
{
framebuffer.Bind();
{
RenderCommand::Clear();
Shader* shader = ShaderManager::GetShader("resources/Shaders/copy.shader");
shader->Bind();
shader->SetUniformTex("u_Source", mToneMapBuffer->GetTexture().get(), 0);
Renderer::DrawQuad();
}
framebuffer.Unbind();
}
framebuffer.Unbind();
RenderCommand::Enable(RendererEnum::DEPTH_TEST);
Renderer::EndDraw();

View File

@@ -42,6 +42,8 @@ namespace Nuake
bool SSAOEnabled = true;
Scope<SSAO> mSSAO;
bool SSREnabled = false;
Vector3 ClearColor;
glm::vec4 m_AmbientColor;