UE4 中的实时光线追踪与去噪技术解析
1. 光线追踪基础操作
在光线追踪的流程中,首先需要处理着色器绑定表(Shader Binding Table)。我们会在一个 GPU 可见且 CPU 可写的缓冲区(上传堆)中从头开始编写整个着色器绑定表,然后将该缓冲区中的数据复制到 GPU 本地的对应缓冲区。为了防止覆盖 N 帧之前使用的着色器绑定表的 CPU 或 GPU 副本,采用了基于栅栏的同步机制。
2. 引擎图元的几何注册
为了构建加速结构,需要为 UE4 中的各种图元创建 RHI 级别的 rtGeometry 和 rtObjects。对于大多数图元,可以在与顶点和索引缓冲区几何相同的作用域中创建 rtGeometry。但对于一些特殊图元,如粒子系统、景观(地形)图元和骨骼网格,需要特殊处理。
- 骨骼网格 :每个骨骼网格实例都需要自己独立的 BLAS,因此每个骨骼网格实例都需要一个单独的 rtGeometry,且不能像静态网格那样进行实例化或共享。
- 动态几何 :对级联粒子系统和景观(地形)系统等动态几何也进行了实验性支持。粒子系统可以使用粒子网格(每个粒子指向静态网格的 rtGeometry)或程序生成的三角形几何(如精灵或丝带)。由于时间有限,这种实验性支持仅限于 CPU 模拟的粒子系统。对于景观系统,对地形块、 foliage 几何和样条网格(通过沿 B 样条曲线插值三角形网格生成的网格)有一些实验性支持,部分依赖现有的 CPU 代码生成顶点几何。
3. 更新场景的光线追踪表示
UE4 渲染器在每一帧都会执行渲染循环,我们对该循
UE4实时光追与去噪技术详解
超级会员免费看
订阅专栏 解锁全文
4553

被折叠的 条评论
为什么被折叠?



