1

私は SceneKit を試しているところです。私がやりたいことの 1 つは、COLLADA ファイルからシーンをロードすることです。これはうまく機能しますが、テクスチャが読み込まれず、ファイルを読み込むときに次のエラーが発生します。

<Error>: ImageIO: CGImageSourceCreateWithURL CFURLCreateDataAndPropertiesFromResource failed with error code -11.

ここでの問題の一部は、アプリ バンドル内のファイルを整理する方法にあると思います。Textures.bundleすべてのテクスチャを保持し、カテゴリ別に整理されたファイルとModels.bundle、COLLADA ファイルを保持するファイルです。

xcode ファイルツリー

正しいパスを返す、バンドルのカテゴリ (フォルダー) 内のファイルのパスを取得するクラスを作成しました。Xcode でさえ、ファイルを適切に取得し、同じ COLLADA ファイルを適切にロードでき、テクスチャ バンドル内の画像を認識するところまで進みます。

xcode COLLADA プレビュー

テクスチャの場所は「DAE ドキュメントに対する相対」として設定され、次の (正しい) パスが生成されます。../../Textures.bundle/ModelTextures/Computer/motherboard_motherboard.jpg

アプリでは、次のようにレンダリングされます。

レンダリング出力

何か案は?

4

1 に答える 1

1

Xcode とランタイムは異なるアルゴリズムを使用して Scene Kit のリソースを検索することを知っているので、一方では機能し、他方では機能しないことはそれほど驚くことではありません。(Xcode の場合は明らかにすべてのソースを確認できる必要がありますが、ランタイムの場合は、どこを参照するかについてより具体的です。)

とはいえ、アプリケーションの Resources ディレクトリがどのように見えるかを投稿できますか? たとえば、その中に入って を実行するとls -FR、期待する構造が見えますか? すべてコピーOK?

また、それが同じモデルである場合、テクスチャが読み込まれないだけでなく、さらに多くの問題が発生します。つまり、それは完全に強打に見えます。ロードしたファイルに何か他のことをしていますか?

于 2014-01-27T09:22:18.213 に答える