金属光线追踪 – SceneKit 或 RealityKit

Man*_*ero 4 scenekit swift metal realitykit

下面的 WWDC21 演讲展示了如何“使用 Metal 光线追踪增强您的应用程序”

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

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

ZAY*_*ZAY 15

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

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

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

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

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

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

  • 从您想要进行 RayTrace 的 SceneKit 节点中提取几何数据
  • 构建三角形加速结构(Metal 专用)
  • 准备缓冲区以在 GPU 上执行
  • 将整个内容发送到 RayTracer
  • 随着时间的推移累积输出图像

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

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

玩得开心!

简单 RayTracer 的示例图像

来自高级 RayTracer 的示例图像