我试图将2D场景渲染到屏幕外的FrameBuffer对象中,并使用glFrameBufferTexture2D函数将帧用作纹理来对多维数据集进行纹理处理。
2D场景在一个上下文中渲染,纹理在同一线程中在另一个上下文中使用。
问题是当我对立方体进行纹理处理时,alpha通道似乎不正确。我使用apitrace来检查纹理,并且纹理具有正确的alpha值,并且着色器仅为out_color = texture(in_texture, uv_coords)
如果我将屏幕外的帧缓冲区颜色附加到任何东西,无论是它本身还是帧缓冲区0(输出窗口),问题就解决了。
我想知道为什么会发生这种情况,以及如何解决此问题而又无需关闭帧缓冲区。
答案 0 :(得分:0)
发现我为静态2D场景使用了单个缓冲,并且需要使用glFlush刷新管道。