2

私が見たところ、GL_ALPHA8内部ピクセル形式は OpenGL 3.1 の OpenGL コア仕様から削除されました。アルファチャンネルを備えたピクセルフォーマットはもうないようですが、RGBチャンネルはありません。GL_RGBA8これは、テクスチャを作成して RGB コンポーネントを 255 に設定し、メモリの 75% を浪費するしかないということですか?

4

2 に答える 2

4

単にGL_R8フォーマットを使用してください。テクスチャを適切にスウィズルするように変更することが懸念される場合は、フェッチ時にスウィズル マスクを設定することができます。例えば:

GLenum swizzleMask = {GL_ZERO, GL_ZERO, GL_ZERO, GL_RED};
glTexParameteriv(GL_TEXTURE_2D, GL_TEXTURE_SWIZZLE_RGBA, swizzleMask);
于 2011-11-17T19:56:47.720 に答える
2

GL_REDフラグメント シェーダーでアルファとして使用および処理できます(例: output_colour = vec4(1., 1., 1., texture2D(sampler, texcoords).r);)。

于 2011-11-17T19:10:38.737 に答える