open gl深度缓冲问题

时间:2013-05-04 22:45:11

标签: c opengl

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

这是我得到的:

enter image description here

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

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

2 个答案:

答案 0 :(得分:1)

  

gluPerspective(60。,Width / Height,0,1000);

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

答案 1 :(得分:0)

近Z不能为零。请参阅the opengl.org documentation for gluPerspective

相关部分:

  

深度缓冲区精度受zNear指定的值的影响   和zFar。 zFar与zNear的比率越大,越少   有效的深度缓冲区将区分表面   彼此靠近。

     

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