Fixed being able to switch between Quad view and normal view.

This commit is contained in:
Tleety
2014-04-27 04:59:11 +02:00
parent a199e777bc
commit 4389f2db4c
4 changed files with 34 additions and 3 deletions
+25 -2
View File
@@ -119,10 +119,15 @@ void Renderer::LoadContent()
m_FirstPassProgram.Link();
m_SecondPassProgram.AddShader(std::shared_ptr<Shader>(new VertexShader("Shaders/Vertex2.glsl")));
m_SecondPassProgram.AddShader(std::shared_ptr<Shader>(new FragmentShader("Shaders/Fragment2-Debug.glsl")));
m_SecondPassProgram.AddShader(std::shared_ptr<Shader>(new FragmentShader("Shaders/Fragment2.glsl")));
m_SecondPassProgram.Compile();
m_SecondPassProgram.Link();
m_SecondPassProgram_Debug.AddShader(std::shared_ptr<Shader>(new VertexShader("Shaders/Vertex2.glsl")));
m_SecondPassProgram_Debug.AddShader(std::shared_ptr<Shader>(new FragmentShader("Shaders/Fragment2-Debug.glsl")));
m_SecondPassProgram_Debug.Compile();
m_SecondPassProgram_Debug.Link();
m_ScreenQuad = CreateQuad();
FrameBufferTextures();
@@ -130,6 +135,16 @@ void Renderer::LoadContent()
void Renderer::Draw(double dt)
{
if(glfwGetKey(m_Window, GLFW_KEY_F1))
{
m_QuadView = false;
}
if(glfwGetKey(m_Window, GLFW_KEY_F2))
{
m_QuadView = true;
}
glDisable(GL_BLEND);
DrawFBO();
@@ -653,7 +668,14 @@ void Renderer::DrawFBO()
// Draw to screen
glBindFramebuffer(GL_DRAW_FRAMEBUFFER, 0);
m_SecondPassProgram.Bind();
if(!m_QuadView)
{
m_SecondPassProgram.Bind();
}
else
{
m_SecondPassProgram_Debug.Bind();
}
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
////SetupDefferedStageUniforms(); // Probably what we do in FrameBufferTextures();
@@ -736,6 +758,7 @@ void Renderer::DrawFBOScene()
{
glm::mat4 cameraMatrix = m_Camera->ProjectionMatrix() * m_Camera->ViewMatrix();
glm::mat4 MVP;
for (auto tuple : ModelsToRender)
{
Model* model;
+3
View File
@@ -96,11 +96,14 @@ private:
GLenum draw_bufs[2];
GLuint m_ScreenQuad;
bool m_QuadView;
std::shared_ptr<Camera> m_Camera;
ShaderProgram m_ShaderProgram;
ShaderProgram m_FirstPassProgram;
ShaderProgram m_SecondPassProgram;
ShaderProgram m_SecondPassProgram_Debug;
ShaderProgram m_ShaderProgramNormals;
ShaderProgram m_ShaderProgramShadows;
ShaderProgram m_ShaderProgramShadowsDrawDepth;
+5
View File
@@ -23,10 +23,15 @@ void DrawQuadrant(vec4 texel, vec2 quadrant)
void main()
{
vec4 DiffuseTexel = texture2D(DiffuseTexture, Input.TextureCoord);
vec4 PositionTexel = texture2D(PositionTexture, Input.TextureCoord);
vec4 NormalTexel = texture2D(NormalTexture, Input.TextureCoord);
//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));
}
+1 -1
View File
@@ -15,5 +15,5 @@ out vec4 FragColor;
void main()
{
FragColor = texture2D(NormalTexture, Input.TextureCoord);
FragColor = texture2D(DiffuseTexture, Input.TextureCoord);
}