FC2ブログ

頭と尻尾はくれてやる!

パソコンおやじのiPhoneアプリ・サイト作成・運営日記


SceneKitでdaeファイル内のテクスチャ画像のリンクを得る

Blenderでテクスチャ付きのオブジェクトをdaeファイルで出力する
↑こんな感じでBlenderでテクスチャを設定してそれをdaeファイルとして出力。それをSceneKitで使う時に、テクスチャのURLはどうやって取得できるのかなと思って調べた。

Xcode上でのdaeファイル

↑daeファイル内にあるテクスチャ画像のリンク先があっていれば、Xcodeに持って来てオブジェクトを確認したらテクスチャが適用されているはず。
なので、通常テクスチャのURLなんて不要かもしれない。ただ、今回はテクスチャ画像のリンク先からNSImageオブジェクトを作成、シェーダに教えたいので調べる必要があった。

{
	SCNScene *daeScene = [SCNScene sceneNamed:@"art.scnassets/frog.dae”];//—(1)
	SCNNode *node = daeScene.rootNode;//—(2)

	if ([node.geometry.firstMaterial.diffuse.contents isKindOfClass:[NSURL class]]) {//—(3)
		NSURL *textureURL = node.geometry.firstMaterial.diffuse.contents//—(4)
            }
}
(1) daeファイルをどこに置くのかにもよるけど、ともかくSCNSceneオブジェクトを作成。

(2) daeファイルの構成によってはrootNodeではないかもしれない。ボーンがあれば上記のでは動かないと思う。

(3)リファレンスだとcontentsはid型で、↓このように画像ファイルの場合はどちらか、とあるので一応確認してる。
An NSString or NSURL object specifying the location of an image file

(4) 俺がやったらNSURLだったのでNSURLオブジェクトを取得してる。
テクスチャをシェーダに渡して表示

↑これを使いNSImageオブジェクトを作成、シェーダに渡すというのができた(何それ?って画像だけど)。

<< PythonのPILで日足チャートを描く  TopPage  Blenderでテクスチャ付きのオブジェクトをdaeファイルで出力する >>

コメント


管理者にだけ表示を許可する
 

トラックバック

トラックバックURL
http://ringsbell.blog117.fc2.com/tb.php/1131-13d57acf




Copyright ©頭と尻尾はくれてやる!. Powered by FC2 Blog. Template by eriraha.

FC2Ad