2012-12-02 39 views
1

基本上我有一个渲染功能,绘制使用纹理一个矩形:OpenGL的纹理去太暗

glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); 
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); 

glShadeModel(GL_SMOOTH); 

glEnable(GL_TEXTURE_2D); 
glShadeModel(GL_SMOOTH); 
glEnable(GL_DEPTH_TEST); 
glDepthFunc(GL_LEQUAL);  
glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST); 

glBindTexture(GL_TEXTURE_2D, texture[0]); 
glBegin(GL_QUADS); 
{               
    glTexCoord2f(0, 0); 
    glVertex3f(points[0]->x, points[0]->y, 0); 
    glTexCoord2f(1, 0); 
    glVertex3f(points[1]->x, points[1]->y, 0); 
    glTexCoord2f(1, 1); 
    glVertex3f(points[2]->x, points[2]->y, 0); 
    glTexCoord2f(0, 1); 
    glVertex3f(points[3]->x, points[3]->y, 0); 
}       
glEnd();           
glDisable(GL_TEXTURE_2D); 

它运行后,我可以看到的纹理图像,但它是太黑了。另外,在一开始,我可以看到正常的颜色只有几分之一秒。

有谁知道如何解决它?

+0

我们需要看你的照明设置代码,它可能是错误的。 – Kromster

+1

@KromStern,我没有灯。 – kaspersky

回答

3

经过搜索,我想通了,我需要的颜色设置为白色:

glColor3f(1.0f, 1.0f, 1.0f); 

插入开头。

+7

或者,您可以调用'glTexEnvi(GL_TEXTURE_ENV,GL_TEXTURE_ENV_MODE,GL_REPLACE)'。 – JWWalker