mirror of
https://github.com/antopilo/Nuake.git
synced 2026-09-15 20:08:54 +03:00
Code cleanup
This commit is contained in:
@@ -4,6 +4,7 @@
|
||||
#include <src/Scene/Components/LightComponent.h>
|
||||
#include <src/Scene/Components/CameraComponent.h>
|
||||
#include <src/Scene/Components/SphereCollider.h>
|
||||
#include <src/Scene/Components/CharacterControllerComponent.h>
|
||||
#include <src/Scene/Components/BoxCollider.h>
|
||||
|
||||
#include <src/Resource/ModelLoader.h>
|
||||
@@ -35,6 +36,7 @@ GizmoDrawer::GizmoDrawer()
|
||||
_gizmos = std::map<std::string, Ref<Model>>();
|
||||
_gizmos["cam"] = loader.LoadModel("resources/Models/Camera.gltf");
|
||||
_gizmos["light"] = loader.LoadModel("resources/Models/Light.gltf");
|
||||
_gizmos["player"] = loader.LoadModel("resources/Models/Player.gltf");
|
||||
}
|
||||
|
||||
void GizmoDrawer::GenerateSphereGizmo()
|
||||
@@ -178,7 +180,7 @@ void GizmoDrawer::DrawGizmos(Ref<Scene> scene)
|
||||
{
|
||||
using namespace Nuake;
|
||||
//RenderCommand::Disable(RendererEnum::DEPTH_TEST);
|
||||
RenderCommand::Enable(RendererEnum::DEPTH_TEST);
|
||||
//RenderCommand::Enable(RendererEnum::DEPTH_TEST);
|
||||
// Draw Axis lignes.
|
||||
{
|
||||
mLineShader->Bind();
|
||||
@@ -224,6 +226,8 @@ void GizmoDrawer::DrawGizmos(Ref<Scene> scene)
|
||||
glCullFace(GL_BACK);
|
||||
|
||||
RenderList renderList;
|
||||
|
||||
// Camera
|
||||
auto camView = scene->m_Registry.view<TransformComponent, CameraComponent>();
|
||||
for (auto e : camView)
|
||||
{
|
||||
@@ -233,6 +237,7 @@ void GizmoDrawer::DrawGizmos(Ref<Scene> scene)
|
||||
}
|
||||
renderList.Flush(flatShader, true);
|
||||
|
||||
// Lights
|
||||
auto lightView = scene->m_Registry.view<TransformComponent, LightComponent>();
|
||||
for (auto e : lightView)
|
||||
{
|
||||
@@ -242,8 +247,24 @@ void GizmoDrawer::DrawGizmos(Ref<Scene> scene)
|
||||
renderList.AddToRenderList(_gizmos["light"]->GetMeshes()[0], transform.GetGlobalTransform());
|
||||
renderList.Flush(flatShader, true);
|
||||
}
|
||||
renderList.Flush(flatShader, true);
|
||||
|
||||
|
||||
// Player
|
||||
auto characterControllerView = scene->m_Registry.view<TransformComponent, CharacterControllerComponent>();
|
||||
for (auto e : characterControllerView)
|
||||
{
|
||||
auto [transformComponent, characterControllerComponent] = scene->m_Registry.get<TransformComponent, CharacterControllerComponent>(e);
|
||||
|
||||
flatShader->SetUniformVec4("u_Color", Vector4(0.0f, 1.0f, 0.4f, 1.0f));
|
||||
|
||||
const auto scaledTransform = glm::scale(transformComponent.GetGlobalTransform(), Vector3(0.25f, 0.25f, 0.25f));
|
||||
renderList.AddToRenderList(_gizmos["player"]->GetMeshes()[0], scaledTransform);
|
||||
renderList.Flush(flatShader, true);
|
||||
}
|
||||
|
||||
renderList.Flush(flatShader, true);
|
||||
|
||||
RenderCommand::Disable(RendererEnum::FACE_CULL);
|
||||
RenderCommand::Enable(RendererEnum::DEPTH_TEST);
|
||||
}
|
||||
@@ -84,10 +84,12 @@ namespace Nuake {
|
||||
void FileSystemUI::DrawDirectory(Ref<Directory> directory)
|
||||
{
|
||||
ImGui::PushFont(EditorInterface::bigIconFont);
|
||||
std::string id = directory->name;
|
||||
|
||||
const char* icon = ICON_FA_FOLDER;
|
||||
const std::string id = ICON_FA_FOLDER + std::string("##") + directory->name;
|
||||
if (ImGui::Button(id.c_str(), ImVec2(100, 100)))
|
||||
{
|
||||
m_CurrentDirectory = directory;
|
||||
}
|
||||
|
||||
ImGui::Text(directory->name.c_str());
|
||||
ImGui::PopFont();
|
||||
|
||||
@@ -7,21 +7,20 @@
|
||||
namespace Nuake {
|
||||
void SceneRenderer::Init()
|
||||
{
|
||||
mGBuffer = CreateScope<FrameBuffer>(false, Vector2(1920, 1080));
|
||||
mGBuffer->SetTexture(CreateRef<Texture>(Vector2(1920, 1080), GL_DEPTH_COMPONENT), GL_DEPTH_ATTACHMENT);
|
||||
mGBuffer->SetTexture(CreateRef<Texture>(Vector2(1920, 1080), GL_RGB), GL_COLOR_ATTACHMENT0);
|
||||
mGBuffer->SetTexture(CreateRef<Texture>(Vector2(1920, 1080), GL_RGB), GL_COLOR_ATTACHMENT1);
|
||||
mGBuffer->SetTexture(CreateRef<Texture>(Vector2(1920, 1080), GL_RGB), GL_COLOR_ATTACHMENT2);
|
||||
mGBuffer->SetTexture(CreateRef<Texture>(Vector2(1920, 1080), GL_RGB), GL_COLOR_ATTACHMENT3);
|
||||
const auto defaultResolution = Vector2(1920, 1080);
|
||||
mGBuffer = CreateScope<FrameBuffer>(false, defaultResolution);
|
||||
mGBuffer->SetTexture(CreateRef<Texture>(defaultResolution, GL_DEPTH_COMPONENT), GL_DEPTH_ATTACHMENT);
|
||||
mGBuffer->SetTexture(CreateRef<Texture>(defaultResolution, GL_RGB), GL_COLOR_ATTACHMENT0);
|
||||
mGBuffer->SetTexture(CreateRef<Texture>(defaultResolution, GL_RGB), GL_COLOR_ATTACHMENT1);
|
||||
mGBuffer->SetTexture(CreateRef<Texture>(defaultResolution, GL_RGB), GL_COLOR_ATTACHMENT2);
|
||||
mGBuffer->SetTexture(CreateRef<Texture>(defaultResolution, GL_RGB), GL_COLOR_ATTACHMENT3);
|
||||
|
||||
mShadingBuffer = CreateScope<FrameBuffer>(true, Vector2(1920, 1080));
|
||||
Ref<Texture> shadedTexture = CreateRef<Texture>(Vector2(1920, 1080), GL_RGB, GL_RGB16F, GL_FLOAT);
|
||||
mShadingBuffer->SetTexture(shadedTexture);
|
||||
mShadingBuffer = CreateScope<FrameBuffer>(true, defaultResolution);
|
||||
mShadingBuffer->SetTexture(CreateRef<Texture>(defaultResolution, GL_RGB, GL_RGB16F, GL_FLOAT));
|
||||
|
||||
mSSR = CreateScope<SSR>();
|
||||
|
||||
mToneMapBuffer = CreateScope<FrameBuffer>(false, Vector2(1920, 1080));
|
||||
mToneMapBuffer->SetTexture(CreateRef<Texture>(Vector2(1920, 1080), GL_RGB), GL_COLOR_ATTACHMENT0);
|
||||
mToneMapBuffer = CreateScope<FrameBuffer>(false, defaultResolution);
|
||||
mToneMapBuffer->SetTexture(CreateRef<Texture>(defaultResolution, GL_RGB), GL_COLOR_ATTACHMENT0);
|
||||
}
|
||||
|
||||
void SceneRenderer::Cleanup()
|
||||
@@ -36,8 +35,14 @@ namespace Nuake {
|
||||
mCamPos = camPos;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Renders a scene to a framebuffer. The size of the framebuffer will be used.
|
||||
/// </summary>
|
||||
/// <param name="scene">Scene to render</param>
|
||||
/// <param name="framebuffer">Framebuffer to render the scene to. Should be in the right size</param>
|
||||
void SceneRenderer::RenderScene(Scene& scene, FrameBuffer& framebuffer)
|
||||
{
|
||||
// Renders all shadow maps
|
||||
ShadowPass(scene);
|
||||
|
||||
mGBuffer->QueueResize(framebuffer.GetSize());
|
||||
@@ -47,14 +52,14 @@ namespace Nuake {
|
||||
ShadingPass(scene);
|
||||
|
||||
const auto& sceneEnv = scene.GetEnvironment();
|
||||
Texture* finalOutput = mShadingBuffer->GetTexture().get();
|
||||
Ref<Texture> finalOutput = mShadingBuffer->GetTexture();
|
||||
if (scene.GetEnvironment()->BloomEnabled)
|
||||
{
|
||||
sceneEnv->mBloom->SetSource(mShadingBuffer->GetTexture());
|
||||
sceneEnv->mBloom->Resize(framebuffer.GetSize());
|
||||
sceneEnv->mBloom->Draw();
|
||||
|
||||
finalOutput = scene.GetEnvironment()->mBloom->GetOutput().get();
|
||||
finalOutput = scene.GetEnvironment()->mBloom->GetOutput();
|
||||
}
|
||||
|
||||
|
||||
@@ -82,14 +87,15 @@ namespace Nuake {
|
||||
Shader* shader = ShaderManager::GetShader("resources/Shaders/combine.shader");
|
||||
shader->Bind();
|
||||
|
||||
shader->SetUniformTex("u_Source", finalOutput, 0);
|
||||
shader->SetUniformTex("u_Source", finalOutput.get(), 0);
|
||||
shader->SetUniformTex("u_Source2", sceneEnv->mVolumetric->GetFinalOutput().get(), 1);
|
||||
Renderer::DrawQuad();
|
||||
}
|
||||
framebuffer.Unbind();
|
||||
}
|
||||
|
||||
finalOutput = framebuffer.GetTexture().get();
|
||||
finalOutput = framebuffer.GetTexture();
|
||||
|
||||
// SSAO
|
||||
sceneEnv->mSSAO->Resize(framebuffer.GetSize());
|
||||
sceneEnv->mSSAO->Draw(mGBuffer.get(), mProjection, mView);
|
||||
@@ -104,13 +110,11 @@ namespace Nuake {
|
||||
|
||||
shader->SetUniform1f("u_Exposure", scene.GetEnvironment()->Exposure);
|
||||
shader->SetUniform1f("u_Gamma", scene.GetEnvironment()->Gamma);
|
||||
shader->SetUniformTex("u_Source", finalOutput);
|
||||
shader->SetUniformTex("u_Source", finalOutput.get());
|
||||
Renderer::DrawQuad();
|
||||
}
|
||||
mToneMapBuffer->Unbind();
|
||||
|
||||
|
||||
|
||||
mSSR->Resize(framebuffer.GetSize());
|
||||
mSSR->Draw(mGBuffer.get(), framebuffer.GetTexture(), mView, mProjection, scene.GetCurrentCamera());
|
||||
|
||||
|
||||
@@ -23,11 +23,11 @@ namespace Nuake
|
||||
glGenerateMipmap(GL_TEXTURE_2D);
|
||||
//glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
|
||||
//glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
|
||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST_MIPMAP_NEAREST);
|
||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST_MIPMAP_LINEAR);
|
||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
|
||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
|
||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
|
||||
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_LOD_BIAS, -1.0f);
|
||||
//glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_LOD_BIAS, -1.0f);
|
||||
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA8, m_Width, m_Height, 0, GL_RGBA, GL_UNSIGNED_BYTE, m_LocalBuffer);
|
||||
glGenerateMipmap(GL_TEXTURE_2D);
|
||||
if (m_LocalBuffer)
|
||||
|
||||
Reference in New Issue
Block a user