我正在使用lwjgl处理一个3d引擎,我正在尝试渲染一个简单的立方体,但只有面向外的面部正在渲染,就像面部以错误的方式缠绕,并且没有将面部缠绕在另一面上方法或使用glFrontFace
改变opengl的缠绕方向可以解决问题。
有谁知道造成这种情况的原因是什么?
Here's a screenshot of the cube
我的投影矩阵是:
(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
答案 0 :(得分:0)
我找到了解决问题的方法。而不是深度缓冲区在0到1的范围内,它在0到-1的范围内以某种方式(我不知道如何)。使用GL_LEQUAL
作为深度函数会导致渲染更多的面而不是更接近的面,并且使用GL_GEQUAL
导致无法渲染任何内容,因为深度为0的背景始终大于场景中的任何内容。我使用GL_GEQUAL
修正了问题,并使用GL11.glClearDepth();