我可以轻松地将场景渲染到纹理并将该纹理映射回帧缓冲区以进行屏幕显示。但是,如果我想将纹理重新映射到自身上以使其模糊(例如,在新位置的四分之一不透明度),该怎么办?这可能吗?
我这样做的方法就是启用纹理:
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);
(显然省略了一些代码)
这个想法有什么明显的错误吗?我是个白痴吗?
答案 0 :(得分:5)
不,你不能将纹理写入相同的纹理,这会触发未定义的行为。
但是你可以使用一种名为Ping-Pong渲染的技术,所以你将操作的结果绘制到另一个纹理中,如果你需要做更多的处理,你可以将结果写入第一个纹理。