FBO,Frame Buffer Object,帧缓冲对象。默认情况下,我们的GLSurfaceView中绘制的结果会显示到屏幕上,然而实际中很多情况不需要渲染到屏幕上,这时候用FBO可以实现这个需求。FBO可以让我们的渲染不渲染到屏幕上,而是渲染到离屏Buffer中。 1、创建离屏渲染FBO 2、创建一个普通纹理 创建了一个GL_TEXTURE_2D的2D纹理 3、设置GL_TEXTURE_2D的输入输出格式 4、将前面生成的FBO和Texture绑定 5、在FBO上绘制 6、将FBO内容绘制的屏幕上 在上面曾经将FBO和一个GL_TEXTURE_2D的2D纹理绑定,现在直接将这个2D纹理利用GL_TEXTURE_2D的格式绘制出来。 整个过程: 生成FBO --> 绑定GL_TEXTURE_2D到FBO --> 相机绘制过程 绑定FBO glBindFramebuffer --> 绑定相机的Surface TextureID GLES20.glBindTexture(GLES11Ext.GL_TEXTURE_EXTERNAL_OES, textureId) --> 将绑定GL_TEXTURE_2D到FBO的textureID传递出去 -->将这个传递过来的纹理利用GL_TEXTURE_2D来渲染