2017-07-19 183 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