打开GL背面影响正面照明的渲染

时间:2014-07-05 17:20:34

标签: c++ opengl lighting

我在opengl中使用光照渲染模型,但每当模型的面重叠(即一个在另一个后面)时,我会得到奇怪的效果。我不认为它与法线有任何关系,因为我尝试使用GLUTsolidsphere例程并且出现同样的问题。我相信这与我的照明设置有关。这是我的灯光初始化:

glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA);
glLineWidth(3);

glEnable(GL_LIGHTING);
glEnable(GL_LIGHT0);
glEnable(GL_COLOR_MATERIAL);

GLfloat light_position[] = {15,5,15,0};
glLightfv(GL_LIGHT0,GL_POSITION,light_position);

//glEnable(GL_CULL_FACE);
//glCullFace(GL_BACK);

注释掉的部分是我尝试过的东西。我也尝试删除GL_BLEND,但这并没有什么区别(我认为它与alphas没有任何关系)。

我在网上找了一个没有运气的解决方案。我想这可能是一件简单的事,感谢任何回应:)

1 个答案:

答案 0 :(得分:0)

正如Reto Koradi指出的那样,问题是我没有启用深度测试。