mirror of
https://github.com/antopilo/Nuake.git
synced 2026-09-09 20:08:57 +03:00
Added toggle for SSR
This commit is contained in:
@@ -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();
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -42,6 +42,8 @@ namespace Nuake
|
||||
bool SSAOEnabled = true;
|
||||
Scope<SSAO> mSSAO;
|
||||
|
||||
bool SSREnabled = false;
|
||||
|
||||
Vector3 ClearColor;
|
||||
|
||||
glm::vec4 m_AmbientColor;
|
||||
|
||||
Reference in New Issue
Block a user