首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OpenGL FBO多重纹理

OpenGL FBO多重纹理
EN

Stack Overflow用户
提问于 2012-07-09 20:18:33
回答 1查看 1.1K关注 0票数 2

我有一个FBO,我附加了两个纹理。然后我想绑定FBO,使用第一个纹理作为输入(绑定)到一个着色器和写入第二个纹理,两者都附加到FBO。我尝试使用glDrawBuffer将GL_COLOR_ATTACHMENT1指定为绘制缓冲区,但没有成功。这有可能吗?

编辑

以下是我如何尝试这样做的:

代码语言:javascript
复制
GLuint tex0, tex1; // they are created elsewhere and bound to the fbo
glBindFramebuffer( GL_FRAMEBUFFER, fbo );

glActiveTexture( GL_TEXTURE0 );
glBindTexture( GL_TEXTURE_2D, tex0 );

glDrawBuffer(GL_COLOR_ATTACHMENT1);

// render code

glReadBuffer(GL_COLOR_ATTACHMENT1);
glReadPixels(...);

但glReadPixels的结果与我所预期的不同。你能看到这里有什么问题吗?

EN

回答 1

Stack Overflow用户

发布于 2012-07-09 20:25:10

在着色器中采样的纹理不应该绑定到FBO。只需像普通纹理一样使用glBindTexture绑定它。

我相信,如果你有一个纹理同时绑定到一个采样器和一个FBO,你会得到未定义的行为。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11402461

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档