From 8195d6879bae9e830ac5351c9e6b3cc245e4fdf0 Mon Sep 17 00:00:00 2001 From: antopilo Date: Fri, 3 Mar 2023 15:16:27 -0500 Subject: [PATCH] Clean up code --- .../resources/Shaders/atmospheric_sky.shader | 6 ++--- Editor/resources/Shaders/tonemap.shader | 6 ++--- Nuake/Engine.cpp | 25 +++++++++++++++--- Nuake/src/Core/Input.cpp | 4 +++ Nuake/src/Core/Logger.cpp | 2 +- Nuake/src/Core/Logger.h | 4 +-- Nuake/src/Rendering/PostFX/Bloom.cpp | 1 - Nuake/src/Rendering/Renderer2D.cpp | 11 ++++---- Nuake/src/Rendering/SceneRenderer.cpp | 26 +++++++++---------- Nuake/src/Scene/Scene.h | 2 ++ 10 files changed, 54 insertions(+), 33 deletions(-) diff --git a/Editor/resources/Shaders/atmospheric_sky.shader b/Editor/resources/Shaders/atmospheric_sky.shader index b58713b2..86aea015 100644 --- a/Editor/resources/Shaders/atmospheric_sky.shader +++ b/Editor/resources/Shaders/atmospheric_sky.shader @@ -121,7 +121,7 @@ vec3 scatter(vec3 o, vec3 d, float L, vec3 Lo) { I_R = I_M = vec3(0.); // Compute T(P -> O) and I_M and I_R - scatterIn(o, d, L, 32.); + scatterIn(o, d, L, 16.); // mu = cos(alpha) float mu = dot(d, SunDirection); @@ -151,9 +151,9 @@ void main() vec3 direction = normalize(camSpace.xyz); vec3 D = direction; - vec3 col = vec3(0.0); float L = escape(O, D, AtmosphereRadius); col = scatter(O, D, L, col); - FragColor = vec4(col, 1.); + + FragColor = vec4(sqrt(col), 1.); } \ No newline at end of file diff --git a/Editor/resources/Shaders/tonemap.shader b/Editor/resources/Shaders/tonemap.shader index cc50f335..f2bb4fd1 100644 --- a/Editor/resources/Shaders/tonemap.shader +++ b/Editor/resources/Shaders/tonemap.shader @@ -37,11 +37,11 @@ void main() { vec3 color = texture(u_Source, UV).rgb; - color = mix(color, color * u_Exposure, 0.1f); + //color = vec3(1.0) - exp(-color * u_Exposure); // reinhard - color = color / (color + vec3(1.0)); + //color = color / (color + vec3(1.0)); // gamma correct - color = pow(color, vec3(1.0 / u_Gamma)); + //color = pow(color, vec3(1.0 / u_Gamma)); FragColor = vec4(color, 1.0); } \ No newline at end of file diff --git a/Nuake/Engine.cpp b/Nuake/Engine.cpp index 63e2fed9..8a26b17c 100644 --- a/Nuake/Engine.cpp +++ b/Nuake/Engine.cpp @@ -26,7 +26,7 @@ namespace Nuake void Engine::Init() { - Logger::Log("Engine initialization..."); + Logger::Log("Nuake initializing"); PhysicsManager::Get()->Init(); Logger::Log("Physics initialized"); @@ -53,18 +53,22 @@ namespace Nuake CurrentWindow->Update(timestep); // Play mode update all the entities, Editor does not. - if (Engine::IsPlayMode) { + if (Engine::IsPlayMode) + { m_FixedUpdateDifference += timestep; // Fixed update - if (m_FixedUpdateDifference >= m_FixedUpdateRate) { + if (m_FixedUpdateDifference >= m_FixedUpdateRate) + { CurrentWindow->FixedUpdate(m_FixedUpdateDifference); m_FixedUpdateDifference = 0.0f; } } else + { GetCurrentScene()->EditorUpdate(timestep); + } } Input::Update(); @@ -74,19 +78,30 @@ namespace Nuake { // Dont trigger init if already in player mode. if (IsPlayMode) + { + Logger::Log("Cannot enter play mode if is already in play mode.", WARNING); return; + } if (GetCurrentScene()->OnInit()) + { IsPlayMode = true; + } else + { + Logger::Log("Cannot enter play mode. Scene OnInit failed", CRITICAL); GetCurrentScene()->OnExit(); + } } void Engine::ExitPlayMode() { // Dont trigger exit if already not in play mode. - if (IsPlayMode) + if (IsPlayMode) + { + Logger::Log("Cannot exit play mode. Scene must be in play mode.", WARNING); GetCurrentScene()->OnExit(); + } Input::ShowMouse(); IsPlayMode = false; @@ -135,7 +150,9 @@ namespace Nuake CurrentProject = project; if (!Engine::LoadScene(CurrentProject->DefaultScene)) + { return false; + } FileSystem::SetRootDirectory(project->FullPath + "/../"); return true; diff --git a/Nuake/src/Core/Input.cpp b/Nuake/src/Core/Input.cpp index e34d4d80..b89076ca 100644 --- a/Nuake/src/Core/Input.cpp +++ b/Nuake/src/Core/Input.cpp @@ -159,13 +159,17 @@ namespace Nuake for (auto& k : m_Keys) { if (!IsKeyDown(k.first)) + { k.second = false; + } } for (int i = 0; i < 5; i++) { if (!IsMouseButtonDown(i)) + { m_MouseButtons[i] = false; + } } } } diff --git a/Nuake/src/Core/Logger.cpp b/Nuake/src/Core/Logger.cpp index 6c470942..be3fbd13 100644 --- a/Nuake/src/Core/Logger.cpp +++ b/Nuake/src/Core/Logger.cpp @@ -8,7 +8,7 @@ namespace Nuake { std::vector Logger::m_Logs = std::vector(); - void Logger::Log(std::string log, LOG_TYPE type) + void Logger::Log(const std::string& log, LOG_TYPE type) { char buff[100]; time_t now = time(0); diff --git a/Nuake/src/Core/Logger.h b/Nuake/src/Core/Logger.h index 54686589..74cb48c0 100644 --- a/Nuake/src/Core/Logger.h +++ b/Nuake/src/Core/Logger.h @@ -21,10 +21,10 @@ namespace Nuake class Logger { public: - static void Log(std::string log, LOG_TYPE type = VERBOSE); + static void Log(const std::string& log, LOG_TYPE type = VERBOSE); static std::vector GetLogs(); private: static const int MAX_LOG = 64; - static std::vector m_Logs; // TODO: Use log struct. + static std::vector m_Logs; }; } diff --git a/Nuake/src/Rendering/PostFX/Bloom.cpp b/Nuake/src/Rendering/PostFX/Bloom.cpp index e19c3f81..a23ec225 100644 --- a/Nuake/src/Rendering/PostFX/Bloom.cpp +++ b/Nuake/src/Rendering/PostFX/Bloom.cpp @@ -74,7 +74,6 @@ namespace Nuake Shader* shader = ShaderManager::GetShader("resources/Shaders/bloom.shader"); - m_ThresholdFB->Bind(); { m_ThresholdFB->Clear(); diff --git a/Nuake/src/Rendering/Renderer2D.cpp b/Nuake/src/Rendering/Renderer2D.cpp index b56c41ec..7028cf11 100644 --- a/Nuake/src/Rendering/Renderer2D.cpp +++ b/Nuake/src/Rendering/Renderer2D.cpp @@ -21,13 +21,13 @@ namespace Nuake TextShader = ShaderManager::GetShader("resources/Shaders/sdf_text.shader"); float quad_Vertices[] = { - // positions // texture Coords + // positions texture Coords 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, - 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, - 0.0f, 1.0f, 1.0f, 0.0f, 1.0f, - 1.0f, 0.0f, 1.0f, 1.0f, 0.0f, + 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, + 0.0f, 1.0f, 1.0f, 0.0f, 1.0f, + 1.0f, 0.0f, 1.0f, 1.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, - 1.0f, 1.0f, 1.0f, 1.0f, 1.0f + 1.0f, 1.0f, 1.0f, 1.0f, 1.0f }; // setup plane VAO @@ -40,7 +40,6 @@ namespace Nuake glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 5 * sizeof(float), (void*)0); glEnableVertexAttribArray(1); glVertexAttribPointer(1, 2, GL_FLOAT, GL_FALSE, 5 * sizeof(float), (void*)(3 * sizeof(float))); - } void Renderer2D::BeginDraw(Vector2 size) diff --git a/Nuake/src/Rendering/SceneRenderer.cpp b/Nuake/src/Rendering/SceneRenderer.cpp index a08d79c9..c1707bb1 100644 --- a/Nuake/src/Rendering/SceneRenderer.cpp +++ b/Nuake/src/Rendering/SceneRenderer.cpp @@ -93,6 +93,19 @@ namespace Nuake { } mToneMapBuffer->Unbind(); + RenderCommand::Disable(RendererEnum::FACE_CULL); + Ref environment = scene.GetEnvironment(); + if (environment->CurrentSkyType == SkyType::ProceduralSky) + { + environment->ProceduralSkybox->Draw(mProjection, mView, environment->Exposure); + } + else if (environment->CurrentSkyType == SkyType::ClearColor) + { + RenderCommand::SetClearColor(environment->AmbientColor); + RenderCommand::Clear(); + } + RenderCommand::Enable(RendererEnum::FACE_CULL); + //mSSR->Resize(framebuffer.GetSize()); //mSSR->Draw(mGBuffer.get(), framebuffer.GetTexture(), mView, mProjection, scene.GetCurrentCamera()); @@ -220,19 +233,6 @@ namespace Nuake { { RenderCommand::Disable(RendererEnum::DEPTH_TEST); - RenderCommand::Disable(RendererEnum::FACE_CULL); - Ref environment = scene.GetEnvironment(); - if (environment->CurrentSkyType == SkyType::ProceduralSky) - { - environment->ProceduralSkybox->Draw(mProjection, mView); - } - else if (environment->CurrentSkyType == SkyType::ClearColor) - { - RenderCommand::SetClearColor(environment->AmbientColor); - RenderCommand::Clear(); - } - RenderCommand::Enable(RendererEnum::FACE_CULL); - Shader* shadingShader = ShaderManager::GetShader("resources/Shaders/deferred.shader"); shadingShader->Bind(); shadingShader->SetUniformMat4f("u_Projection", mProjection); diff --git a/Nuake/src/Scene/Scene.h b/Nuake/src/Scene/Scene.h index 7b4febb5..b999a97a 100644 --- a/Nuake/src/Scene/Scene.h +++ b/Nuake/src/Scene/Scene.h @@ -20,9 +20,11 @@ namespace Nuake { class Entity; class SceneRenderer; + class Scene : public ISerializable { friend Entity; + private: std::string Name; bool has_changed = true;