【发布时间】:2014-12-27 18:43:47
【问题描述】:
我正在尝试使用附加到帧缓冲区的每通道 32F 纹理来渲染纹理。我使用正常的无符号 RGBA 纹理正确地做到了这一点,但我需要每个通道的分辨率更高。
我更改了纹理的内部格式,但在执行附件时,应用程序抛出了 INVALID_ENUM 错误。我读到可以使用这种格式linklink 附加纹理。所以错误可能在其他地方。
这里是sn-ps的代码:
glGenTextures(1, &mTexId);
glBindTexture(GL_TEXTURE_2D, mTexId);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA32F, _width, _height, 0, GL_RGBA32F , GL_UNSIGNED_BYTE, nullptr);
glBindFramebuffer(GL_FRAMEBUFFER, mBufferId);
glFramebufferTexture(GL_DRAW_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, mTexId, 0);
checkErrors(); // <<--- Here I check the possible errors and it's where i got the INVALID_ENUM
有人可以帮助我吗? 非常感谢。
【问题讨论】:
标签: c++ opengl opengl-es textures framebuffer