Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/107.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何在ARKit应用程序中在运行时加载SCN或glTF模型?_Ios_Swift_Scenekit_Augmented Reality_Arkit - Fatal编程技术网

Ios 如何在ARKit应用程序中在运行时加载SCN或glTF模型?

Ios 如何在ARKit应用程序中在运行时加载SCN或glTF模型?,ios,swift,scenekit,augmented-reality,arkit,Ios,Swift,Scenekit,Augmented Reality,Arkit,运行时从iOS内部的URL加载3d模型的最佳方式是什么。我试过这个.scn和.gtlf型号导入器 我使用这个框架,我加载模型如下: let virtualObjectGLTFNode = SamMitiVirtualObject(gltfUrl: URL(string: "https://raw.githubusercontent.com/KhronosGroup/glTF-Sample- Models/master/2.0/Duck/glTF-Embedded/Duck.gl

运行时从iOS内部的URL加载3d模型的最佳方式是什么。我试过这个
.scn
.gtlf
型号导入器

我使用这个框架,我加载模型如下:

let virtualObjectGLTFNode = SamMitiVirtualObject(gltfUrl: URL(string: 
   "https://raw.githubusercontent.com/KhronosGroup/glTF-Sample- 
    Models/master/2.0/Duck/glTF-Embedded/Duck.gltf")!, allowedAlignments: 
   [.horizontal])
virtualObjectGLTFNode.name = "Duck"

virtualObjectGLTFNode.setAnimationForVirtualObjectRemoving { (node, completed) in
    SceneKitAnimator.animateWithDuration(duration: 0.35 / 2, 
                                   timingFunction: .easeIn, 
                                       animations: {
        let transform = SCNMatrix4MakeScale(0.01, 0.01, 0.01)
        node.contentNode?.transform = transform
        }, completion: completed)
    }
return virtualObjectGLTFNode
如上所述,我正在从远程服务器加载不同的url。请指导我如何从远程服务器加载三维模型。我希望以何种格式获取url。请发送任何链接,从远程服务器获取scn文件 谢谢你,再见

似乎某个功能在SamMitiAR框架中不起作用。在“放置和删除虚拟对象”部分下,显示“正在工作”

要了解如何将模型动态加载到ARKit应用程序中(当模型在编译时无法访问时),请阅读本文(抱歉,这里有Objective-C代码):

如果您想了解如何在使用
url
时使用不同的方法,请阅读以下文章:

如需更多阅读,请使用Apple文档:


    • 我可以解释我所做的工作,这些工作现在正在发挥作用。我认为我们也尝试了.gltf和.scn,但没有得到任何结果,因此我们得出如下结论:

    • 获取包含Collada文件(.dae)和所有纹理的文件夹

    • 正如@AndyFedo所提到的,我们已经完成了以下步骤。如果在本地运行时没有该文件,则应执行此步骤

    • 在copySceneKitAssets的帮助下,将原始Collada文件夹转换为该页面中所述的所需文件夹后,我压缩了新文件夹并将其放在服务器上

    • 然后调用api,将zip文件夹保存在设备上,解压缩文件夹并使用.dae文件搜索该文件,并获取该文件的路径。我把它命名为modelUrl

    • 让virtualObject=SamMitiVirtualObject(referenceNode:SCNReferenceNode.init(url:modelUrl作为url)!,允许对齐:[.horizontal])


    • 那应该行。

      谢谢你的重播,我已经试过了[但我的服务器url没有加载。我也在加载.scn文件和.dae文件.obj文件。您能分享通过加载示例从服务器上动态获取三维模型的任何代码吗。@GangiReddyRamiReddy,您在这个项目上取得了任何进展吗?是的,通过使用这个框架,我已经完成了,但glTF url将可以加载。现在我的问题是如何创建三维模型e glTF远程服务器的url我不确定您是否可以将url直接放在SCNReferenceNode中,我从研究中了解到的是,您应该将文件保存在本地,获取其url并显示。谢谢。您可以分享您的示例代码吗?我尝试了,但它没有加载我的文件。如果您不共享代码,请向您发送包含.da的urle文件和纹理你得到了什么,你得到了错误吗?你需要代码的哪一部分?好吧,你不需要在URL中包含纹理。Collada本身就有这些信息。确保步骤2正确无误。你确定吗?如果是,请在“文档”上保存zip文件夹,在那里解压。转到解压后的文件夹并选择.dae文件。最后,modelUrl应该如下所示:file:///var/mobile/Containers/Data/Application/7DVBACE2-9584-412A-AB38-661CE60BE98C/Documents/modelunzip/YYY_2019339_Internetworld/YYY_2019339_Internetworld.dae