From e632c4b8d3aa022ef25f90edf34253693db0bf51 Mon Sep 17 00:00:00 2001 From: Antoine Pilote Date: Thu, 6 Jul 2023 18:10:01 -0400 Subject: [PATCH] Added render target to gbuffer --- Editor/resources/Shaders/gbuffer.shader | 3 +++ Nuake/src/Rendering/SceneRenderer.cpp | 2 +- Nuake/src/Rendering/SceneRenderer.h | 6 ++++++ 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/Editor/resources/Shaders/gbuffer.shader b/Editor/resources/Shaders/gbuffer.shader index c08d14cf..1708ab4a 100644 --- a/Editor/resources/Shaders/gbuffer.shader +++ b/Editor/resources/Shaders/gbuffer.shader @@ -40,6 +40,7 @@ void main() layout(location = 0) out vec4 gAlbedo; layout(location = 1) out vec4 gNormal; layout(location = 2) out vec4 gMaterial; +layout(location = 3) out int gEntityID; in vec3 FragPos; in vec2 UV; @@ -102,4 +103,6 @@ void main() gMaterial.r = finalMetalness; gMaterial.g = finalAO; gMaterial.b = finalRoughness; + + gEntityID = int(gAlbedo.r * 255.0); } \ No newline at end of file diff --git a/Nuake/src/Rendering/SceneRenderer.cpp b/Nuake/src/Rendering/SceneRenderer.cpp index 14f4ad78..fe11ddad 100644 --- a/Nuake/src/Rendering/SceneRenderer.cpp +++ b/Nuake/src/Rendering/SceneRenderer.cpp @@ -13,7 +13,7 @@ namespace Nuake { mGBuffer->SetTexture(CreateRef(defaultResolution, GL_RGB), GL_COLOR_ATTACHMENT0); mGBuffer->SetTexture(CreateRef(defaultResolution, GL_RGB), GL_COLOR_ATTACHMENT1); mGBuffer->SetTexture(CreateRef(defaultResolution, GL_RGB), GL_COLOR_ATTACHMENT2); - mGBuffer->SetTexture(CreateRef(defaultResolution, GL_RGB), GL_COLOR_ATTACHMENT3); + mGBuffer->SetTexture(CreateRef(defaultResolution, GL_RED_INTEGER, GL_R32I, GL_INT), GL_COLOR_ATTACHMENT3); mShadingBuffer = CreateScope(true, defaultResolution); mShadingBuffer->SetTexture(CreateRef(defaultResolution, GL_RGB, GL_RGB16F, GL_FLOAT)); diff --git a/Nuake/src/Rendering/SceneRenderer.h b/Nuake/src/Rendering/SceneRenderer.h index 36bf4216..fa8adf1a 100644 --- a/Nuake/src/Rendering/SceneRenderer.h +++ b/Nuake/src/Rendering/SceneRenderer.h @@ -18,6 +18,12 @@ namespace Nuake { void RenderScene(Scene& scene, FrameBuffer& framebuffer); Scope mSSR; + + FrameBuffer& GetGBuffer() const + { + return *mGBuffer; + } + private: Matrix4 mProjection, mView; Vector3 mCamPos;