计算机图形学概念/输出空间/颜色
颜色是我们日常生活中最自然的元素之一,但很难描述。我们识别并命名某些广泛的颜色类别,比如“蓝色”和“黄色”,但很难将颜色的概念形式化,这样你就可以观察到一件特定颜色的衬衫,然后把它描述给你的朋友,让他们对颜色有完全相同的理解。
然而,要使计算机图形学工作,我们必须能够提出这样的描述。事实上,我们必须更进一步,为颜色创建一种编码,以便我们能够以数字形式用数字表示它们。幸运的是,光本身就适合这种编码。目前,对颜色的完整处理,包括它所代表的光的特性、眼睛感知它的方式以及它不同表示的范围并不重要(有关更详细的信息,请参阅下面的有用链接)。
就我们的目的而言,足以注意到,我们大多数需要处理的颜色可以表示为红、绿、蓝强度的组合。也就是说,我们将用三个值来表示一种颜色:给定颜色中红光的强度、给定颜色中蓝光的强度以及给定颜色中绿光的强度。我们将每个组成颜色称为通道,并将这种颜色表示系统称为RGB颜色空间(或简称为RGB)。
如果我们为每种颜色分配一个字节,那么我们可以为每个组成颜色表示 256 个不同的强度级别。在这个方案中,当给定值达到最大值(255)时,这是我们可以表示的最亮、最强的颜色,而当它达到最小值(0)时,这是我们可以拥有的最低颜色,它有助于形成最终颜色。
不是组成颜色的颜色可以通过组成颜色的正确组合来表示。例如,我们可以通过将红色和蓝色分量设置为高水平,同时保持绿色分量较低或等于零来表示紫色。
在计算机图形学中,要理解的一件非常重要的事情是,当所有三个颜色分量都等于同一个值时,产生的颜色是灰色。具体来说,当所有三个分量都处于最大级别(255,255,255)时,我们感知到的组合颜色是白色,而当所有三个分量都处于最小级别(0,0,0)时,我们感知到的组合颜色是黑色。
还值得注意的是,我们选择每个颜色通道一个字节是相当随意的。其他表示系统使用每个颜色通道更少或更多的可能值。每个颜色通道有三个颜色通道,每个通道有 256 个可能值,这将产生大约 1670 万种颜色,但实际上我们感知到的颜色要多得多。例如,如果我们必须表示从黑色到亮红色的平滑过渡(例如,由于阴影),我们会发现,如果我们真的关心图像质量,只有 256 种离散颜色,两种颜色之间的颜色会有明显的“条带”。因此,电影制作中的计算机图形学专业人员通常允许每个三个颜色通道有数万个可能的值。在频谱的另一端,为了让老式计算机更有效地运行,程序员有时只允许红色、绿色和蓝色分量有 32 个可能的值。即使只有几千种颜色可供选择,也能产生令人惊讶的逼真的图像。