Example #1
0
void renderScene() 
{	
	//
	// camera
	//

    gCam.mFront = glm::vec3(gCam.mDir.x, 0.0f, gCam.mDir.z);
    gCam.mRight = glm::vec3(-gCam.mFront.z, 0.0f, gCam.mFront.x);
	gModelViewMatrix = glm::lookAt(gCam.mTarget - gCam.mDir*gCam.mZoom, gCam.mTarget, glm::vec3(0.0f, 1.0f, 0.0f)); 

    gRenderer.beginGeometryStage(gProjectionMatrix);	    

    GLint mvLoc = gRenderer.geometryStageProgram()->getUniformLocation("modelviewMatrix");
    GLint normLoc = gRenderer.geometryStageProgram()->getUniformLocation("normalMatrix");
    geometryUtils::TransformState ts = geometryUtils::TransformState(mvLoc, normLoc, &gModelViewMatrix);
    ts.setState();
    gScene.render(ts);

    gRenderer.endGeometryStage();
    
    gRenderer.finalStage(gModelViewMatrix, gLights);

    gRenderer.displayTex(DeferredRenderer::ttColor,  glm::vec4(0.8f, 0.8f, 0.15, 0.15));
    gRenderer.displayTex(DeferredRenderer::ttNormal, glm::vec4(0.8f, 0.5f, 0.15, 0.15));
    gRenderer.displayTex(DeferredRenderer::ttPos,    glm::vec4(0.8f, 0.2f, 0.15, 0.15));
}