本文主要记录个人对OpenGL里FBO的理解,附上测试事例
测试源码: github
FBO : Frame Buffer Object, 是一个存储一帧数据的容器。
原理这里不介绍,(主要我也没怎么看懂),使用FBO的步骤:
- 使用FBO的步骤
- 创建 glGenFramebuffers()
- 绑定 glBindFramebuffer()
- (这里使用绑定texture2D), glFramebufferTexture2D()把一幅纹理图像关联到一个FBO
- 检查FBO状态 glCheckFramebufferStatus()
这里使用的FBO与Texture一起绑定使用,OpenGL的绘制是如果我们绑定了Framebuffer即glBindFramebuffer(),openGL的绘制内容会绘制到framebuffer里,绑定framebuffer和texture,是为了通过绑定的texture从frambuffer里拿数据
基本生成frambuffer和绑定texture代码:
int[] frameBuffer = new int[1];
int[] frameBufferTexture = new int[1];
// generate frame buffer
GLES20.glGenFramebuffers(1, frameBuffer, 0);
GLES20.glBindFramebuffer(GLES20.GL_FRAMEBUFFER, frameBuffer[0]);
// generate texture
GLES20.glGenTextures(1, frameBufferTexture, 0);
GLES20

本文深入探讨了OpenGL中的Frame Buffer Object(FBO)概念,通过一个测试实例展示了FBO的使用步骤,包括创建、绑定和检查状态。代码示例比较了不同方案的性能,显示了FBO在提升效率方面的作用。FBO用于缓存OpenGL的绘制结果,并通过绑定的textureId方便后续处理。


被折叠的 条评论
为什么被折叠?



