3d - 体素渲染中的奇怪效果
问题描述
我在自定义游戏引擎的体素渲染中看到了一种非常奇怪的视觉效果。我知道只用一个视频来调试这种事情是非常困难的,但我希望有人能识别出这种效果并知道是什么原因造成的。
您可以在此图像中看到效果,以及下面链接的视频。
随着从相机到几何体的距离发生变化,几何体看起来会摆动,直到相机足够近并停止。
对于上下文,引擎将世界分割成 32x32x32 块。每个块都被渲染为单个网格。通过为每个暴露的边制作一个四边形(两个三角形)来生成网格。我通过Veldrid库使用 Vulkan 进行渲染。
解决方案
我想我可能已经找到了解决办法。环顾四周后,我在这篇文章中发现了一些提到z-fighting 的信息。我将近平面距离设置为 0.05,远平面设置为 2048,这是一个非常大的距离。将近平面向前移动,将远平面向后移动有很大帮助。我可能会考虑根据正在渲染的几何图形动态设置距离。
推荐阅读
- go - BufferedWriter 在同时使用时不起作用
- php - 如何在 laravel 的闭包函数中调用 laravel 验证规则?
- batch-file - 无法替换包含运算符的字符串
- r - 使用 R 根据现有变量的顺序创建新变量
- javascript - 在 hapi.js 上添加 CSS 不起作用
- c# - 为什么数据记录被错误地读入列表
? - android - 如何在正常的改造调用中使用 RxJava?
- laravel - 如何在 Laravel 中输出数组 A 到数组 B 的值之间的差异?
- testing - 测试/TDD 私有方法
- arrays - 访问单个 JSON 数组项并动态用于博客文章