Ios 如何在ARKit应用程序中在运行时加载SCN或glTF模型?
运行时从iOS内部的URL加载3d模型的最佳方式是什么。我试过这个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
.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
时使用不同的方法,请阅读以下文章:
- 获取包含Collada文件(.dae)和所有纹理的文件夹
- 正如@AndyFedo所提到的,我们已经完成了以下步骤。如果在本地运行时没有该文件,则应执行此步骤
- 在copySceneKitAssets的帮助下,将原始Collada文件夹转换为该页面中所述的所需文件夹后,我压缩了新文件夹并将其放在服务器上
- 然后调用api,将zip文件夹保存在设备上,解压缩文件夹并使用.dae文件搜索该文件,并获取该文件的路径。我把它命名为modelUrl
- 让virtualObject=SamMitiVirtualObject(referenceNode:SCNReferenceNode.init(url:modelUrl作为url)!,允许对齐:[.horizontal])
- 我可以解释我所做的工作,这些工作现在正在发挥作用。我认为我们也尝试了.gltf和.scn,但没有得到任何结果,因此我们得出如下结论:
那应该行。谢谢你的重播,我已经试过了[但我的服务器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