我在OpenGL中渲染3d模型时遇到问题。我能够渲染它,但是当它发生时,三角形看起来就像是在争夺它们。我不确定为什么会发生这种情况。 这是我正在谈论的视频:Jittery Triangles.我在这个视频中使用了立即模式,但它使用VBO做了同样的事情。
*编辑:谢谢蒂姆!我出于某种原因将近平面设置为0.00001并将其更改为0.1以解决问题。
答案 0 :(得分:3)
这称为z-fighting,它发生在z缓冲区中精度丢失时。通常的原因是:
我会说#3是导致问题的最可能原因。你总是要留意浮点错误!
#4是另一个可能的问题,但它通常只会在距离原点很远的地方进行相机变换时出现,并且可以通过使用双精度矩阵并在将它们传递给gpu之前将它们转换为浮点数来解决。
这是一篇关于projection matrix Z-buffer math的好文章。