Puis-je utiliser une image en niveaux de gris avec la fonction OpenGL glTexImage2D?

StackOverflow https://stackoverflow.com/questions/680125

  •  22-08-2019
  •  | 
  •  

Question

J'ai une texture qui a seulement 1 canal que c'est une image en niveaux de gris. Quand je passe les pixels pour glTexImage2D, il sort rouge. (Évidemment parce que le canal 1 est rouge; RGB)

glTexImage2D(
    GL_TEXTURE_2D, 0, GL_RGBA,
    dicomImage->GetColumns(), dicomImage->GetRows(),
    0, GL_RGBA, GL_UNSIGNED_BYTE, pixelArrayPtr);

Dois-je changer GL_RGBA? Si oui, quoi?

Était-ce utile?

Autres conseils

dans le FragmentShader, vous pouvez écrire:

uniform sampler2D A;
vec3 result = vec3(texture(A, TexCoord).r);

dans le fichier cpp, vous pouvez écrire:

glTexImage2D(
GL_TEXTURE_2D, 0, GL_RED,
dicomImage->GetColumns(), dicomImage->GetRows(),
0, GL_RED, GL_UNSIGNED_BYTE, pixelArrayPtr);
scroll top