在我的iOS应用中,我从网络服务器下载了.scn文件,因此该文件已在本地复制。复制下载的文件旁边的纹理文件。是否相关:这些纹理存储在本地,而不是下载。
然后我从下载的.scn文件的本地SCNReferenceNode
创建一个URL
。我的代码中有scn文件的支票(打印):
found SCN file at file:///private/var/mobile/Containers/Data/Application/01F588F9-98AB-4EC8-A948-5165D69074B0/Documents/myTmpDir/model.scn
以及另一个纹理检查:
FILE EXISTS at url = file:///var/mobile/Containers/Data/Application/01F588F9-98AB-4EC8-A948-5165D69074B0/Documents/myTmpDir/Maison%20MSG%2013%20Wapper%20snowdust/Bois234_3.jpg
但是当我加载SCNReferenceNode
时,我收到以下错误:
[SceneKit] Error: Failed to load : <C3DImage 0x282455a00 src:Maison%20MSG%2013%20Wapper%20snowdust/Bois234_3.jpg [0.000000x0.000000]>
[SceneKit] Error: Cannot load image Maison%20MSG%2013%20Wapper%20snowdust/Bois234_3.jpg. Using dummy texture.
请注意,.scn文件具有纹理目录的相对路径。通过检查应用的容器进行验证时,两者都位于正确的位置。
如果在XCode中将纹理文件目录放在Assets.xcassets中,则可以正确加载纹理。看来纹理的相对路径不起作用。我试图更改工作目录,但仍然没有令人满意的结果。
另一个有趣的事实,如果我下载了应用程序容器,并在我的mac上打开.scn文件(纹理目录正确地位于它旁边,则纹理已正确应用。
我没有解决这个问题的想法,将不胜感激:-)。
提前感谢!
在.mtl文件中,有Maison%20MSG%2013%20Wapper%20snowdust/Bois234_3.jpg
的引用>
删除Maison%20MSG%2013%20Wapper%20snowdust/
并保留Bois234_3.jpg
,因为现在可以在项目的.scnassets
文件中本地访问所有图像文件