【问题标题】:SCNReferenceNode from URL to .scn file does not find textures next to the file从 URL 到 .scn 文件的 SCNReferenceNode 在文件旁边找不到纹理
【发布时间】:2019-07-15 12:22:17
【问题描述】:

在我的 iOS 应用程序中,我从网络服务器下载了一个 .scn 文件,因此它被复制到本地。 在下载的文件旁边,我复制了纹理文件。相关与否:这些纹理存储在本地,而不是下载。

然后我从下载的 .scn 文件的本地 URL 创建一个 SCNReferenceNode。 我的代码中有一个 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 文件(纹理目录正确地位于它旁边),纹理就会正确应用。

我没有解决这个问题的想法,任何帮助将不胜感激:-)。

提前致谢!

【问题讨论】:

  • 我遇到了类似的问题。我正在开发一款游戏,我将我的纹理文件夹移动到 scn.assets 文件夹中,现在即使我将文件夹放回原来的位置,也不会以编程方式加载任何图像。并且新图像也不会加载。它们都显示在场景工具包编辑器中,我可以将它们分配给模型。

标签: ios swift scenekit scnnode


【解决方案1】:

在 .mtl 文件中有对 Maison%20MSG%2013%20Wapper%20snowdust/Bois234_3.jpg 的引用

删除 Maison%20MSG%2013%20Wapper%20snowdust/ 并保留 Bois234_3.jpg,因为现在可以在项目的 .scnassets 文件中本地访问所有图像文件

【讨论】:

    猜你喜欢
    • 2018-05-20
    • 2018-07-16
    • 1970-01-01
    • 2014-07-16
    • 2019-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-26
    相关资源
    最近更新 更多