私は、OpenGLのglTexImage2D関数でグレースケール画像を使用することはできますか?
質問
私はそれがグレースケール画像だとしてのみ1チャネルを持つ質感を持っています。私はglTexImage2Dへの画素を通過するとき、それが赤色を出てくる。(明らかに、チャネル1が赤であるため、RGB)
glTexImage2D(
GL_TEXTURE_2D, 0, GL_RGBA,
dicomImage->GetColumns(), dicomImage->GetRows(),
0, GL_RGBA, GL_UNSIGNED_BYTE, pixelArrayPtr);
私はGL_RGBAを変更できますか?もしそうなら、どのように?
他のヒント
私が第三引数の代わりにGL_LUMINANCE
のGL_RGBA
を使用すべきであることが表示されます。
(コメントへの返信で)編集:
私はGL_LUMINANCE
する第七引数(だけでなく、第三)に設定すると、画像が完全に歪んで行きます。 DICOMピクセルフォーマットで、第七引数が何らかの理由でGL_RGBA
しなければならないことが表示されます。
FragmentShaderに、あなたが書くことができます:
uniform sampler2D A;
vec3 result = vec3(texture(A, TexCoord).r);
のcppファイルに、あなたが書くことができます:
glTexImage2D(
GL_TEXTURE_2D, 0, GL_RED,
dicomImage->GetColumns(), dicomImage->GetRows(),
0, GL_RED, GL_UNSIGNED_BYTE, pixelArrayPtr);
所属していません StackOverflow