对位平面和帧缓存的理解(转载)

转自:http://www.cnblogs.com/mumuliang/archive/2011/04/28/2031697.html

一块水平放置的屏幕,其一个像素的颜色值需要用32位2进制数字(4字节)来表示

想象一下这个32位的存储空间是竖直方向上的32个格子。。。

那么。。

我们可以用煮酸菜鱼时片鱼片儿的方法把这个屏幕立方体片成32个片,

其中的一片就叫位平面。一个bitplane。它的大小就是屏幕的宽*高。

帧缓存的大小呢,可以理解为第三副图那个屏幕立方体的体积,即这个屏幕立方体的格子总数。

要注意的是位平面在帧缓存中的组织方式。

到底是以一个像素的颜色值为单位连续存储(即先存储一像素完整的32位的颜色值,接着再存下一像素的32位颜色值)?(1)

还是以一个位平面为单位连续存储(即4个连续的字节代表的不是一个像素的32位颜色值,而是32个连续像素在某个位平面上的值)? (2)

这不是确定的。貌似windows下的16色屏幕就是以(2)的方式在组织帧缓存。

(2011/6/15 update:一般情况下,帧缓存由window系统生成并管理,供OpenGL使用。)

并且帧缓存的存储方式也并不仅限以上两种。

尾记:起因是OpenGL红宝书中的一段话。

Information about the pixels (for instance, what color they’re supposed to be) is organized in memory into bitplanes. A bitplane is an area of memory(容易理解成位平面是物理连续的,wrong!) that holds one bit of information for every pixel on the screen; the bit might indicate how red a particular pixel is supposed to be (这bit描述了这个像素到底有多红,实际上是一定程度上描述了,比如,这个位面是红色数据字节的最高位,那么它描述的程度是比较大的了。描述它多红的位面很可能不只一个。), for example. The bitplanes are themselves organized into a framebuffer(很容易误解位面是frambuffer组织的最小单位,其实未必。), which holds all the information that the graphics display needs to control the color and intensity of all the pixels on the screen.

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值