From a199e777bc0ee8e83e06ae84db660e32fafa75ac Mon Sep 17 00:00:00 2001 From: Tleety Date: Sun, 27 Apr 2014 03:59:41 +0200 Subject: [PATCH] Working Debug mode --- src/Renderer.cpp | 17 +++++----- src/Shaders/Fragment2-Debug.glsl | 33 +++++++++++++++++++ src/Shaders/Fragment2.glsl | 2 +- src/Shaders/Vertex.glsl | 3 +- vs11/Returngeance/Returngeance.vcxproj | 18 +--------- .../Returngeance/Returngeance.vcxproj.filters | 18 +++++++--- 6 files changed, 60 insertions(+), 31 deletions(-) create mode 100644 src/Shaders/Fragment2-Debug.glsl diff --git a/src/Renderer.cpp b/src/Renderer.cpp index 44032b0..17e3db6 100755 --- a/src/Renderer.cpp +++ b/src/Renderer.cpp @@ -119,7 +119,7 @@ void Renderer::LoadContent() m_FirstPassProgram.Link(); m_SecondPassProgram.AddShader(std::shared_ptr(new VertexShader("Shaders/Vertex2.glsl"))); - m_SecondPassProgram.AddShader(std::shared_ptr(new FragmentShader("Shaders/Fragment2.glsl"))); + m_SecondPassProgram.AddShader(std::shared_ptr(new FragmentShader("Shaders/Fragment2-Debug.glsl"))); m_SecondPassProgram.Compile(); m_SecondPassProgram.Link(); @@ -530,8 +530,8 @@ void Renderer::FrameBufferTextures() glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, WIDTH, HEIGHT, 0, GL_RGBA, GL_UNSIGNED_BYTE, NULL); 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_WRAP_S, GL_CLAMP_TO_EDGE); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT); //Generate and bind position texture glGenTextures(1, &m_fPositionTexture); @@ -539,8 +539,8 @@ void Renderer::FrameBufferTextures() glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA32F, WIDTH, HEIGHT, 0, GL_RGBA, GL_UNSIGNED_BYTE, NULL); 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_WRAP_S, GL_CLAMP_TO_EDGE); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT); //Generate and bind normal texture glGenTextures(1, &m_fNormalsTexture); @@ -548,8 +548,8 @@ void Renderer::FrameBufferTextures() glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA16F, WIDTH, HEIGHT, 0, GL_RGBA, GL_UNSIGNED_BYTE, NULL); 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_WRAP_S, GL_CLAMP_TO_EDGE); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT); //Bind fb glBindFramebuffer(GL_FRAMEBUFFER, m_fb); @@ -668,7 +668,7 @@ void Renderer::DrawFBO() glBindVertexArray(m_ScreenQuad); glEnableVertexAttribArray(0); - glEnableVertexAttribArray(2); +/* glEnableVertexAttribArray(2);*/ glDrawArrays(GL_TRIANGLES, 0, 6); } @@ -747,6 +747,7 @@ void Renderer::DrawFBOScene() MVP = cameraMatrix * modelMatrix; glUniformMatrix4fv(glGetUniformLocation(m_FirstPassProgram.GetHandle(), "MVP"), 1, GL_FALSE, glm::value_ptr(MVP)); + glUniformMatrix4fv(glGetUniformLocation(m_FirstPassProgram.GetHandle(), "ModelMatrix"), 1, GL_FALSE, glm::value_ptr(modelMatrix)); glBindVertexArray(model->VAO); for (auto texGroup : model->TextureGroups) { diff --git a/src/Shaders/Fragment2-Debug.glsl b/src/Shaders/Fragment2-Debug.glsl new file mode 100644 index 0000000..dc258c8 --- /dev/null +++ b/src/Shaders/Fragment2-Debug.glsl @@ -0,0 +1,33 @@ +#version 430 + +layout (binding=0) uniform sampler2D DiffuseTexture; +layout (binding=1) uniform sampler2D PositionTexture; +layout (binding=2) uniform sampler2D NormalTexture; + +in VertexData +{ + vec3 Position; + vec3 Normal; + vec2 TextureCoord; +} Input; + +out vec4 FragColor; + +void DrawQuadrant(vec4 texel, vec2 quadrant) +{ + if (-quadrant.x * Input.Position.x < 0 && -quadrant.y * Input.Position.y < 0) + { + FragColor = texel; + } +} + +void main() +{ + //FragColor = texture2D(DiffuseTexture, Input.TextureCoord * 2 + vec2(0, -1)); + DrawQuadrant(texture2D(DiffuseTexture, Input.TextureCoord * 2), vec2(-1, 1)); + DrawQuadrant(texture2D(PositionTexture, Input.TextureCoord * 2), vec2(1, 1)); + DrawQuadrant(texture2D(NormalTexture, Input.TextureCoord * 2), vec2(-1, -1)); + vec4 AllTexel = texture2D(DiffuseTexture, Input.TextureCoord*2)*texture2D(PositionTexture, Input.TextureCoord*2)*texture2D(NormalTexture, Input.TextureCoord*2); + DrawQuadrant(AllTexel, vec2(1, -1)); +} + diff --git a/src/Shaders/Fragment2.glsl b/src/Shaders/Fragment2.glsl index cbc905e..42c3997 100644 --- a/src/Shaders/Fragment2.glsl +++ b/src/Shaders/Fragment2.glsl @@ -15,5 +15,5 @@ out vec4 FragColor; void main() { - FragColor = texture2D(DiffuseTexture, Input.TextureCoord); + FragColor = texture2D(NormalTexture, Input.TextureCoord); } \ No newline at end of file diff --git a/src/Shaders/Vertex.glsl b/src/Shaders/Vertex.glsl index 6254b60..aaa0857 100755 --- a/src/Shaders/Vertex.glsl +++ b/src/Shaders/Vertex.glsl @@ -1,6 +1,7 @@ #version 430 uniform mat4 MVP; +uniform mat4 ModelMatrix; layout (location = 0) in vec3 Position; layout (location = 1) in vec3 Normal; @@ -18,6 +19,6 @@ void main() gl_Position = MVP * vec4(Position, 1.0); Output.Position = gl_Position.xyz; - Output.Normal = Normal; + Output.Normal = normalize((ModelMatrix * vec4(Normal, 0.0)).xyz); Output.TextureCoord = TextureCoord; } \ No newline at end of file diff --git a/vs11/Returngeance/Returngeance.vcxproj b/vs11/Returngeance/Returngeance.vcxproj index a51c769..d8ca087 100755 --- a/vs11/Returngeance/Returngeance.vcxproj +++ b/vs11/Returngeance/Returngeance.vcxproj @@ -167,27 +167,11 @@ - - - - true - - - - - - - + - - true - - - true - diff --git a/vs11/Returngeance/Returngeance.vcxproj.filters b/vs11/Returngeance/Returngeance.vcxproj.filters index b8f30e6..1a05dbf 100755 --- a/vs11/Returngeance/Returngeance.vcxproj.filters +++ b/vs11/Returngeance/Returngeance.vcxproj.filters @@ -226,12 +226,10 @@ Physics\Components + - - Shaders - - + Shaders @@ -255,11 +253,23 @@ Shaders + + Shaders + Shaders Shaders + + Shaders + + + Shaders + + + Shaders + \ No newline at end of file