帧缓冲区

OpenGL ES 3.0 帧缓冲区对象基础知识

我们知道,在应用程序调用任何的OpenGL ES命令之前,需要首先创建一个渲染上下文和绘图表面,并使之成为现行上下文和表面,之前在渲染的时候,其实一直使用的是原生窗口系统(比如EAGL,GLFW)提供的渲染上下文和绘图表面(即帧缓冲区)。

一般情况下,我们只需要系统提供的帧缓冲区作为绘图表面,但是又有些特殊情况,比如阴影贴图、动态反射、处理后特效等需要渲染到纹理(Render To Texture/RTT)操作的,如果使用系统提供的帧缓冲区,效率会比较低低下。

对于系统提供的帧缓冲区,如果要实现RTT,有下面两种方式:

1.直接将帧缓冲区的对应区域赋值到纹理来实现RTT。借助glCopyTexImage2D/glCopyTexSubImage2D来从帧缓冲区复制颜色数据到纹理缓冲区,因为需要复制数据,所以操作比较慢,而且受限于EGLSurface的宽高尺寸,纹理的尺寸只能小于等于帧缓冲区尺寸大小。

同步内容
--电子创新网--
粤ICP备12070055号