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);
}
Exemple #3
0
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();
}
Exemple #4
0
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);
    }
}