【问题标题】:3D model not loading correctly in Scenekit3D 模型无法在 Scenekit 中正确加载
【发布时间】:2018-11-05 16:48:07
【问题描述】:

因此,我购买了汽车的 3D 模型以显示在我的 ARKIT 应用程序中。该文件夹包含不同的模型格式和单个图像。

我将 .dae 文件拖放到我的项目中。这是文件结构。

但是,当添加到场景中时,轴将完全关闭并且无法正确加载。它没有加载带有纹理的完整模型,并且会在我上方加载。

参见示例:

然后我决定在 Blender 中加载 .Blender 文件并再次导出为 colada .dae 文件。

这是添加到我的项目时的结果。

当在现实世界中加载它时,我站的地方会出现半辆汽车,规模大得离谱。

我已经使用单独的模型尝试了该项目,并且效果很好。有谁知道如何使用 3D 模型在我的应用程序中正确加载?

【问题讨论】:

    标签: ios scenekit blender arkit collada


    【解决方案1】:

    我在缩放已购买的模型时遇到了一些问题。您不应该发布链接,但它太大而无法粘贴 - 我按照本指南缩小模型并在导出前将它们旋转到搅拌机中的适当位置。

    https://jibransyed.wordpress.com/2014/06/05/how-to-correct-scale-and-rotation-of-static-blender-models-for-unity/

    在大多数模型上,我使用它来加载:

    func loadCollada(sceneName: String, objName: String) -> SCNNode
        {
            let vScene = SCNScene(named: sceneName)!
            let gObject = vScene.rootNode.childNode(withName: objName, 
     recursively: true)!
            return gObject
          }
    

    在一些较大的型号上,我必须这样做:

    func collada2SCNNode(filepath: String) -> SCNNode
    {
        let returnNode = SCNNode()
        let scene = SCNScene(named: filepath)
        for vNode in (scene?.rootNode.childNodes)!
        {
            returnNode.addChildNode(vNode)
        }
        return returnNode
    }
    

    然后设置 Y UP: scntool --convert fighter0.dae --format c3d --output out.dae --force-y-up --force-interleaved --look-for-pvrtc-image

    【讨论】:

      猜你喜欢
      • 2018-03-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-23
      • 1970-01-01
      • 2017-10-13
      • 2016-02-29
      • 2018-05-11
      相关资源
      最近更新 更多