Android OpenGL ES 开发教程(23):FrameBuffer
来源:互联网 发布:团队协作工具 知乎 编辑:程序博客网 时间:2024/06/12 01:38
OpenGL ES 中的FrameBuffer 指的是存储像素的内存空间。对应一个二维图像,如果屏幕分辨率为1280X1024 ,如果屏幕支持24位真彩色 (RGB),则存储这个屏幕区域的内存至少需要1024X1280X3个字节。此外如果需要支持透明度(Alpha),则一个像素需要4个字节。
对应3D图像来说,上面存储显示颜色的Buffer称为Color Buffer,除Color Buffer之外,还需要存储每个像素和View Point之间的距离,OpenGL ES中使用Depth Buffer 存储像素与眼睛(eye 或是view point)的距离,Depth Buffer也可称为z Buffer.
此外 OpenGL ES 还定义了一个称为遮罩(Stencil) Buffer,可以将屏幕显示局限在某个由Stencil Buffer 定义的区域,在日常生活中常见的Stencil Buffer 示例时使用纸质模板在墙上或是T桖上印刷文字或是图像:
在OpenGL ES 允许配置Color Buffer 中 R,G,B,A 的颜色位数,Depth Buffer 的位数,以及Stencil Buffer的位数:
GL_BLUE_BITS, GL_ALPHA_BITSNumber of bits per R, G, B, or A component in the color buffersGL_DEPTH_BITSNumber of bits per pixel in the depth bufferGL_STENCIL_BITSNumber of bits per pixel in the stencil buffer
在最终OpenGL ES写入这些Buffer时,OpenGL ES提供一些Mask 函数可以控制Color Buffer 中RGBA通道,是否允许写入Depth Buffer 等,这些Mask 函数可以打开或是关闭某个通道,只有通道打开后,对应的分量才会写入指定Buffer,比如你可以关闭红色通道,这样最后写道Color Buffer中就不含有红色。这些函数有 glColorMask, glDepthMask, glStencilMask。这些在后面有更详细的介绍。
- Android OpenGL ES 开发教程(23):FrameBuffer
- Android OpenGL ES 开发教程(23):FrameBuffer
- Android OpenGL ES 开发教程(2):关于OpenGL ES
- Android OpenGL ES 开发教程(3):OpenGL ES管道(Pipeline)
- Android OpenGL ES 开发教程(2):关于OpenGL ES
- Android OpenGL ES 开发教程(3):OpenGL ES管道(Pipeline)
- Android OpenGL ES 开发教程(2):关于OpenGL ES
- Android OpenGL ES 开发教程(3):OpenGL ES管道(Pipeline)
- Android开发之OpenGL+ES教程
- Android OpenGL ES 简明开发教程
- Android OpenGL ES 简明开发教程
- Android开发之OpenGL+ES教程
- Android OpenGL ES 简明开发教程
- Android OpenGL ES 开发教程(1):导言
- Android OpenGL ES 开发教程(6):GLSurfaceView
- Android OpenGL ES 开发教程(6):GLSurfaceView
- Android OpenGL ES 简明开发教程小结
- Android OpenGL ES 开发教程(1):导言
- 黑马程序员 Java基础 10
- JavaScript对浏览器的检测
- 数字拼图问题(八数码)求解过程动态演示
- 生成树计数
- Android ListView中图片的异步加载显示
- Android OpenGL ES 开发教程(23):FrameBuffer
- 在Android中替换掉原有的HOME,实现自主的控制Launcher
- AT&T汇编与GCC内嵌汇编语法(转载)
- Application failed codesign verification警告
- 递归算法
- linux网络程序编程
- 函数替换 oc的运行时
- 容器
- Intent原理分析