使用 FBO 的问题:仅第一次渲染。设置渲染目标时可能出现问题?

Posted

技术标签:

【中文标题】使用 FBO 的问题:仅第一次渲染。设置渲染目标时可能出现问题?【英文标题】:Problem using FBO: Only first pass renders. A possible problem at setting render target back? 【发布时间】:2009-12-11 03:26:09 【问题描述】:

我在使用 FBO 时遇到了很大的问题。

我有一个使用 FBO 和多纹理的多通道显示。在第一次执行显示结束之前,一切似乎都运行良好。

我在显示函数结束时使用 glBindFrameBufferEXT(GL_FRAMEBUFFER_EXT, 0) 将渲染目标设置回屏幕,但之后的通道不生效。屏幕似乎冻结了..

可能是什么原因?有什么猜测吗?

【问题讨论】:

【参考方案1】:

我建议你添加

glPushAttrib(GL_VIEWPORT_BIT | GL_COLOR_BUFFER_BIT);

在绑定FBO之前,和

glPopAttrib();

在你释放它之后。

【讨论】:

以上是关于使用 FBO 的问题:仅第一次渲染。设置渲染目标时可能出现问题?的主要内容,如果未能解决你的问题,请参考以下文章

OpenGL ES 多目标渲染(MRT)

OpenGL 渲染到 FBO

OpenGL:使用 FBO 和视口偏移问题渲染到纹理

FBO 离屏渲染慢

FBO:渲染到纹理,绘制渲染纹理时纹理映射错误

使用 FBO 和着色器 OpenGL 渲染到纹理