金属光线追踪——SceneKit 或 RealityKit

Metal Ray Tracing – SceneKit or RealityKit

下面的 WWDC21 演讲展示了如何 "Enhance your app with Metal ray tracing"

如何将金属光线追踪添加到 SceneKit 或 RealityKit 应用程序?

任何基本示例或参考代码将不胜感激!

我花了一些时间为您和对此主题感兴趣的任何其他人准备示例应用程序。这些应用程序是纯粹的 Swift Metal,目前设计为 运行 在 iOS 平台上。 (个人推荐速度快的设备)

在这里您可以找到第一个“简单”的默认 Apple RayTracer:

https://github.com/philvanza/SceneKit-RayTracing

这里是同一个应用程序,带有一个额外的、更复杂的 RayTracer,它支持 BSDF(双向散射分布函数),它允许您进行 RayTrace i.Ex。透明玻璃:

https://github.com/philvanza/SceneKit-RayTracing-Advanced

基本上您需要以下内容才能实现光线追踪:

  • 从你想要RayTrace的SceneKit节点中提取几何数据
  • 构建三角形加速结构(金属专用)
  • 准备要在 GPU 上执行的缓冲区
  • 将全部内容发送到 RayTracer
  • 随时间累积输出图像

让 RayTracer 运行 的时间越长,结果就越好。

在这里添加代码会太多,所以我准备了这个存储库。关于您对 RayTracers 的任何看法,请随时给我留言。

玩得开心!