gpt4 book ai didi

ios - 在 SceneKit 中为 ARKit 应用加载 SketchUp 模型

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:11:18 26 4
gpt4 key购买 nike

我有一个包含 car.dae 模型的 scene.scn 文件。这是图片:

enter image description here

我有以下代码来加载场景。

override func viewDidLoad() {
super.viewDidLoad()

// Set the view's delegate
sceneView.delegate = self

// Show statistics such as fps and timing information
sceneView.showsStatistics = true

// Create a new scene

let scene = SCNScene(named: "art.scnassets/scene.scn")!

// Set the scene to the view
sceneView.scene = scene
}

我没有在场景中看到正在装载的汽车。有任何想法吗?

最佳答案

将 3D 模型从 SketchUp Make 2017(我使用 Simple Template - Meters 进行绘图)导出到 Xcode 9.0 时,以下工作流程为我生成了可重复的结果:

  1. 在 Xcode 中,创建一个 SceneKit Assets 目录:创建一个 Assets 目录并在保存前将扩展名更改为 .scnassets

  2. 在 Xcode 的 Assets 目录设置中,确保始终使用 Y-up 轴被选中。这个设置有问题;虽然它在运行时有效,但场景编辑器不会考虑它。

  3. 在 SketchUp 中,使用导出 3D 模型... 导出模型并选择文件格式 COLLADA 文件 (*.dae)。将其导出到 Assets 目录(或其子文件夹)的 .scnassets 文件夹中。

    提示:如果您导出到其他地方,请使用 Finder 复制或移动文件。不要将导出的模型拖放到 Xcode,因为它只会创建对模型的引用,并且您会在途中丢失纹理,因为它们在 .dae 文件中被引用通过相对路径。

  4. 在 Xcode 中,创建一个 SceneKit 场景文件:首先,选择项目并使用模板 SceneKit 场景文件 创建一个新文件;保存在.scnassets文件夹中;然后从您的项目中删除文件(删除引用),以便仅在 .scnassets 文件夹中引用它。

    提示您不能直接在 Assets 目录中创建.scn 文件,因为新文件 功能会创建一个空文件场景编辑器无法识别,即使您使用 .scn 扩展名重命名它也是如此。

  5. 在场景中嵌入.dae文件并固定坐标轴:

    一个。打开 .scn 文件。

    .dae 文件拖放到场景中。这将创建对模型的引用。确保选择了对模型的引用。

    Node InspectorTransforms 下,选择 Editing space:Local

    将局部位置设置为x:0y:0z:0(或任何需要的位置)。

    将局部 Euler 角设置为 x:-90y:0, z:0。现在,对象的方向符合预期,例如当在场景编辑器底部的工具栏中选择视点时,会显示它的正面。

    将局部比例设置为x:0.0254y:0.0254z:0.0254。我假设 .dae 文件导入需要以英寸为单位的尺寸。

    仍然在 Node InspectorTransforms 下,选择 Editing space:World .检查边界框的大小。我假设这里使用米作为测量单位。保存更改。

关于ios - 在 SceneKit 中为 ARKit 应用加载 SketchUp 模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44468836/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com