查看完整版本: [Maya]Maya数字色彩基础[转]

黑不白 2007-2-10 01:53

[Maya]Maya数字色彩基础[转]

自从人类尝试在电脑上用最理性的数字来表示最感性的色彩后,就一直在寻求用最优秀的数学方式来描述色彩。目前常用的描述方式有RGB、CMYK、HSV、Lab等几种。在Maya中只使用了RGB与HSV两种。
RGB 是物理上对颜色的表述方法,即所有颜色的颜色都最终可分解成红(Red)、绿(Green)、蓝(Blue)三种原色。这三种原色根据不同的强弱混合成一起,便可形成各种各样的颜色。这种对颜色的表述方式简单、直接,非常适合计算机对色彩的表过,我们所见到的彩色显示设备就是根据这个原理来显示色彩的 (CMYK也是根据RGB原理而得到的,只是对颜色作了反向处理,适用于对印刷品等非自发光介质的颜色表述)。
但在美术创作时,艺术家对色彩的表述往往是“这个颜色灰了、这里还可以提亮点、它的暗部还可以偏暖一点”之类的话。因此,一种适于美术上对色彩解释的表述方式便出现了,这就是HSV(有些地方也叫HSL),把色彩分解为色相(Hue)、饱和度(Saturation)、明度(Value或Lightness)这三要素,因为这三要素都是可由人的眼睛所直接观察到的,所以这种表述方式更容易为人所理解。
[img]http://bbs.cgpower.com.cn/upload/2007/01/29/20636228.jpg[/img]
如我们要用数字来表述一个看到的颜色,用RGB的方式就是红多少值,绿多少值,蓝多少值。用HSV就可以先用一个数值表述看到的颜色的色相,如颜色属于红色以0来表示,属于绿色以0.5来表示,而中间的黄色则可以推断出是0.25;其次再以一个值来表示颜色的亮度;最后再以一个数值来表示它的饱合度。虽然这两种表述方式不同,但值得庆幸的是,在Maya中可以在这两种表述方式之间互转。
[img]http://bbs.cgpower.com.cn/upload/2007/01/29/96183234.jpg[/img]
[img]http://bbs.cgpower.com.cn/upload/2007/01/29/64127691.jpg[/img]
这一步来说说色深
在计算机中一个字节 (byte)有8个位(bit)可以表述256(2^8)个数值,即0~255。如果在RGB方式下以一个字节来表示一种颜色通道,那么总的显示颜色可以达到255x255x255=1,658万,这样丰富的颜色足以让人的肉眼分辨不出相邻两种颜色之间的过渡,完全达到了再现真实世界颜色的需要。由于以一个字节来表示一个颜色通道即能达到需求,又不浪费存储空间,所以以一个字节来表示一个颜色通道的方式被广泛地应用到了计算机的各个方面。如,现在的绝大多数显示器能显示的颜色都是16M种,在Windwos中设置桌面颜色时,因为还增加了一个8位的Alpha通道,所以表示的是色深是32位(24位颜色通道+8位Alpha通道)。现在的绝大多数图像存储格式也是只能以一个字节来存储一个颜色通道,这样的图像叫8位图像。8位的图像用于显示是足够了,但是如果作为影视制作中的素材,在进行色彩的调节时,有时会显得色域不够宽。如把一张图片的对比度加大50%,每个色彩通道能表示的颜色便为128级这时人眼便能发现色阶的存在。
为了解决这个问题,16位色深的图像格式便开始在影视专业领域流行开来。16位色深是以两个字节来表示一个颜色通道。可以表示(2^16^3)274,941,996M种颜色。这样宽广的色域足以应付所有的需要。但因为这种色深的图片所占用的存储空间极大,并且对机器要求也极高,所以往往只在电影级的高成本项目中使用。但有意思的是,我们能接触到的的显示器基本都是只能显示8位色深,我们在显示器上所能看到的是从16位色深压缩到8位色深的图像,所以如果对16位的图片调亮后,我们在显示器上所看到的效果和调亮8位图差别并不大,但在电影院放映时则会有明显的不同。
0~1之间的色彩
在很多图形处理软件中,RGB的颜色通道值都以整数来表示,一般都为0~255的整数。但在 Maya中,无论是HSV还是RGB都是以浮点数来表示,最小值是0,最大值是1 (RGB也可以选择用0~255来表示,但不推荐),我们知道浮点数的精度远远高于整数。在对色彩进行计算时,会提高不少精度。同时,0~1只是一个比值关系,只要乘上放大系数,即可以套用于任何色深的图像。结合上面的色深知道,我们应该可以想到maya内部计算色彩时是采用浮点数,在0~1之间进行计算的,输出到显示器上时,对颜色x255,即变为0~255。而要输出到16位图像格式,则x65535。
Maya计算色彩时也不仅仅限于0~1之间,也可以小于0大于1.但如果在最终输出到图像文件时,低于0和高于1的值都被会截掉,归为0和1。因为0表示黑色,比黑色亮度更低的颜色是不存在的,因此也只能是黑色,1表示白色,比白色亮度更高的颜色也是不存在的,也只能是白色。在在中间进行数学计算时,小于0和大于1是允许的,不会被截掉,如一个颜色的值是0.8,将亮度提高0.4,即为1.2,再对亮度降50%,最终的结果将是0.6。
Maya中很多数值都是以0~1作范围的,如Ramp,Blend,Facing Ration等。因此采用0~1也很能容易地与其它的数据进行交换。
页: [1]
查看完整版本: [Maya]Maya数字色彩基础[转]
查看完整版本: [Maya]Maya数字色彩基础[转]