码迷,mamicode.com
首页 > 其他好文 > 详细

计算机图形学(三)_图元的属性_2_颜色和灰度

时间:2016-06-18 11:37:31      阅读:216      评论:0      收藏:0      [点我收藏+]

标签:

颜色和灰度

       颜色是所有图元的一个基本属性。用户可以选择多种颜色,依赖于特定系统的能力和设计目标。颜色可用数值指定也可以从菜单或显示的标尺中选择。对于视频监视器而言,这些颜色编码转换成控制电子束的强度等级。在彩色绘图仪中,颜色码可用来控制喷墨量或笔的选择。

RGB颜色分量

       在彩色光栅系统中,可选用的颜色数量依赖于帧缓存中提供的存储容量。颜色信息可用两种方式存储在帧缓存中:直接在帧缓存中存储RGB编码,或将颜色码存入一个独立的表中并在像素位置存储指向颜色表表项的索引。使用直接存储方案时,当应用程序指定一特定颜色编码后,该颜色信息被放入将用该颜色显示的输出图元的组成像素位置的帧缓存中。表4.1给出了使用每像素3位的这种方案可以提供的有限颜色。每一位置的3位值用来控制RGB监视器相应的电子枪的强度等级(此时,开或并)。最左边一位控制红枪,中间位控制绿枪,而最右边的一位控制蓝枪。在帧缓存中增加一些位可增加可选择的颜色数量。每像素有6位时,每支枪可用2位来控制。这可使三支颜色枪的每支得到4个不同强度的控制,而使每个屏幕像素有64种颜色可选用。随着提供的颜色数量的增加,帧缓存的容量要求也增加。1024 x 1024分辨率的全彩色(每像素24位)RGB系统需要3 MB的帧缓存容量。
       颜色表是一种不需大帧缓存而为用户扩充颜色能力的替代方法。这种方法曾经是非常重要的考虑方式。但是现在的硬件成本已大幅下降,甚至在低端的个人计算机系统中扩充颜色能力也已相当普遍。因此,我们的多数例子中将简单地假定RGB编码直接存储在帧缓存中。
技术分享

颜色表
        图4.1给出了在颜色查找表(color lookup table)或颜色表(color map)中存储颜色值的一种可能方案。有时颜色表还称为视频查找表(video lookup table )。这时帧缓存中的值用做指向颜色表的索引。在本例中,每一像素可引用256个表位置中的任意一个,而每一表项使用24位来指定一个RGB颜色。十六进制颜色码0x0821使像素位置(x, y)处显示绿蓝混合色。使用这种特殊的查找表的系统让用户可从近17oo万种颜色中任选256种颜色同时显示。与全彩色系统相比,这种方案减少了可同时显示的颜色量,但也使帧缓存容量减少到只要1MB。处理反走样等特殊的绘制应用及有多个输出设备时有时需要多个颜色表。
        颜色表用于许多应用中,提供了“合理”数量的可同时显示的颜色而不要求大容量帧缓存。在多数应用中,256或512种颜色对显示一幅图是足够的。另外,表项内容可以在任何时候进行修改,使用户可以很容易地试验设计、场景和图表中的不同颜色组合,而不需改变图形数据结构中属性的设定。当颜色表中某项的值改变时,所有使用该颜色索引的像素都将改成新颜色。如果不使用颜色表,则只能通过在帧缓存位置存入新颜色来修改某些像素的颜色。类似地,数据可视化应用可以将某些物理量(如能量的值)存入帧缓存,并使用查找表试验各种颜色组合而不必改变像素值。在可视化和图像处理应用中,颜色表是很方便的工具,用来设定阈值、使像素值低于指定阈值时均显示同一颜色。
技术分享
灰度
    由于计算机图形系统都具有彩色功能,我们可以在应用程序中使用RGB颜色函数来设定灰色程度或灰度(gray scale )。当RGB函数中指定相同量的红色、绿色和蓝色时,结果是某种程度的灰色。靠近0的值生成暗灰色,而靠近1的值生成亮灰色。灰度显示方法的应用包括增强黑白照片和产生可视化效果。

其他颜色参数

    除了RGB颜色描述,计算机图形应用还使用一些其他的三分量颜色描述。例如,打印机输出颜色用青色、品红和黄色三分量来描述,而颜色接口有时用亮和暗来选择颜色。通常意义下的颜色和光是一种复杂现象,在光学、辐射度和心理学中提出了许多术语及概念,用来描述光源和光照效果的各个方面。在物理上,一种颜色可以描述为有一定频率范围和能量分布的电磁辐射,但也涉及我们对颜色的感觉。因此,我们使用物理术语强度(intensity)来量化一个时间段中在特定方向的光能辐射,而用心理学术语亮度来描述感觉光亮的特征。

计算机图形学(三)_图元的属性_2_颜色和灰度

标签:

原文地址:http://blog.csdn.net/heyuchang666/article/details/51702490

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!