2

OpenGLを使用して、画像をテクスチャにアップロードしました。

glTexImage2D (GL_TEXTURE_2D, 0, GL_RGB, imageWidth, imageHeight, 0, GL_RGBA, GL_UNSIGNED_BYTE, imageData);

ここで、OpenGLを使用してチャネルを分離できるかどうかを確認したいですか?たとえば、赤/緑/青のチャンネルをそれぞれ別々のバッファに保存できるようにするには?これはOpenGLで簡単にできることですか?

4

1 に答える 1

2

RGBテクスチャは 3 つの別個のバッファとして見ることができますが、メモリに保存されます。ただし、3 つの別個の連続したバッファーを使用する必要がGL_REDある場合は、1 つのチャネルごとに 3 回使用できる形式があります。

この種のデータから描画するには、データを 1 つのバッファーに戻すか、一度に 3 つのテクスチャからサンプリングするシェーダーを使用する必要があります。

vec2 tc;
sampler2d red, green, blue;

my_out_color = vec4(texture(red, tc).r, texture(green, tc).r, texture(blue, tc).r, 1.0);
于 2013-03-04T19:52:34.923 に答える