在SceneKit中为ARKit App加载SketchUp模型

joh*_*doe 2 ios scenekit arkit

我有一个scene.scn文件,其中包含car.dae模型.这是图像:

在此输入图像描述

我有以下代码加载场景.

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
    }
Run Code Online (Sandbox Code Playgroud)

我没有看到车在装载现场.有任何想法吗?

Pie*_*e F 5

从SketchUp Make 2017(我使用简单模板 -绘图仪表)到Xcode 9.0 导出3D模型时,以下工作流程为我生成可重复的结果:

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

  2. 在Xcode中,在资产目录设置,确保始终使用的Y轴向上检查.这个设置很麻烦; 虽然它在运行时工作,但场景编辑器不会考虑它.

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

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

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

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

  5. .dae文件嵌入场景并修复轴:

    一个.打开.scn文件.

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

    C.在" 节点检查器 "的" 变换"下,选择" 编辑空间:本地".

    d.将本地位置设置为x:0,y:0,z:0(或任何需要的位置).

    即 将局部欧拉角设置为x:-90,y:0,z:0.现在,对象按预期方向定向,例如,当在场景编辑器底部的工具栏中选择了视角Front时,将显示其正面.

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

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