首页 文章

ARKit SceneKit金属集成

提问于
浏览
1

我试图将ARKit中的对象创建与SceneKit和Metal集成 . 有些东西我可以用SeneKit轻松创建,有些用Metal创建,所以我希望能够并排使用 .

例如,使用sceneKit模板创建一个ArKit项目会通过SceneKit节点将太空船作为演示放置 . 另一方面,使用Metal模板在ARKit中创建一个立方体,并使用锚点进行挖掘 .

我怎样才能在同一个项目中使用它们?例如,通过Metal和SpaceKit创建一个多维数据集 .

另一个例子,有一个MTKView,我希望将它作为一个对象或层叠在SceneKit中的一个对象之上,我还有其他对象,我在SceneKit中使用PBR创建,我希望将它们并排放在一起ARKit . 如果可能的话 .

也许这个? :https://developer.apple.com/documentation/scenekit/scnprogram

我认为,如果可能,这对于不断发展的ARKit社区非常有用 .

谢谢!

2 回答

  • 4

    您应该能够同时在场景中使用SceneKit和Metal内容 - 您可以通过访问渲染器及其currentRenderCommandEncoder属性(https://developer.apple.com/documentation/scenekit/scnscenerendererdelegate)来使用 SCNSceneRendererDelegate

    • renderer(_:willRenderScene:atTime:) - 用于在SceneKit之前渲染金属内容

    • renderer(_:didRenderScene:atTime:) - 用于在SceneKit之后渲染金属内容

    或使用 SCNNodeRendererDelegate 用金属内容(https://developer.apple.com/documentation/scenekit/scnnoderendererdelegate)替换节点的内容:

    • renderNode(_:renderer:arguments:)
  • 0

    我如何在同一个项目中同时使用它们?

    您必须选择使用Metal或SceneKit构建应用程序,它们都有起伏 . 我认为你可以采取两种方法:

    • 使用SceneKit . 由于SceneKit使用Metal,您可以增强和更改着色器或程序 . Maybe start reading the documentation关于在SceneKit中使用Metal . 也许你可以在Metal中做你想做的事情,同时尽可能使用SceneKits抽象 .

    • 使用金属 . 如果在SceneKit中使用Metal作为Apple的意图,那么你必须在Metal中构建所有内容 . 要加载复杂模型,您可以使用Apples ModelIO将3D内容加载到金属中 .

相关问题