0

我有一个简单的 Opengl 程序,我通过调用 glVertex3f 和模式 GL_LINE_LOOP 来绘制三角形

这是我得到的:

在此处输入图像描述

您可以在正方形中看到,我的模型底部的一些三角形(蓝色)显然绘制在前景的上方。

你知道是什么原因造成的吗?有没有办法避免它?

4

2 回答 2

1

gluPerspective(60., 宽度/高度,0,1000);

near-z 不能为 0 或更小。它必须是大于零的正数。

于 2013-05-05T01:06:39.303 回答
0

近 Z 不能为零。参见gluPerspective 的 opengl.org 文档

相关部分:

深度缓冲区精度受为 zNear 和 zFar 指定的值影响。zFar 与 zNear 的比率越大,深度缓冲区在区分彼此靠近的表面方面的效果就越差。

如果r = zFar / zNear,则会丢失大约log2(r)位的深度缓冲区精度。因为当 zNear 接近 0 时r接近无穷大,所以 zNear 绝不能设置为 0。

于 2013-05-05T10:55:09.337 回答