首页 > 解决方案 > OpenGL 离屏渲染

问题描述

我试图将 2D 场景渲染到屏幕外的 FrameBuffer 对象中,并使用 glFrameBufferTexture2D 函数将帧用作纹理来纹理立方体。

2D 场景在一个上下文中渲染,纹理在同一线程的另一个上下文中使用。

问题是当我对立方体进行纹理处理时,alpha 通道似乎不正确。我使用apitrace检查纹理,纹理具有正确的alpha值,着色器只是out_color = texture(in_texture, uv_coords)

如果我将屏幕外帧缓冲区颜色附件粘贴到任何东西,无论是它本身还是帧缓冲区 0(输出窗口),问题就解决了。

我想知道为什么会发生这种情况以及如何在不需要对帧缓冲区进行 blit 的情况下解决它。

标签: opengl

解决方案


发现我对静态 2D 场景使用了单缓冲,并且需要 glFlush 来刷新管道。


推荐阅读