2017-07-19 187 views
1

我目前正試圖以下來源相結合:ARKit,SceneKit,SCNPhysicsVehicle:如何正確縮放DAE模型?

蘋果SceneKit車輛演示 https://developer.apple.com/library/content/samplecode/SceneKitVehicle/Introduction/Intro.html

RESP。其斯威夫特版本 https://github.com/leonmak/scenekit-car-swift3

ARKit舉例 https://blog.markdaws.net/apple-arkit-by-example-ef1c8578fb59

RESP。它的Swift版本 https://github.com/OxyFlax/arkit-by-example

每個項目在其自己的作品像一個魅力(雖然我改變了車輛演示,使汽車可以通過屏幕上的按鈕來控制)。

現在,當我嘗試將兩個項目結合起來創建增強現實賽車遊戲時,我遇到了有關汽車.dae模型大小的問題:它太大了。

我可以使用(底盤)節點.scale屬性來縮放模型,但只要添加SCNPhysicsVehicle屬性和行爲,車就會重置(?)到其原始大小。我嘗試在Xcode中擴展模型(打開dae文件,更改比例),但邊界框保持不變 - 這告訴我重新縮放無法正常工作。

任何提示?

回答

2

我喜歡做的是使用攪拌機或其他3D建模程序來調整你的DAE模型的工作米。 ARKit中的所有內容都基於米,所以通過堅持相同的度量標準,您可以讓所有模型一起良好地運行,而無需猜測比例因子需要達到什麼要求。

0

我不知道如何直接在Xcode中修復模型。但是,您可以在攪拌機中進行修復。首先將對象導入攪拌器。選擇對象並觀察它的尺寸。將對象縮放到所需的尺寸,然後按住Ctrl + A並選擇縮放。或者,從對象菜單中,您可以選擇應用 - >縮放。現在你可以導出你的模型與正確的大小。

2

1)您可以直接通過art.scnassets縮放dae模型。

art.scnassets -> car.dae -> node inspector -> transforms -> scale the object

2)可以通過SCNAction

let scene = SCNScene(named: "art.scnassets/cup.dae")! 
let node = scene.rootNode.childNode(withName: "cup", recursively: true)! 
let action = SCNAction.scale(by: sender.scale, duration: 1.0) 
node.runAction(action) 
比例3dmodel