私たちのプログラムではメモリの使用量を最適化しようとしていますが、RGBAとして格納されているときにRGB値がすべて同じであるように、テクスチャの一部をアルファ値付きのグレースケールとして格納できることに気付きました。openGLES 2 - 32ビットRGBAに拡張せずに、8ビットのグレースケールと8ビットのアルファでテクスチャをロードするにはどうすればよいですか?
グレースケールとアルファ両方の8ビットを格納するだけで、ディスク容量とメモリを節約したいと考えています。したがって、32ビットRGBAでディスクとメモリの両方を50%節約できます。
しかし、我々が打ち破ったハードルは、この情報をOpenGLに与える方法を考えることができないということです。イメージは、2つの8ビットチャネルを持つ1つのイメージ、または1つの8ビットチャネルを持つ2つのイメージとしてディスクに保存できます。私はOpenGLがこれをグレースケール画像として見る方法を見つけることができないので、RedとGreenのような特定の色では見ないとメモリ内にこれらの2つのチャンネルしかない - GL_RG8が正しい番号を持つ右のビット深度ではチャンネルの数が不正ですが、色が間違っています。
これはOpenGLES 2でも可能ですか? OpenGLに2つのチャンネルを与えて、それらが赤と緑ではなくグレーとアルファであることを伝えることはできますか?
私はこの質問を見ました:Can I use a grayscale image with the OpenGL glTexImage2D function?これはかなり古いですし、GL_LUMINANCEは現在廃止されています。