当CallList中的对象与近平面相交时,我得到一个闪烁......,我该怎么办?
我使用OpenGL和SDL.
是的它是双缓冲的.
听起来你正在进行z战斗.
"Z-fighting是3D渲染中的一种现象,当两个或多个基元在z缓冲区中具有相似的值时会发生这种现象,并且在共面多边形中尤为普遍.这种效果会导致伪随机像素以一个多边形的颜色呈现或者以一种非确定性的方式,随着场景的动画而变化,导致一个多边形"赢"z测试,然后是另一个,依此类推.(来自维基百科)
您可以在OpenGL FAQ中获得有关该问题的更多信息.
glPolygonOffset可能会有所帮助,但您也可以使用它来解决问题.Tom Forsyth在他的FAQ注释中有一个很好的解释:它谈到了ZBIAS,但这只是DirectX等效.