我想在OpenGL中渲染一个纹理,但是逐渐改变纹理.
这是我想象的过程:
有没有更好的方法来做到这一点?
你有两个选择.如果你的硬件不支持FBO,你必须像你写的一样.要绘制原始纹理,只需使用[0,1]纹理坐标绘制屏幕大小的四边形.确保使用GL_NEAREST过滤模式和GL_CLAMP_TO_EDGE包装模式,以获得图像的精确副本.然后在其上绘制增量更改.完成后,您可以通过以下方式从帧缓冲区获取纹理glCopyTexSubImage2D.
当您的硬件支持FBO时,您可以获得更高的效率.在这种情况下,将纹理附加到FBO并渲染到其中.这样,您可以直接渲染到纹理中,无需复制.您也不需要复制原始纹理,只是不清除帧缓冲区(纹理),并在前一个数据的顶部渲染.阅读有关framebuffer对象的一些介绍性资料以获取更多信息.