こんなことしてる場合じゃ…


iPhone Developer Programに登録したもんだから、iPhoneの開発が楽しくって止まらない。とりあえずテンプレート上に昔自作したOpenGLを使ったクラウドシミュレーションのプログラムを移植してみた。といっても、インターフェースは一切無しで、とりあえず単に表示されて動くだけだけど。OpenGLOpenGL ESが思った以上に違っていたりとか、glutがなかったりとか、iPhone 2.0だと動くのに2.1だと動かなかったりとか、いろいろとアタマを悩ませる細かい障害があったけど、とりあえずは動いた。しかし、実機のiPod touchに転送してみると、これが異様に重い。プリミティブな立方体とはいえ、200個くらいのオブジェクトがそれぞれ周りを確認しながら動いているから仕方ないのか?それとも何か高速化の秘密があるのか? 気にはなるけど、仕事に戻らなくっちゃ。

追記
どうもOpenGLの描画が重い訳ではなく、処理そのものが重かったらしい。問題は浮動小数点演算にあるような気がして、とりあえずコンパイルオプション等弄ってみたが、少し改善した程度。そもそもOpenGL ESには固定小数点のインターフェースがあることから、速度重視の場合はこちらを利用するのが流儀かもしれない。感覚的にはPS1時代の作り方にほぼ同じ。それならそれでやりようはいくらでもある。が、試している時間がないので、今のところ単なる推論。とりあえず、毎処理200体以上を同時処理していたものを、8処理毎に処理を振り分けるようにして負荷を減らしてみた。精度は下がるけど、チューニングとしては王道パターン。これでなんとか人並みなレベルになった。ついでにタップで処理を切り替える機能も追加してみた。ていうか、やっぱり楽しい。仕事したくない(苦笑)