2012-01-07 6 views
0

私はアンドロイドOpenGL-es 2.0で8ビットのテクスチャ(それには1ピクセルあたり256の値しか必要です)を使用したいと思い、glTexImage2Dでどのように設定したらいいか教えてください。OpenGl-ES 2.0 for Androidで8ビットテクスチャを設定するにはどうすればよいですか?

GL_ALPHA8は機能しますか?

アンドロイドでサポートされている標準のサポートされているテクスチャ形式のリストは見つかりませんでした(少なくともアンドロイド2.2とOpenGL 2.0以上のほとんどのデバイス)。私は今すぐ利用可能なデバイスをテストしていないので、私は本当にこれに関するいくつかのアドバイスをしたいと思います。

これは、可能な限りメモリを必要とせず、256個の値を保持するだけのフラグメントシェーダにテクスチャを使用したいからです。公式のOpenGL ESのドキュメントから

答えて

0

glTexImage2D

タイプ引数:

はテクセルデータのデータ型を指定します。受け入れられる値は、GL_UNSIGNED_BYTE、GL_UNSIGNED_SHORT_5_6_5、GL_UNSIGNED_SHORT_4_4_4_4、およびGL_UNSIGNED_SHORT_5_5_5_1です。

あなたはこの機能を使用する場合は、あなたがそれらのいずれかを選択する必要があります:) ほとんどのバイトは8ビットが含まれているときにGL_UNSIGNED_BYTEを検索:ご返信用D

+0

感謝を。 GL_UNSIGNED_BYTEをタイプに選択しますが、internalformatとformatパラメータにはどのようにして1ピクセルあたり1バイトしか使用されず、4ではなく使用されるのですか? – HardCoder

+0

どちらのパラメータにGL_RGBまたはGL_LUMINANCEを使用するかは、使用しているものによって異なります。両方が一致する定数を持つ必要があることに注意してください。 – poitroae

+0

GL_RGBは値ごとに3バイト必要ですか? GL_LUMINANCEは私にとってはうまくいかないようです。私はGL_ALPHAで試してみましたが、うまくいくようです。問題は、1バイト、4バイト、またはまったく異なる何種類のビデオメモリがピクセルに割り当てられているか分かりません。 – HardCoder