Nubis Evolved: 体素云与实时渲染 (SIGGRAPH 2023) 核心原理解读

Nubis Evolved: 体素云与实时渲染 (SIGGRAPH 2023) 核心原理解读 背景 在 SIGGRAPH 2023 的 "Advances in Real Time Rendering in Games" 环节中,Guerrilla Games 分享了他们在《地平线:西之绝境》(Horizon Forbidden West) 等游戏中使用的最新一代云层渲染技术—— Nubis Ev…


Nubis Evolved: 体素云与实时渲染 (SIGGRAPH 2023) 核心原理解读

背景

在 SIGGRAPH 2023 的 "Advances in Real-Time Rendering in Games" 环节中,Guerrilla Games 分享了他们在《地平线:西之绝境》(Horizon Forbidden West) 等游戏中使用的最新一代云层渲染技术——Nubis Evolved。 Nubis 系列一直是实时云层体积渲染(Volumetric Cloud Rendering)的业界标杆。2023 年分享的重点是体素云 (Voxel Clouds)、性能优化以及处理极度复杂的动态天气系统。

⚡ TL;DR / 快速总结

  • 技术核心:基于 Raymarching(光线步进)的体积渲染,结合复杂的 3D Noise (Perlin-Worley) 和多重散射照明模型。
  • 2023 年进阶 (Evolved)
    • Envelope Model(包络面模型):定义云层的宏观形状,而不是在整个天空中盲目做 Raymarching。
    • 自适应采样 (Adaptive Sampling):极大地提升了渲染性能,让云层可以在主机上实时运行。
    • 多重散射 (Multiscattering) 与各向异性相位函数:模拟光线在云层内部的多次弹射,呈现真实的透光感和边缘高光(银边效果)。

核心技术与渲染流程拆解

1. Envelope Model 与云层塑形

早期的 Nubis 主要依赖 2D 天气图来控制云的分布。在 Nubis Evolved 中,引入了体素化(Voxel)的思想来构建宏观的包络面(Envelope)。

  • 原理:先定义一个低频的 3D 体素网格或 SDF(符号距离场)来确定“哪里有云的大致形状”。
  • 细节注入 (Erosion):在包络面的基础上,通过采样 3D 纹理(通常是组合了 Perlin Noise 和 Worley Noise)去“侵蚀”包络面的边缘,从而产生极其细腻的云絮、云洞和边缘翻滚效果。

2. 高效的 Raymarching (光线步进)

要渲染体积云,必须从相机发射光线穿透云层,并逐步累加透明度和光照。

  • 性能痛点:全分辨率每像素步进 100 次对于实时游戏是灾难。
  • 解决方案 (Adaptive/Temporal)
    • 不在空无一物的天空区域进行昂贵的步进。
    • 利用前一帧的数据(TAA / Temporal 累加),降低当前帧需要发射的光线数量和步进次数。

3. 光照模型:让云看起来像云

Nubis Evolved 极大地改善了光照计算,这是它在 SIGGRAPH 上最引人瞩目的部分:

  • 多重散射积分近似:真实云层内部的光线会弹射成百上千次。Nubis 通过预计算或近似积分公式(比如 Octaves of scattering),用极低的计算开销模拟出光线在云层深处透出的温暖柔和感。
  • 各向异性相位函数 (Phase Function):云层中的水滴对光线的散射是不均匀的(向前散射极强)。Guerrilla 使用了混合的 Henyey-Greenstein (HG) 相位函数,完美呈现了太阳就在云朵后方时,云边缘出现的夺目亮边。

学习资源与落地

  • 官方 PPT/PDF:可以在 Guerrilla Games 官网阅读 NubisEvolved-NoVideos.pdf 获取原始图表。
  • 开源复刻:社区已有开发者(如 Three.js / WebGL / Unity 环境下)复刻 Envelope Model 机制,可以搜索相关的着色器实现作为学习参考。