OpenGL 纹理太暗

Posted

技术标签:

【中文标题】OpenGL 纹理太暗【英文标题】:OpenGl texture goes too dark 【发布时间】:2012-12-02 14:35:01 【问题描述】:

基本上我有一个使用纹理绘制矩形的渲染函数:

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);

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

有人知道怎么解决吗?

【问题讨论】:

我们需要查看您的照明设置代码,这可能是错误的。 @KromStern,我没有灯。 【参考方案1】:

经过更多搜索,我发现,我需要将颜色设置为白色:

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

在开头插入。

【讨论】:

或者,您可以致电glTexEnvi( GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE )

以上是关于OpenGL 纹理太暗的主要内容,如果未能解决你的问题,请参考以下文章

OpenGL-纹理(下)

opengl使用bmp纹理映射画不出东西

Windows 上的 OpenCL/OpenGL 纹理互操作:调整 OpenGL 纹理的大小

opengl 把纹理映射到立方体的六个面。

OpenGL-载入纹理

如何将 OpenGL 纹理转换为 CUDA 纹理?