我正在对一个framebuffer
对象进行两次模糊处理。为了确保在 中FBO
,整个场景都被我试图模糊的图像覆盖。这是过程。
- 我已经设置了
FBO
需要模糊的图像尺寸。 我正在
Orthographic Projection
使用以下函数(称为 assetupOrtho(FBO's dimensions)
)设置一个:glViewport(0, 0, w, h) glMatrixMode(GL_PROJECTION) glLoadIdentity() glOrtho(0,1,0,1,-1,1) glMatrixMode(GL_MODELVIEW) glLoadIdentity()
- 使用此投影绘制到
FBO
。解除绑定FBO
(回到屏幕)。 Perspective View
通过调用setupPerspective(window's dimensions)
并将glOrtho
上面的内容替换为来切换到glFrustum
。
如果我绘制简单的白色四边形,则视图切换按预期工作。一个四边形正在绘制,Orthographic Projection
另一个正在绘制中Perspective View
。现在从FBO
(let id be RENDEREDTEXTURE
) 获取渲染纹理。
RENDEREDTEXTURE
如果我在Orthographic Projection
我的主场景中绑定,它会显示模糊的图像。如果我将它绑定到Perspective View
我的主场景中,之前可见的白色四边形(在 中绘制Perspective View
)就会消失。
解决方案:作为答案发布。
注意:使用纹理时永远不要忘记 MIPMAP 生成。
这里可能是什么问题?
请建议任何替代方法,以便在 中FBO
,只有我要处理的图像可见(为此我进行了正交投影),并且在主场景中,处理后的图像就像从图像文件加载的任何其他纹理一样.