我有一个只有1个 channel 的纹理,因为它是灰度图像。当我将像素传递到glTexImage2D时,它会变成红色(显然是因为 channel 1是红色; RGB)。

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

我要更换GL_RGBA吗?如果是这样,该怎么办?

最佳答案

将其更改为GL_LUMINANCE。参见https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/glTexImage2D.xhtml

10-08 08:24