1

8 ビットのアルファのみのテクスチャを GLSL に渡すにはどうすればよいですか?

4

1 に答える 1

6

使用している OpenGL のバージョンはわかりません。しかし実際には、GLSL を使用しているため、ピクセルあたり 8 ビットのデータがアルファコンポーネントに含まれているかどうかは気にする必要はありません。テクスチャ データにチャネルが 1 つしかなく、1 ピクセルあたり 8 ビットであり、既知のコンポーネントからアクセスできることが重要です。

GL 3.x+ は、GL_R8 イメージ形式を提供します。GL_INTENSITY8それ以前は、 (コア OpenGL 3.1 から削除された) を使用することができました。違いはGL_R8、1 つのチャネルのみを赤のコンポーネントに配置することです。そのため、GB は 0 になり、A は 1 になります。強度形式では、1 つのチャネルが 4 つのコンポーネントすべてにブロードキャストされるため、RGBA はそれぞれ同じ値になります。

シェーダーを変更する必要はありません。サンプリングされた値の赤の成分を取得するだけです。

于 2013-04-21T22:17:26.810 に答える