iOSで3Dモデルを表示するために調べてる情報のメモ(途中)
3Dモデルを表示するiOSアプリを作るかもしれないので情報収集。
- 今ここまで覚えました: iOSにおける3D表示
- iPhoneで3Dモデルを表示する: インディーズゲームデベロッパー「OMEGA POINT」
- OpenGL ESを使用したiOS用3Dグラフィックス(1) | Second Flush
- https://github.com/TouchCode/TouchOpenGL
- PowerVR - embedded graphics processors powering iconic products
- http://isgl3d.com/
- http://www.denismarkelov.com/2011/12/3d-animation-on-ios-with-isgl3d.html
iOSにはOpenGL ES1.x/2.0のAPIがあるけど、特定形式のモデルデータを扱う機構はなさそうなので、例えばOBJのパーサ&レンダラーを自作したり、それを部分的にやってくれるTouchOpenGLみたいなライブラリを使ったりして、ガリガリ低レベルのコーディングをしなきゃいけないみたいで、大変そう。
WebViewの非公式メソッドを使えばWebGLてのも使えるらしいんだけど、実用に足るか分からないので、とりあえず保留。
その他の方法として、サードパーティのライブラリもある。
ゲームならUnityとか使えば便利なんだろうけど、今回はゲームじゃないし、モデルは静止でカメラだけ動かせれば良いだけなので、オーバースペックていうか、たぶん目的が違うので、無意味にややこしいかもしれない。
パフォーマンス的には、iOSデバイスに載ってるグラフィックチップのベンダが出してるPowerVR SDKを使うのはよさけ。データはPOD形式で用意する必要があるが、Collada形式からPOD形式へのコンバータが提供されてるので、モデラーからはCollada形式で出力すればいいみたい。(ShadeなんかでもCollada出力はサポートしてる。)
iSGL3Dも良いかもしれない。MITライセンスのオープンソースライブラリで、内部的にはOpenGLを使ってるみたい。APIドキュメントを見た感じでは、わりと違和感なく扱えそう。Isgl3dPODImporterてクラスも載ってて、これはPOWERVR POD形式のデータをインポートするためのexampleソースコードらしい。(追記:ただ、最近メンテされてないみたいで、サンプルが最新の開発環境ではすんなりそのまま動かないという現状。)
いずれにしても、実際に近いデータを使って、パフォーマンステストをする必要はあるんだろうな。