金属光线追踪-SceneKit还是RealityKit?

4
以下是WWDC21演讲,展示如何通过Metal光线追踪"增强您的应用程序"
我如何将Metal光线追踪添加到SceneKit或RealityKit应用程序中?
非常感谢任何基本示例或参考代码!
1个回答

13

我花了一些时间为你和其他对这个话题感兴趣的人准备了示例应用程序。这些应用程序是使用Metal编写的纯Swift,目前设计运行在iOS平台上。(我个人建议使用快速设备)

在这里,你可以找到第一个“简单”的默认苹果光线追踪器:

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

这里有一个相同的应用程序,配备了一个更复杂的光线追踪器,支持BSDF(双向散射分布函数),使您可以对透明玻璃等进行光线追踪:

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

基本上,您需要以下内容才能实现光线追踪:
  • 从要进行光线追踪的SceneKit节点中提取几何数据
  • 构建三角形加速结构(Metal特定)
  • 准备在GPU上执行的缓冲区
  • 将整个内容发送到光线追踪器
  • 随着时间的推移累积输出图像

您让光线追踪器运行的时间越长,结果就会越好。

要添加太多代码,所以我准备了这些存储库。随意留下评论,告诉我您对光线追踪器的看法。

玩得开心!

Exaple Image from the Simple RayTracer

Exaple Image from the Advanced RayTracer


1
非常感谢分享,Zay!下周会深入研究,并在 Github 上留下评论。干杯! - Mane Manero
1
不客气! - ZAY
1
偶然从另一个答案中发现了这个,但我只为了这份努力而点赞。这绝对是太棒了! - George

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接