球体边缘的伪影 - 照明不正确?

时间:2012-08-31 11:08:34

标签: linux opengl nvidia lighting

我使用glutSolidSphere渲染了许多领域。边界处有一些线条,这些线条没有以正确的颜色渲染:

lines at the boundary

如果我没记错,我对AMD卡没有这个问题,这是nVidia的一个新问题。

相关的opengl设置(不确定我得到了所有这些设置,它们分散在代码中)是:

// set 2 lights, both having specular, ambient and diffuse components.
// and then:
glDisable(GL_CULL_FACE);
glLightModeli(GL_LIGHT_MODEL_LOCAL_VIEWER,1);
glLightModeli(GL_LIGHT_MODEL_TWO_SIDE,1);
glColorMaterial(GL_FRONT_AND_BACK,GL_AMBIENT_AND_DIFFUSE);
glEnable(GL_COLOR_MATERIAL);
glEnable(GL_BLEND);
glEnable(GL_LINE_SMOOTH);
glEnable(GL_POLYGON_SMOOTH);
glShadeModel(GL_SMOOTH);
glEnable(GL_RESCALE_NORMAL);

1 个答案:

答案 0 :(得分:1)

如果关闭GL_LINE_SMOOTH和GL_POLYGON_SMOOTH,是否还会出现问题?

你在混合模式是什么?你是从最远的地方绘制球体 - >最接近正确的混合(不是你可以保证球体的三角形将以正确的顺序渲染)。

如果这是问题并使用FSAA,我建议放弃多边形平滑。