UnrealEngineSkyAtmosphere:基于EGSR 2020论文的虚幻引擎天空大气渲染技术

Unreal Engine Sky Atmosphere Rendering Technique

分支1Tags0

虚幻引擎 天空大气渲染技术

这是在 EGSR 2020 上展示的论文《一种可扩展和生产就绪的天空与大气渲染技术》所附带的项目。它可以用来比较该论文中提出的新技术与Bruneton等人以及实时路径追踪器的表现。

路径追踪器使用了一种简单但效率较低的噪声生成方法,因为我不确定能否分享之前编写的噪声代码。 这项技术用于在虚幻引擎中渲染天空和大气。

构建解决方案:

  1. 更新 Git 子模块(运行 git submodule update --init)
  2. 打开解决方案文件
  3. 确保两个项目都选择了本地可用的 Windows SDK 和平台工具集
  4. 在 Visual Studio 中,将“应用”项目的“工作目录”从 $(ProjectDir) 更改为 $(SolutionDir)
  5. 将“应用”设置为启动项目,按 F5 运行

运行时快捷键:

  • 按住 SHIFT + 鼠标可以旋转视角
  • 按住 CTRL + 鼠标可以移动太阳位置
  • 按 C 截取屏幕快照
  • 按 T 切换光线行进与路径追踪(切换到路径追踪时会禁用多次散射近似)
  • 按 F5/F9 保存/加载状态

子模块:

关于代码:

  • Eric Bruneton 的代码已经获得了他的授权,从他的2017年实现复制而来。
  • 此仓库中的代码希望那些在此基础上进一步推动技术发展的后续工作也能共享,供所有人使用。
  • 代码基于 Dx11Base 测试演示平台构建。
  • RenderSkyRayMarching.hlsl 包含了构建新技术所需不同 LUT 的光线行进器。
  • RenderSkyPathTracing.hlsl 包含基本的体积路径追踪器。它的输出与 PBRT 和 Mitsuba 对其他参与介质测试 相匹配。通过真正地按照辐射传输方程的路径积分形式对每个事件进行循环处理,它可以得到改进:目前我们仅特殊处理了参与介质和行星交点的情况。
  • 该代码只在 Windows 上使用 Visual Studio 进行过测试(没有生成构建脚本)。

感谢 Epic Games 允许发布此源代码。

代码按原样提供,不提供技术支持。 我仍欢迎任何反馈,并可以讨论,如果你通过 Twitter 联系我。

Seb

项目介绍

Unreal Engine Sky Atmosphere Rendering Technique

定制我的领域