0

我正在使用 lwjgl 开发 3d 引擎,我正在尝试渲染一个简单的立方体,但只有背向的面正在渲染,就好像这些面被错误地缠绕了一样,并且既不会以其他方式缠绕面也不会改变opengl 的缠绕方向使用glFrontFace解决了这个问题。

有谁知道这可能是什么原因造成的?

这是立方体的屏幕截图

我的投影矩阵是:

(1/tan(fov*0.00872))/aspect  0                   0                0
0                            1/tan(fov*0.00872)  0                0 
0                            0                   -far/(far-near)  (far*near)/(far-near)
0                            0                   1                0
4

1 回答 1

0

我找到了解决我的问题的方法。深度缓冲区不是在 0 到 1 的范围内,而是以某种方式(我不知道如何)在 0 到 -1 的范围内。使用GL_LEQUALas depth 函数会导致渲染更远的面而不是更近的面,并且 usingGL_GEQUAL不会渲染任何内容,因为深度为 0 的背景总是大于场景中的任何内容。我通过使用GL_GEQUAL并将默认背景深度设置为 -1解决了这个问题GL11.glClearDepth();

于 2013-11-15T18:40:28.137 回答