我有一个简单的 Opengl 程序,我通过调用 glVertex3f 和模式 GL_LINE_LOOP 来绘制三角形
这是我得到的:
您可以在正方形中看到,我的模型底部的一些三角形(蓝色)显然绘制在前景的上方。
你知道是什么原因造成的吗?有没有办法避免它?
gluPerspective(60., 宽度/高度,0,1000);
near-z 不能为 0 或更小。它必须是大于零的正数。
近 Z 不能为零。参见gluPerspective 的 opengl.org 文档。
相关部分:
深度缓冲区精度受为 zNear 和 zFar 指定的值影响。zFar 与 zNear 的比率越大,深度缓冲区在区分彼此靠近的表面方面的效果就越差。
如果r = zFar / zNear,则会丢失大约log2(r)位的深度缓冲区精度。因为当 zNear 接近 0 时r接近无穷大,所以 zNear 绝不能设置为 0。