作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的地形中的水有问题,目前只是一个透明蓝色的四边形。
如您所见,它非常简单 - 一个代表水的扁平透明四边形。
对于那些看不到 GIF 或需要 external link 的人(或者无法理解发生了什么),水周围的地形出现故障。如果你观察足够靠近水面的地方,你会看到水面上方/下方的地形出现故障。
这是我准备 3D View 的代码:
static void ready3D()
{
glViewport(0, 0, Display.getWidth(),Display.getHeight());
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
GLU.gluPerspective(45, (float) Display.getWidth()/Display.getHeight(), 50f, 500f);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glDepthFunc(GL_LEQUAL);
glEnable(GL_DEPTH_TEST);
}
有谁知道问题是什么,以及如何提高深度缓冲区的精度(假设深度缓冲区是问题所在)?
最佳答案
很难从 GIF 中看出,但我收集到的是,您正在经历 Z-Fighting 的实例。 .
有几种对于处理 Z-Fighting 往往最有效的解决方案:
我还看到过在处理某些对象时尝试禁用深度测试的解决方案,但这些解决方案几乎从来都不是一个好的通用解决方案。
关于java - 地形在水中闪烁|深度缓冲区精度问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32952892/
我是一名优秀的程序员,十分优秀!