首页 > 代码库 > ActionScript3游戏中的图像编程(连载十四)

ActionScript3游戏中的图像编程(连载十四)

1.3 HSB模式及其与RGB间的转换

      从上两节的讨论可知,RGB模式是一个数理性质较强的概念,对于大部分色彩来说,您很难通过RGB的数值得知它代表什么颜色,以及它的明暗和鲜艳程度。

      《忆江南》的景观之所以能直接用最简单的三原色来渲染,完全是因为他所描绘的江南美景足够的清澈纯净,而且颜色的种类较少。

      实际上,大多数情况下,颜色的种类远不止红绿蓝三种,例如北宋的苏东坡在以歌咏残秋季节景物为主题的《赠刘景文》一诗中就有这样的一句:“一年好景君须记,最是橙黄桔绿时。”

      类似的诗句举不胜举,例如韩愈的《晚春》还提到了紫色:“草树知春不久归,百般红紫斗芳菲。”

      从以上的例子不难看出,单凭红绿蓝三种颜色远不能在感官认知上对万千世界中丰富的色彩给出较为准确的定义。此外,即使确定了颜色种类,颜色的明暗或者饱和程度也需要加以描述。“绿树阴浓夏日长,楼台倒影入池塘。”(高骈《山亭夏日》)中的“阴浓”就从亮度方面对绿色的深度进行了修饰。

      作为21世纪的文艺程序员,我们也要在感性与理性之间,寻找出属于自己的一片天。HSB模式就帮了我们很大的忙。

      HSB通过H(Hue,色相),S(Saturation,饱和度)和B(Brightless,亮度)来表达色彩的构成,与感官认知相当地吻合,同时让我们感到欣慰的是,HSB模型的数学计算并没有想象中的复杂,而且很容易地转换到计算机可以识别的RGB模式中,技术与艺术再次擦出闪耀的火花!

      我不希望像其他介绍ActionScript乃至美术的书一样寥寥几句就带过HSB模式,或者直接把公式贴上来,毕竟这是百度一下你就知道的知识,直接搬过来也没啥意义可言了。所以,我会简单讲下自己的理解。当然,我也会贴出一些百度回来的内容,毕竟受篇幅所限,不可能面面俱到。