Nic*_*ton 15 c++ opengl textures
我的纹理只有一个通道,因为它是一个灰度图像.当我将像素传递给glTexImage2D时,它会变成红色(显然是因为通道1是红色; RGB).
glTexImage2D(
GL_TEXTURE_2D, 0, GL_RGBA,
dicomImage->GetColumns(), dicomImage->GetRows(),
0, GL_RGBA, GL_UNSIGNED_BYTE, pixelArrayPtr);
Run Code Online (Sandbox Code Playgroud)
我是否更改了GL_RGBA?如果是这样,该怎么办?
ypn*_*nos 16
将其更改为GL_LUMINANCE.见http://www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/gl/teximage2d.html
在 FragmentShader 中,您可以编写:
uniform sampler2D A;
vec3 result = vec3(texture(A, TexCoord).r);
Run Code Online (Sandbox Code Playgroud)
在cpp文件中,你可以写:
glTexImage2D(
GL_TEXTURE_2D, 0, GL_RED,
dicomImage->GetColumns(), dicomImage->GetRows(),
0, GL_RED, GL_UNSIGNED_BYTE, pixelArrayPtr);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15729 次 |
| 最近记录: |