【发布时间】:2014-02-17 17:55:46
【问题描述】:
我正在试用 SceneKit,我想做的一件事是从 COLLADA 文件加载场景。这很好用,但是,纹理没有加载,并且在加载文件时,我收到以下错误:
<Error>: ImageIO: CGImageSourceCreateWithURL CFURLCreateDataAndPropertiesFromResource failed with error code -11.
我认为这里的部分问题是我在应用程序包中组织文件的方式 - 一个名为 Textures.bundle 的文件包含所有纹理,按类别组织,一个 Models.bundle 包含 COLLADA 文件:
我编写了类来获取包的类别(文件夹)中的文件路径,它返回正确的路径。甚至 Xcode 也可以正确获取文件,并正确加载相同的 COLLADA 文件,甚至可以识别纹理包中的图像:
纹理位置设置为“相对于 DAE 文档”,生成以下(正确)路径:../../Textures.bundle/ModelTextures/Computer/motherboard_motherboard.jpg
然后,在应用程序中,它是这样呈现的:
有什么想法吗?
【问题讨论】:
-
第一个问题,您是否在 Xcode 编辑器、预览和 QuickLook(在 Finder 中按空格键)对文件获得一致的结果,或者其中一个是否有此问题?第二个问题,您在 Xcode 编辑器中检查几何对象,其中一些是否具有颜色值以及顶点和法线?
-
Xcode、Preview 和 QuickLook 都能正确渲染模型。几何图形确实使用了几种材料,其中只有一种具有纹理,其余的是纯色,但没有一种是白色的。