« アプリケーションヒープ外のメモリ確保 | メイン | Android 用の SDK α2をリリース »

2012年07月23日

吉里吉里Java:: OpenGL ES 2.0 での実現性

    

OpenGL ES 2.0 でレイヤー関係の処理を書き換えればメモリ容量の問題は大きく改善するが、吉里吉里2 のレイヤー処理を OpenGL ES 2.0 で実現できるかどうか。
少し実験してみたがレンダーテクスチャとフラグメントシェーダーで実現できそうではある。
レイヤーの copyRect 処理の destination をレンダーテクスチャの対象に設定し、板ポリを描画すると言う方法で実現できるはず。
処理が CPU から GPU に移る事で高速化されるかというと、それはわからない。
ステートを切り替えまくって描画して速度が出るのかどうか……
アプリケーションならレンダーテクスチャを頻繁に切り替えて描画すると言うのは、最近ならありそうだけどゲームでそのような処理をするのはないのではないかと思う。
そもそもスプライトとして一気に全部描画してしまえばいいだけだから。
もう1つはテキスト描画が多いので、キャッシュするにしても文字種が多いのでテクスチャメモリへの転送が頻繁に発生するため、この部分の速度が気になる。
KAG3 では、基本的に1文字ずつ描画していくため、まとめて複数文字転送がしづらい。
描画処理は、内部でコマンドを溜めて、画面に描画する時やファイル書き出し等テクスチャの情報が必要になる時まで遅延させ、必要になった段階でコマンドをすべて処理する形にすれば、まとめて処理できるから、そのようにすれば複数文字を一気に転送出来なくはない。
まあ、テクスチャへのキャッシュを考えると複数文字を一気に転送はやりづらいんだけど。
なんにしても速度面に関してはやってみない事には現実的な速度で動くかはわからないな。
この程度の処理ならいけそうとは思うが。

新規に作らないといけない処理は多いがやってみる価値はありそう。
ダウンロード機能などもっと先に必要な機能が実装できたら検討してみる。



投稿者 Takenori : 2012年07月23日 23:53




comments powered by Disqus
Total : Today : Yesterday : なかのひと