8 ビットのアルファのみのテクスチャを GLSL に渡すにはどうすればよいですか?
1850 次
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 に答える