【发布时间】:2010-07-14 00:31:43
【问题描述】:
我可以轻松地将场景渲染为纹理并将该纹理映射回帧缓冲区以进行屏幕显示。但是,如果我想将纹理映射回自身以使其模糊(例如,在新位置的四分之一不透明度)。这可能吗?
我所做的只是启用纹理:
glEnable(GL_TEXTURE_2D);
glBindTexture(GL_TEXTURE_2D, color_tex);
然后画到它:
glVertexPointer(2, GL_FLOAT, 0, sv);
glTexCoordPointer(2, GL_FLOAT, 0, tcb1);
glColor4f (1.0f,1.0f,1.0f,0.25f);
glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);
(显然省略了一些代码)
这个想法有什么明显的错误吗?我是白痴吗?
【问题讨论】:
-
您想使用 FBO 将纹理渲染成相同的纹理,但需要进行一些处理?
-
基本上。再次将纹理分层,但不透明度会发生变化。我想我可能需要将纹理写入另一个 FBO,然后将其复制回来。对吗?
-
如果您使用的是 iOS 6.0 或更高版本,则可以访问 gl_LastFragData 变量以读取新片段着色器通道中先前渲染的状态。它基本上是“乒乓球”,但没有改变 2 diff 渲染的纹理目标。