glGetTexImage()只是给我黑色

时间:2017-07-18 20:14:54

标签: opengl unity3d

我正在尝试将GL_TEXTURE_2D的内容转换为RGBA字节数组。

这是我的代码:

void save(void* textureHandle, int width, int height){
    GLubyte *pixels = new GLubyte[width * height * 4];
    GLuint gltex = (GLuint)(size_t)(textureHandle);
    glBindTexture(GL_TEXTURE_2D, gltex);
    glGetTexImage(GL_TEXTURE_2D,
                  0,
                  GL_RGBA,
                  GL_UNSIGNED_BYTE,
                  pixels);
    // Do fun stuff with pixels
}

textureHandle由Unity传入,它说明了这一点:“在类似OpenGL的设备上,返回GL纹理”name“;将指针强制转换为整数类型以获取它”。

在我的脑海中,遵循此代码块pixels应填充表示传入纹理的[r1, g1, b1, a1, r2, ...]值。但是,整个数组只是[0,0,0,0...]。为什么会发生这种情况?我该如何解决?

0 个答案:

没有答案