2011.11.18

【Android NDK】OpenGLでIndexカラーの画像を表示する

できるっぽいので試してみます。

描画方法

以下のページを参考にしました。
Link:圧縮テクスチャ(インデックステクスチャ)の生成 - It_lives_vainlyの日記

手順としてはテクスチャの転送方法だけ違うだけのようです。

IndexカラーはglCompressedTexImage2Dを使って転送する必要がある。

第三引数にテクスチャ情報を指定する。
よく使いそうなのはこのあたり?

GL_PALETTE8_RGBA8_OES IndexカラーRGBA256色
GL_PALETTE4_RGBA8_OES IndexカラーRGBA16色

転送情報はパレットデータ、ピクセルデータの順に並べる。
ヘッダとかは付加しない。

検証

確認機種はGalaxy S2になります。

・メモリ使用量
512*512の画像をピクセルフォーマットだけ変えて
タスクマネージャーでメモリの消費量を確認してみた。

メモリ使用量 画像情報
5.25M 32bitフルカラー
3.85M 8bit Indexカラー
3.50M 4bit Indexカラー

確実にメモリ消費が減っていますね。

・描画速度

上位のJava側でcurrentTimeMillisで計測して見ました。

512*512画像を同じ座標に3000回描画してみたけど
そんなに差があるとは感じられず。
何かキャッシュが利いているのだろうか?


こんな感じでなかなか悪くない結果が出ました。

問題としてはこの機能がどこまでの機種に有効かというところでしょう。
ゲームとかだと当たり前にIndexカラーだけどOpenGLでは使えるという話を
そんなに聞かないのよね。

そのあたりが解決できれば優良な機能なので
ぜひとも使っていきたいところです。

Open GL ES 2.0 プログラミングガイド Open GL ES 2.0 プログラミングガイド
Aaftab Munshi Dan Ginsburg Dave Shreiner アフタブ・ムンシ ダン・ギンズバーグ デーブ・シュライナー 松田 晃一

ピアソン桐原 2009-11-01
売り上げランキング : 32973

Amazonで詳しく見る by G-Tools

ニャッキ格闘列伝 > プログラム >

前の記事:
次の記事:

関連記事

コメントリスト

コメントなし

コメント



*

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

こんなタグが使えるみたいよ:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>