2017-09-11 35 views
1

我正在嘗試在ARKit中將對象創建與 SceneKit和Metal集成。有些對象可以用SeneKit和Metal與其他人輕鬆創建,所以我希望能夠並排使用這兩個對象。ARKit SceneKit金屬集成

例如,使用sceneKit模板創建一個ArKit項目,通過SceneKit節點將一艘太空船作爲演示。另一方面,使用Metal模板在ARKit中使用錨點創建一個多維數據集。

我該如何在同一個項目中使用兩者?例如,通過Metal和具有SceneKit的太空船創建一個立方體。

又如,存在我想包裝作爲一個對象或層它在SceneKit的物體的頂部的MTKView,我也有我與PBR在SceneKit創建其它的目的,我希望有這些並排在ARKit中。如果可能的話。

也許用這個? : https://developer.apple.com/documentation/scenekit/scnprogram

我認爲,如果可能的話,對於不斷髮展的ARKit社區將會非常有用。

謝謝!

+0

請問您是否可以詳細說明「我想包裝爲一個對象或將其放置在SceneKit中的某個對象的頂層上的MTKView」是什麼意思? – mnuages

+0

感謝@orangenkopf,所以你說現在有辦法了,在金屬kit.org的Marius看看這篇文章:http://metalkit.org/2017/07/29/using-arkit-with-metal.html –

回答

3

你應該能夠在同一時間使用SceneKit和金屬含量在場景 - 你可以有機會獲得渲染器使用SCNSceneRendererDelegate對於這一點,它的currentRenderCommandEncoder財產(https://developer.apple.com/documentation/scenekit/scnscenerendererdelegate):

  • 渲染(_:willRenderScene:atTime :) - 對之前SceneKit的
  • 渲染器金屬含量(_:didRenderScene:atTime :) - 渲染金屬含量SceneKit的

或者使用SCNNodeRendererDelegate後更換節點與金屬含量的內容(https://developer.apple.com/documentation/scenekit/scnnoderendererdelegate):

  • renderNode(_:渲染:參數:)
0

我該如何在同一個項目中使用兩者?

你必須選擇你想用Metal或SceneKit構建你的應用程序,它們都有起伏。 我認爲你可以採取兩種方法:

  • 使用SceneKit。由於SceneKit使用Metal,因此可以增強和更改着色器或程序。 Maybe start reading the documentation關於在SceneKit中使用金屬。也許你可以在Metal中做你想做的事情,同時儘可能使用SceneKits抽象。

  • 使用金屬。如果在SceneKit中使用Metal作爲蘋果公司的計劃是不夠的,則必須在Metal中構建所有內容。 要加載複雜模型,您可以使用Apples ModelIO將3D內容加載到金屬中。

+0

去做我想做的事情?基本上我有一個MTKView,我想將它作爲一個對象包裝或將其放置在SceneKit中的一個對象的頂部,而且我還有其他一些對象,我使用SceneKit中的PBR創建,因此我希望將它們並排放置在ARKit中。 不確定這是否可能。 –