我创建了一个应用DTED位置数据并创建基本轮廓网格的应用程序。通过深度测试,这可以正常工作,我只是简单地渲染地形。
我遇到的问题是,当我在地形表面上放置物体时,我会遇到很多z-fighting,导致盒子/球体中的视觉腐败。除了修改nearclip / farclip之外,还有什么方法可以缓解这种情况吗?
我尝试使用.1的近距离和5000的远程按钮,我仍然遭受了很多闪烁。请记住,我的地形可能是100k单位宽,所以我想保持我的挡板高度足以一次查看整个地形。我已经完成了与FX中深度缓冲区相关的所有问题,并且除了近/远程设置之外还没有找到任何有助于缓解它的问题。
答案 0 :(得分:1)
我遇到了与JavaFX相同的问题。你的解决方案对我有用,但我很好奇为什么会这样,特别是因为我找到了一个有同样问题的人,但在Autodesk Maya。
这背后的原因当然是深度缓冲精度。当zFar平面移开或zNear平面靠近时,会丢失太多精度。这比zFar平面更多地影响zNear平面。
一个很好的解释是关于khronos的OpenGL wiki:Depth Buffer Precision
TL; DR:始终尽可能远地移动zNear平面,尽可能靠近zFar平面。
答案 1 :(得分:0)
经过大量的修补后,我发现调整我的挡风板从未帮助减少闪烁。但是,如果我将近距离设置为1,我可以使用500k的远程按钮,几乎没有闪烁。