void DeferredShader::drawLighting(Scene & scene, Camera & camera) { glEnable(GL_BLEND); for (unsigned int i = 0; i < scene.getLightVector().size(); ++i) { for(unsigned int j = 0; j < 5; ++j) { } glm::vec4 lightPos(scene.getLightVector()[i]->getPosition(),1.0); glm::vec4 viewPos(camera.getEyePoint(),1.0); lightPos = (lightPos * camera.getModelViewMatrix()) * camera.getProjectionMatrix(); viewPos = (viewPos * camera.getModelViewMatrix()) * camera.getProjectionMatrix(); shaderManager.setCgParam(lightPos,"lightPos",FRAGMENT); shaderManager.setCgParam(viewPos,"viewPos",FRAGMENT); shaderManager.setCgParam(scene.getLightVector()[i]->getColor(),"lightColor",FRAGMENT); shaderManager.setCgParam(scene.getLightVector()[i]->getRadius(),"radius",FRAGMENT); drawRec(camera); } glDisable(GL_BLEND); }
void DeferredShader::debugStage(Camera & camera) { stateManager.setRenderingStage(StateManager::DEBUG_STAGE); glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0); // Debug checkGLErrors("Bind framebuffer"); glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glDisable(GL_CULL_FACE); // Disable Cull Face glDisable(GL_DEPTH_TEST); // Disable Z-Buffer shaderManager.bindStageShader(); if(stateManager.getDebugState() == StateManager::DIFFUSE_BUFFER) { shaderManager.bindCGTexture(gbDiffuse,GB_DEBUG); } else if(stateManager.getDebugState() == StateManager::NORMAL_BUFFER) { shaderManager.bindCGTexture(gbNormal,GB_DEBUG); } else if(stateManager.getDebugState() == StateManager::SPECULAR_BUFFER) { shaderManager.bindCGTexture(gbSpecular,GB_DEBUG); } else if(stateManager.getDebugState() == StateManager::DEPTH_BUFFER) { shaderManager.bindCGTexture(gbDepth,GB_DEBUG); } drawRec(camera); }
void GLWidget::paintGL() { glClearColor(0.847f, 0.749f, 0.847f, 0.0f); //background color glClear(GL_COLOR_BUFFER_BIT); glLoadIdentity(); //Background glColor3f(0.502f, 0.000f, 0.502f); drawCircle(200); glColor3f(0.0f, 0.0f, 0.0f); glScaled(0.8,0.8,1); drawCircle(200); glColor3f(0.980f, 0.502f, 0.447f); drawNumber(); //Second Hand glLoadIdentity(); glColor3f(0.980f, 0.502f, 0.447f); glRotated(-6*sec,0,0,1); drawRec(160,1); //Minute Hand glLoadIdentity(); glColor3f(0.980f, 0.502f, 0.447f); glRotated(-6*min,0,0,1); drawRec(170,5); //Hour Hand glLoadIdentity(); glColor3f(0.980f, 0.502f, 0.447f); glRotated(-30*hour-0.5*min,0,0,1); drawRec(130,8); //Center dot glLoadIdentity(); glColor3f(0.502f, 0.000f, 0.502f); drawCircle(10); // glPushMatrix(); // glPopMatrix(); }
void GLWidget::drawNumber(){ for(int deg = 1;deg<61;deg++){ glLoadIdentity(); glRotated(deg*6,0,0,1); glTranslated(0,165,0); drawRec(10,1); } for(int deg = 1;deg<13;deg++){ glLoadIdentity(); glRotated(deg*30,0,0,1); glTranslated(0,160,0); if(deg%3==0) drawRec(30,7); drawRec(10,3); } }