2011/04/06

iOSのOpenGL ESで3Dオブジェクト読み込み

急にすごくマニアックです。
mixiから観てる人ごめんなさい。たぶん、誰にもわからない話です。
何を書くかというと、iPhoneやiPadでのプログラミングの話です。



iOSでは3Dの描画は、OpenGL ESを使います。1.1の書き方か2.0の書き方で描画可能です。僕の場合は、1.1の書き方に準じたものを勉強してきたので、今は1.1の書き方でやってます。

OpenGLで作業をしてると、最初にいきつくのは、3Dのソフトでデザインしたモデルを読み込むのはどうしたらいいの?という問題です。
Macでも、同じ問題があり、いつも悩むところですが、当然こういうときはライブラリを探す作業から始まります。

今回は、以下の本を読んで勉強しました。


そこで見つけたのは、.podというファイル形式です。iOSのデバイスで使われているグラフィックチップは、PowerVRというものらしく、それを作っている会社Imagination Technologiesでライブラリを公開しています。C++で記述されたSDKとなっています。そこには、独自形式の.podを読み込むコードもあり、便利そうです。

一時、上記の方法を追いかけていたのですが、すんなりうまく行かなかったので、別の方法も模索しました。ただ、上記の方法は、パフォーマンスが高いらしいので、いずれトライしてモノにしたいと思っています。

で、もう一つ試した方法は、objという形式を読み込む方法です。
obj形式は非常にシンプルで、頂点情報やTextureCoord情報、法線ベクトルなど、必要な情報がテキストファイルにスペース区切りで入ってるというものです。
そのため、ライブラリも実装されているケースが多く、iOS版もありました。

しかもこのライブラリ、Objective-Cで書かれているので、とても使いやすい。すばらしい。
Blenderで書き出したファイルも無事に読めるらしいので、便利ですね。


1 件のコメント: