Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ////////////////////////////////////////////////////////////////////////
- // Procedure DrawScene is called whenever the scene needs to be drawn.
- void DrawScene(Scene &scene)
- {
- CHECKERROR;
- int loc, program;
- // Calculate the light's position.
- float lPos[4] = {
- scene.lightDist*cos(scene.lightSpin*rad)*sin(scene.lightTilt*rad),
- scene.lightDist*sin(scene.lightSpin*rad)*sin(scene.lightTilt*rad),
- scene.lightDist*cos(scene.lightTilt*rad),
- 1.0 };
- mat4x4 SphereModelTr = rotate(atime, 0.0f, 0.0f, 1.0f);
- mat4x4 SunModelTr = translate(lPos[0],lPos[1],lPos[2]);
- mat4x4 field1 = translate(0.0f,-150.0f,0.0f);
- mat4x4 field2 = translate(-150.0f,0.0f,0.0f);
- mat4x4 field3 = translate(150.0f,0.0f,0.0f);
- mat4x4 field4 = translate(0.0f,150.0f,0.0f);
- mat4 shadowTestGeo = rotate(180.0f,1.0f,0.0f,0.0f);
- shadowTestGeo = translate(shadowTestGeo,0.0f,0.0f,-5.0f);
- shadowTestGeo = scale(shadowTestGeo,0.2f,0.2f,0.2f);
- mat4x4 daBasementTrans = translate(150.0f,-150.0f,-20.0f);
- mat4x4 daBasementTransform = scale(daBasementTrans,10.0f,10.0f,1.0f);
- mat4x4 groundPlane = scale(Identity,10.0f,10.0f,10.0f);
- mat4x4 treeTrans1_a = Identity;
- mat4x4 treeTrans1_b = translate(0.0f,-50.0f,-35.0f);
- mat4x4 treeTrans1 = scale(treeTrans1_b,6.0f,6.0f,6.0f);
- vec3 transVec(5,0,0);
- mat4x4 tree2Trans = translate(treeTrans1,transVec);
- transVec = vec3(-5,0,0);
- mat4x4 tree3Trans = translate(treeTrans1,transVec);
- float sx, sy;
- sy = 0.6f*scene.front;
- sx = sy * scene.width/scene.height;
- //mat4x4 T1 = translate(scene.translatex, scene.translatey, -scene.zoom);
- //mat4x4 T2 = rotate(T1, scene.eyeTilt, 1.0f, 0.0f, 0.0f);
- //mat4x4 WorldView = rotate(T2, scene.eyeSpin, 0.0f, 0.0f, 1.0f);
- //test yo
- mat4x4 WorldView;
- vec3 cameraPos;
- if(scene.camFreeform)
- {
- scene.camera->Update(0);
- //mat4x4 T1 = translate(scene.camera->pos.x, scene.camera->pos.y, -scene.camera->pos.z);
- //mat4x4 T2 = rotate(T1, scene.camera->alpha, 1.0f, 0.0f, 0.0f);
- //WorldView = rotate(T2, scene.camera->beta, 0.0f, 0.0f, 1.0f);
- //mat4x4 WorldView = lookAt()
- WorldView = lookAt(scene.camera->pos,
- (scene.camera->target),
- (scene.camera->upVector));
- cameraPos = vec3(scene.camera->pos.x, scene.camera->pos.y, scene.camera->pos.z);
- }
- else
- {
- mat4x4 T1 = translate(scene.translatex, scene.translatey, -scene.zoom);
- mat4x4 T2 = rotate(T1, scene.eyeTilt, 1.0f, 0.0f, 0.0f);
- WorldView = rotate(T2, scene.eyeSpin, 0.0f, 0.0f, 1.0f);
- cameraPos = vec3(scene.translatex,scene.translatey,scene.zoom);
- }
- mat4x4 WorldInv = affineInverse(WorldView);
- mat4x4 WorldProj = frustum(-sx, sx, -sy, sy, scene.front, 10000.0f);
- mat4x4 orthoProj = ortho(0.f, (float)scene.width, 0.0f,(float)scene.height, scene.front, 10000.0f);
- GraphicsSystemNS::g_GraphicsGL->worldProj = WorldProj;
- GraphicsSystemNS::g_GraphicsGL->worldViewInverse = WorldInv;
- GraphicsSystemNS::g_GraphicsGL->worldView = WorldView;
- GraphicsSystemNS::g_GraphicsGL->orthoProj = orthoProj;
- GraphicsSystemNS::g_GraphicsGL->testTexture = scene.groundColor;
- GraphicsSystemNS::g_GraphicsGL->initialPointLight->pos = vec4(lPos[0],lPos[1],
- lPos[2],lPos[3]) ;
- mat4x4 SunModelTr2 = translate(GraphicsSystemNS::g_GraphicsGL->m_SpotLight->pos.x,
- GraphicsSystemNS::g_GraphicsGL->m_SpotLight->pos.y,
- GraphicsSystemNS::g_GraphicsGL->m_SpotLight->pos.z);
- //GraphicsSystemNS::g_GraphicsGL->lights[1]->pos *= WorldView;
- vec3 lightPos = vec3(GraphicsSystemNS::g_GraphicsGL->m_SpotLight->pos.x,
- GraphicsSystemNS::g_GraphicsGL->m_SpotLight->pos.y,
- GraphicsSystemNS::g_GraphicsGL->m_SpotLight->pos.z);
- vec3 lightToTarget = GraphicsSystemNS::g_GraphicsGL->m_SpotLight->target - vec3(GraphicsSystemNS::g_GraphicsGL->m_SpotLight->pos.x,
- GraphicsSystemNS::g_GraphicsGL->m_SpotLight->pos.y,
- GraphicsSystemNS::g_GraphicsGL->m_SpotLight->pos.z);
- vec3 lightUp = cross(lightToTarget,vec3(-1.0f,0.0f,0.0f) ); // cross product between light to target and right vec
- GraphicsSystemNS::g_GraphicsGL->m_SpotLight->target = vec3(0.0,-50.0,-35.0);
- mat4x4 worldViewLight = lookAt(lightPos,
- (GraphicsSystemNS::g_GraphicsGL->m_SpotLight->target ),
- normalize(vec3(0,0,1))); // this "up" has to be calculated correctly based on the light orientation(because its a spotlight, it can be rotated as well, so i cant assume just 1 for up)
- mat4x4 WorldInvShadow = affineInverse(worldViewLight);
- mat4x4 shadowProj = glm::perspective(scene.atten * 2.0f, 1.0f, LIGHT_CLIP_NEAR, LIGHT_CLIP_FAR);
- mat4 shadowViewTrans = transpose(worldViewLight);
- shadowViewTrans = translate(shadowViewTrans,0.5f,0.5f,0.5f);
- mat4 shadowProjTrans = transpose(shadowProj);
- //shadowProjTrans = translate(shadowProjTrans,0.5f,0.5f,0.5f);
- glutTimerFunc(100, animate, 1);
- ///////////////////////////////////////////////////////////////////
- // SHADOW Pass: The geometry of the scene is drawn to the FBO
- // render target.
- ///////////////////////////////////////////////////////////////////
- program = scene.shaderSHADOW.program;
- scene.shaderSHADOW.Use();
- // Select drawing to the FBO, set its viewport, and clear
- scene.fboSHADOW.Bind();
- glViewport(0, 0, scene.shadowsizeX, scene.shadowsizeY);
- glClearColor(1.0, 1.0, 1.0, 1.0);
- glClear(GL_COLOR_BUFFER_BIT| GL_DEPTH_BUFFER_BIT);
- glCullFace(GL_FRONT);
- // Setup the perspective and modelview matrices for normal viewing.
- loc = glGetUniformLocation(program, "ProjectionMatrix");
- glUniformMatrix4fv(loc, 1, GL_FALSE, value_ptr(shadowProj));
- loc = glGetUniformLocation(program, "ViewMatrix");
- glUniformMatrix4fv(loc, 1, GL_FALSE, value_ptr(worldViewLight));
- loc = glGetUniformLocation(program, "ViewInverse");
- glUniformMatrix4fv(loc, 1, GL_FALSE, value_ptr(WorldInvShadow));
- CHECKERROR;
- // Setup the initial model matrix (in gl_ModelViewMatrix)
- loc = glGetUniformLocation(program, "ModelMatrix");
- glUniformMatrix4fv(loc, 1, GL_FALSE, value_ptr(Identity));
- loc = glGetUniformLocation(program, "NormalMatrix");
- glUniformMatrix4fv(loc, 1, GL_FALSE, value_ptr(Identity));
- CHECKERROR;
- loc = glGetUniformLocation(program,"clipDistance");
- glUniform2f(loc,LIGHT_CLIP_NEAR, LIGHT_CLIP_NEAR - LIGHT_CLIP_FAR);
- GLuint glArrayshadow[] = {GL_COLOR_ATTACHMENT0_EXT};
- glDrawBuffers(1,glArrayshadow);
- GraphicsSystemNS::g_GraphicsGL->DrawTree(program,treeTrans1);
- GraphicsSystemNS::g_GraphicsGL->DrawTree(program,tree2Trans);
- GraphicsSystemNS::g_GraphicsGL->DrawTree(program,tree3Trans);
- //DrawGround(scene, program, shadowTestGeo);
- //DrawGround(scene, program, Identity);
- glCullFace(GL_BACK);
- scene.fboSHADOW.Unbind();
- // Remove shader program
- scene.shaderSHADOW.Unuse();
- CHECKERROR;
- ///////////////////////////////////////////////////////////////////
- // G-BUFFER PASS
- ///////////////////////////////////////////////////////////////////
- program = scene.shaderGBUFFER.program;
- // Use final pass shader
- scene.shaderGBUFFER.Use();
- CHECKERROR;
- GraphicsSystemNS::g_GraphicsGL->fbo_gBuffer.Bind();
- CHECKERROR;
- // Set the viewport, and clear the screen
- glViewport(0,0,scene.width, scene.height);
- glClearColor(0.0,0.0, 0.0, 1.0);
- glClear(GL_COLOR_BUFFER_BIT| GL_DEPTH_BUFFER_BIT);
- // Setup the perspective and modelview matrices for normal viewing.
- loc = glGetUniformLocation(program, "ProjectionMatrix");
- glUniformMatrix4fv(loc, 1, GL_FALSE, value_ptr(WorldProj));
- loc = glGetUniformLocation(program, "ViewMatrix");
- glUniformMatrix4fv(loc, 1, GL_FALSE, value_ptr(WorldView));
- loc = glGetUniformLocation(program, "ViewInverse");
- glUniformMatrix4fv(loc, 1, GL_FALSE, value_ptr(WorldInv));
- CHECKERROR;
- // Setup the initial model matrix (in gl_ModelViewMatrix)
- loc = glGetUniformLocation(program, "ModelMatrix");
- glUniformMatrix4fv(loc, 1, GL_FALSE, value_ptr(Identity));
- loc = glGetUniformLocation(program, "NormalMatrix");
- glUniformMatrix4fv(loc, 1, GL_FALSE, value_ptr(Identity));
- CHECKERROR;
- GLuint glArray[] = {GL_COLOR_ATTACHMENT0_EXT,
- GL_COLOR_ATTACHMENT1_EXT,
- GL_COLOR_ATTACHMENT2_EXT};
- glDrawBuffers(3,glArray);
- // Draw the scene objects.
- DrawSun(scene, program, SunModelTr);
- GraphicsSystemNS::g_GraphicsGL->DrawLightModels(program);
- //DrawSpheres(scene, program, SphereModelTr);
- DrawGround(scene, program, groundPlane);
- //DrawCentral(scene, program, scene.centralTr);
- //DrawGround(scene, program, field1);
- //DrawGround(scene, program, field2);
- //DrawGround(scene, program, field3);
- //DrawGround(scene, program, field4);
- //DrawGround(scene, program, daBasementTransform);
- //DrawGround(scene, program, shadowTestGeo);
- GraphicsSystemNS::g_GraphicsGL->DrawTree(program,treeTrans1);
- GraphicsSystemNS::g_GraphicsGL->DrawTree(program,tree2Trans);
- GraphicsSystemNS::g_GraphicsGL->DrawTree(program,tree3Trans);
- CHECKERROR;
- // Done with shader program
- GraphicsSystemNS::g_GraphicsGL->fbo_gBuffer.Unbind();
- scene.shaderGBUFFER.Unuse();
- CHECKERROR;
- ///////////////////////////////////////////////////////////////////
- // Render Volume Light //
- ///////////////////////////////////////////////////////////////////
- program = scene.shaderVOLUMELIGHT.program;
- // Use final pass shader
- scene.shaderVOLUMELIGHT.Use();
- CHECKERROR;
- GraphicsSystemNS::g_GraphicsGL->fbo_VolumeLight.Bind();
- CHECKERROR;
- // Set the viewport, and clear the screen
- glViewport(0,0,scene.width, scene.height);
- glClearColor(0.0,0.0, 0.0, 1.0);
- glClear(GL_COLOR_BUFFER_BIT| GL_DEPTH_BUFFER_BIT);
- // Setup the perspective and modelview matrices for normal viewing.
- loc = glGetUniformLocation(program, "ProjectionMatrix");
- glUniformMatrix4fv(loc, 1, GL_FALSE, value_ptr(WorldProj));
- loc = glGetUniformLocation(program, "ViewMatrix");
- glUniformMatrix4fv(loc, 1, GL_FALSE, value_ptr(WorldView));
- loc = glGetUniformLocation(program, "ViewInverse");
- glUniformMatrix4fv(loc, 1, GL_FALSE, value_ptr(WorldInv));
- CHECKERROR;
- // Setup the initial model matrix (in gl_ModelViewMatrix)
- loc = glGetUniformLocation(program, "ModelMatrix");
- glUniformMatrix4fv(loc, 1, GL_FALSE, value_ptr(Identity));
- loc = glGetUniformLocation(program, "NormalMatrix");
- glUniformMatrix4fv(loc, 1, GL_FALSE, value_ptr(Identity));
- CHECKERROR;
- // Make each texture from earlier passes active in a texture unit, and
- // inform shaderFINAL.
- glActiveTexture(GL_TEXTURE2);
- glBindTexture(GL_TEXTURE_2D, scene.fboSHADOW.texture);
- loc = glGetUniformLocation(program, "ldepth");
- glUniform1i(loc, 2);
- CHECKERROR;
- glActiveTexture(GL_TEXTURE3);
- glBindTexture(GL_TEXTURE_2D, GraphicsSystemNS::g_GraphicsGL->fbo_gBuffer.texture);
- loc = glGetUniformLocation(program, "gBufferPos");
- glUniform1i(loc, 3);
- CHECKERROR;
- loc = glGetUniformLocation(program, "mode");
- glUniform1i(loc, scene.mode);
- loc = glGetUniformLocation(program, "WIDTH");
- glUniform1i(loc, scene.width);
- loc = glGetUniformLocation(program, "HEIGHT");
- glUniform1i(loc, scene.height);
- loc = glGetUniformLocation(program, "camNear");
- glUniform1i(loc, scene.front);
- loc = glGetUniformLocation(program, "camFar");
- glUniform1i(loc, 10000);
- // set target
- loc = glGetUniformLocation(program,"cameraPos");
- glUniform3f(loc,cameraPos.x, cameraPos.y,cameraPos.z);
- // shadow stuff
- loc = glGetUniformLocation(program,"clipDistance");
- //glUniform2fv(loc,1,vec3(LIGHT_CLIP_NEAR, LIGHT_CLIP_NEAR - LIGHT_CLIP_FAR, 0.0f));
- glUniform2f(loc,LIGHT_CLIP_NEAR, LIGHT_CLIP_NEAR - LIGHT_CLIP_FAR);
- //mat4 m4 = translate(worldViewTranspose,-lightPos);
- loc = glGetUniformLocation(program, "ShadowViewMatrix");
- glUniformMatrix4fv(loc, 1, GL_FALSE, value_ptr(worldViewLight));
- loc = glGetUniformLocation(program, "ShadowProjMatrix");
- mat4 mat1_ = translate(Identity,0.5f,0.5f,0.5f);
- mat4 mat2_ = scale(mat1_,0.5f,0.5f,0.5f);
- mat4 shadowProjTest_ = mat2_ * shadowProj;
- glUniformMatrix4fv(loc, 1, GL_FALSE, value_ptr(shadowProjTest_));
- loc = glGetUniformLocation(program, "lightProj");
- glUniformMatrix4fv(loc, 1, GL_FALSE, value_ptr((shadowProj*worldViewLight)));
- loc = glGetUniformLocation(program, "lightPos");
- glUniform3f(loc,GraphicsSystemNS::g_GraphicsGL->m_SpotLight->pos.x,GraphicsSystemNS::g_GraphicsGL->m_SpotLight->pos.y,GraphicsSystemNS::g_GraphicsGL->m_SpotLight->pos.z);
- loc = glGetUniformLocation(program,"lightForward");
- //glUniform2fv(loc,1,vec3(LIGHT_CLIP_NEAR, LIGHT_CLIP_NEAR - LIGHT_CLIP_FAR, 0.0f));
- glUniform3f(loc,GraphicsSystemNS::g_GraphicsGL->m_SpotLight->spotCam->target.x,GraphicsSystemNS::g_GraphicsGL->m_SpotLight->spotCam->target.y,GraphicsSystemNS::g_GraphicsGL->m_SpotLight->spotCam->target.z);
- GLuint glVLightArr[] = {GL_COLOR_ATTACHMENT0_EXT};
- glDrawBuffers(1,glVLightArr); // color attach 0
- GraphicsSystemNS::g_GraphicsGL->DrawFullScreenQuad(scene.shaderVOLUMELIGHT);
- // TURN OFF GL BLENDING
- // Done with shader program
- GraphicsSystemNS::g_GraphicsGL->fbo_VolumeLight.Unbind();
- CHECKERROR;
- scene.shaderVOLUMELIGHT.Unuse();
- CHECKERROR;
- ///////////////////////////////////////////////////////////////////
- // FINAL SCENE TEST PASS DEFFERED SHADING //
- ///////////////////////////////////////////////////////////////////
- program = scene.shaderDEFFEREDFINAL.program;
- // Use final pass shader
- scene.shaderDEFFEREDFINAL.Use();
- CHECKERROR;
- //GraphicsSystemNS::g_GraphicsGL->fbo_finalTest.Bind();
- CHECKERROR;
- // Set the viewport, and clear the screen
- glViewport(0,0,scene.width, scene.height);
- glClearColor(0.0,0.0, 0.0, 1.0);
- glClear(GL_COLOR_BUFFER_BIT| GL_DEPTH_BUFFER_BIT);
- // Setup the perspective and modelview matrices for normal viewing.
- loc = glGetUniformLocation(program, "ProjectionMatrix");
- glUniformMatrix4fv(loc, 1, GL_FALSE, value_ptr(WorldProj));
- loc = glGetUniformLocation(program, "ViewMatrix");
- glUniformMatrix4fv(loc, 1, GL_FALSE, value_ptr(WorldView));
- loc = glGetUniformLocation(program, "ViewInverse");
- glUniformMatrix4fv(loc, 1, GL_FALSE, value_ptr(WorldInv));
- CHECKERROR;
- // Setup the initial model matrix (in gl_ModelViewMatrix)
- loc = glGetUniformLocation(program, "ModelMatrix");
- glUniformMatrix4fv(loc, 1, GL_FALSE, value_ptr(Identity));
- loc = glGetUniformLocation(program, "NormalMatrix");
- glUniformMatrix4fv(loc, 1, GL_FALSE, value_ptr(Identity));
- CHECKERROR;
- // Make each texture from earlier passes active in a texture unit, and
- // inform shaderFINAL.
- glActiveTexture(GL_TEXTURE2);
- glBindTexture(GL_TEXTURE_2D, scene.fboSHADOW.texture);
- loc = glGetUniformLocation(program, "ldepth");
- glUniform1i(loc, 2);
- CHECKERROR;
- glActiveTexture(GL_TEXTURE3);
- glBindTexture(GL_TEXTURE_2D, GraphicsSystemNS::g_GraphicsGL->fbo_gBuffer.texture);
- loc = glGetUniformLocation(program, "gBufferPos");
- glUniform1i(loc, 3);
- CHECKERROR;
- glActiveTexture(GL_TEXTURE4);
- glBindTexture(GL_TEXTURE_2D, GraphicsSystemNS::g_GraphicsGL->fbo_gBuffer.texture1);
- loc = glGetUniformLocation(program, "gBufferNormal");
- glUniform1i(loc, 4);
- CHECKERROR;
- glActiveTexture(GL_TEXTURE5);
- glBindTexture(GL_TEXTURE_2D, GraphicsSystemNS::g_GraphicsGL->fbo_gBuffer.texture2);
- loc = glGetUniformLocation(program, "gBufferDiffuse");
- glUniform1i(loc, 5);
- CHECKERROR;
- glActiveTexture(GL_TEXTURE6);
- glBindTexture(GL_TEXTURE_2D, GraphicsSystemNS::g_GraphicsGL->fbo_VolumeLight.texture);
- loc = glGetUniformLocation(program, "volumeLightTex");
- glUniform1i(loc, 6);
- CHECKERROR;
- loc = glGetUniformLocation(program, "mode");
- glUniform1i(loc, scene.mode);
- loc = glGetUniformLocation(program, "WIDTH");
- glUniform1i(loc, scene.width);
- loc = glGetUniformLocation(program, "HEIGHT");
- glUniform1i(loc, scene.height);
- // set target
- loc = glGetUniformLocation(program,"cameraPos");
- glUniform3f(loc,cameraPos.x, cameraPos.y,cameraPos.z);
- // shadow stuff
- loc = glGetUniformLocation(program,"clipDistance");
- glUniform2f(loc,LIGHT_CLIP_NEAR, LIGHT_CLIP_NEAR - LIGHT_CLIP_FAR);
- //mat4 m4 = translate(worldViewTranspose,-lightPos);
- loc = glGetUniformLocation(program, "ShadowViewMatrix");
- glUniformMatrix4fv(loc, 1, GL_FALSE, value_ptr(worldViewLight));
- loc = glGetUniformLocation(program, "ShadowProjMatrix");
- mat4 mat1 = translate(Identity,0.5f,0.5f,0.5f);
- mat4 mat2 = scale(mat1,0.5f,0.5f,0.5f);
- mat4 shadowProjTest = mat2 * shadowProj;
- glUniformMatrix4fv(loc, 1, GL_FALSE, value_ptr(shadowProjTest));
- // draw diredtional light( all "big" lights go here)
- GraphicsSystemNS::g_GraphicsGL->UpdateLightParams(scene.shaderDEFFEREDFINAL,GraphicsSystemNS::g_GraphicsGL->directionalLight);
- CHECKERROR;
- GraphicsSystemNS::g_GraphicsGL->DrawFullScreenQuad(scene.shaderDEFFEREDFINAL);
- CHECKERROR;
- // all small local lights go here
- glEnable(GL_BLEND);
- glDisable(GL_DEPTH_TEST);
- //turn on glblending
- //GLBLENGI N
- glBlendEquation(GL_FUNC_ADD);
- glBlendFunc(GL_ONE,GL_ONE);
- // Draw the scene objects.
- for(int i = 0; i < GraphicsSystemNS::g_GraphicsGL->lights.size(); ++i)
- {
- //update light params for current light
- if(GraphicsSystemNS::g_GraphicsGL->lights[i]->render == false)
- continue;;
- GraphicsSystemNS::g_GraphicsGL->UpdateLightParams(scene.shaderDEFFEREDFINAL,i);
- CHECKERROR;
- //GLuint glDefferedArr[] = {GL_COLOR_ATTACHMENT0_EXT};
- //glDrawBuffers(1,glDefferedArr); // color attach 0
- GraphicsSystemNS::g_GraphicsGL->DrawFullScreenQuad(scene.shaderDEFFEREDFINAL);
- CHECKERROR;
- }
- CHECKERROR;
- glDisable(GL_BLEND);
- glEnable(GL_DEPTH_TEST);
- // TURN OFF GL BLENDING
- // Done with shader program
- //GraphicsSystemNS::g_GraphicsGL->fbo_finalTest.Unbind();
- CHECKERROR;
- scene.shaderDEFFEREDFINAL.Unuse();
- CHECKERROR;
- ///////////////////////////////////////////////////////////////////
- // Final pass: Draw the scene normally after making the output of
- // shaderREFL available to the shaderFINAL program.
- ///////////////////////////////////////////////////////////////////
- program = scene.shaderFINAL.program;
- // Set the viewport, and clear the screen
- //glViewport(0,0,scene.width, scene.height);
- glClearColor(0.5,0.5, 0.5, 1.0);
- glClear(GL_DEPTH_BUFFER_BIT);
- // Use final pass shader
- scene.shaderFINAL.Use();
- GraphicsSystemNS::g_GraphicsGL->DrawPosBuffer(scene.shaderFINAL);
- GraphicsSystemNS::g_GraphicsGL->DrawNormalBuffer(scene.shaderFINAL);
- GraphicsSystemNS::g_GraphicsGL->DrawDiffuseBuffer(scene.shaderFINAL);
- GraphicsSystemNS::g_GraphicsGL->DrawShadowMap(scene.shaderFINAL,scene.fboSHADOW);
- GraphicsSystemNS::g_GraphicsGL->DrawVolumeLightBuffer(scene.shaderFINAL);
- //GraphicsSystemNS::g_GraphicsGL->DrawDefferedFinalSceneTEST(scene.shaderFINAL);
- // GraphicsSystemNS::g_GraphicsGL->DrawFullScreenQuad(scene.shaderFINAL);
- CHECKERROR;
- // Done with shader program
- scene.shaderFINAL.Unuse();
- CHECKERROR;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement