在图形中,我们使用RGB和其他颜色空间作为光波长全光谱的近似值。总体上,这显然效果很好,但是在日常生活中可能遇到任何合理的普通对象/材质/现象,由于发射/反射/吸收光谱复杂,RGB渲染无法很好地表现其外观当当前答案主要集中在给定RGB色域之外的颜色时,我还想知道是否存在某些示例,例如,当某个对象的颜色出现“错误”由于光源光谱和对象反射光谱之间的相互作用,因此以RGB渲染。换句话说,在这种情况下,光谱渲染器可以为您提供更正确的结果。它最初是由内森·里德(Nathan Reed)提出的。

评论

我记得我前一段时间读过的这篇论文。作者将光谱和RGB渲染结果与不同光源进行了比较。不幸的是,比较是在颜色图表上完成的,因此我不确定差异对现实生活场景有多大影响。 cg.cs.uni-bonn.de/en/publications/paper-details / ...

啤酒定律(通过透明物体在远处吸收颜色)很难用rgb建模。

@trichoplax很抱歉发出噪音!

@luserdroog感谢您的关注:)即使这个问题仅涉及材料,我们也可以处理与色彩空间有关的新问题...

#1 楼

有多种不同类型的限制要考虑。

光线的路径取决于其波长的影响

这些是一类光谱的影响需要渲染,并且在Benedikt Bitterli的答案中已经给出了许多有趣的示例。一个简单的例子是一个棱镜,它将白光分成光谱,产生彩虹色。不同波长的光线在通过棱镜时会以不同的角度折射,从而导致撞击棱镜后面的壁的光被分解成其组成颜色。

这意味着在现实生活中,单色的光通过棱镜发出的黄光将导致发出黄光,但是发出接近黄色的红光和绿光的混合光会导致红光和绿光分开出现。仅使用3种原色进行渲染时,白光将仅拆分为这三种颜色,从而给出看起来不连续的彩虹效果,而根本不应该拆分的单色光将拆分为近似的原色分量。可以通过使用更多的原色来改善白光的分离,但是这仍将提供不连续性,并且单色光的结果仍将被分离,尽管范围更窄。为了获得准确的结果,必须采样连续光谱,并根据模拟的光源分配波长。

无法在单个静止图像中捕获的表面效果

彩虹色,例如,每只眼睛显示不同的颜色,因此静止图像看起来与原始对象不会相同。起初您可能不会注意到很多日常示例。即使它们从远处看起来是黑色或灰色,许多普通鸟也有虹彩的羽毛。关闭它们令人惊讶地五颜六色。

仅使用3种原色的渲染器将无法根据此效果所需的波长产生光的扩散。光谱渲染器可以正确模拟扩展,但是仍无法在单个图像中捕获完整效果。即使是2d的照片也无法正确捕获,而虹彩物体的3d照片会产生闪烁效果,因为对应于左眼和右眼的照片的颜色会有所不同。这是2d图像的限制,而不是RGB颜色空间本身。但是,即使在3d图像中,由于RGB无法显示单色(如下所述),虹彩对象中也会存在无法正确显示的颜色。

人眼可以检测到的颜色不能在RGB中显示的图像

RGB历史上与设备有关,因此在平台之间不可靠。有独立于设备的感知上统一的改进,例如色彩空间Lab,但这些仍然是三色的(具有3个分量)。目前尚不清楚为什么三个成分不足以显示三色眼睛可以感知的所有颜色,但是本文对此进行了很好的解释。从第7页开始:例如,使用现代的激光显示系统,其单色原色分别为635 nm(红色),532 nm(绿色)和447 nm(蓝色),看看我们是否可以模拟580 nm(橙色)单色光的感知。由于单色橙色刺激会激发绿色和红色锥体,因此绿色和红色基色都需要贡献,而蓝色基色则不需要贡献。问题在于,绿色的原色也会激发蓝色的圆锥,因此无法精确复制橙色的刺激


人眼视锥细胞敏感性图(也在第7页)显示了重叠的宽度,并有助于形象地解释该解释。我在此处包括了Wikipedia的类似图表:(单击该图表可查看Wikipedia的位置)



简而言之,可以被人眼的三个不同的视锥细胞(颜色传感器)分别拾取,意味着可以将单色与近似的原色混合物区分开,因此混合原色永远无法准确显示所有单色。 >
这种差异通常在日常生活中并不明显,因为我们周围的大多数环境都会在很宽的频率范围内发出或反射光,而不是单色光。但是,钠灯是一个明显的例外。如果您生活在使用这些橙黄色路灯的世界中,那么发出的光是单色的,看起来与打印的照片或屏幕上的图像会有细微的差别。根据上面引用的示例,钠光的波长恰好是580 nm。如果您不住在有钠路灯的地方,则可以通过将细碎的食用盐(氯化钠)撒在火焰上来看到相同的单波长光。闪烁的黄点不能准确地捕获在胶片上或在屏幕上显示。无论选择哪种三种原色,总会有一系列无法显示的单色。

请注意,此限制同样适用于混合3种原色的涂料,在相机胶片上使用3种光敏化学物质或使用具有3种不同颜色传感器的数码相机或具有3种不同原色滤镜的单个传感器进行拍照。这不仅是一个数字问题,而且不仅限于RGB颜色空间。甚至Lab色彩空间及其变体所引入的改进也无法恢复丢失的颜色。 >如果颜色鲜艳的亚光表面靠近白色亚光表面,则白色表面会显示另一表面的某些颜色。使用纯红色,绿色和蓝色分量可以很好地对此建模。赋予着色表面颜色的红色,绿色和蓝色相同组合可以反射白色表面并再次显示该颜色。但是,这仅在第二个表面为白色时有效。如果第二个表面也被着色,那么在某些情况下,渗色将是不准确的。一个反射黄色附近的窄波长范围。另一个反射红色和绿色之间的宽波长范围,因此看起来也呈黄色。在现实生活中,一个表面上显示的光由于另一表面而不会对称。由于进入波长的窄范围都在较宽范围内,因此从另一表面到达较宽波长范围表面的大多数光将再次被反射。但是,从另一波长到达窄波长范围表面的大多数光将在窄范围之外,并且不会被反射。在RGB渲染器中,两个表面都将建模为单色红色和单色绿色的混合,而反射光没有差异。

这是一个极端的例子,其中的差异会立即被眼睛察觉,但在大多数图像中至少会有细微的差异,其中包括色斑。 br />
joojaa的答案描述了雪对紫外线的吸收,然后被重新发射为可见光。我以前从未听说过雪的发生(令人沮丧的是,我一直找不到任何证据来支持它-尽管它可以解释为什么雪“比白色更白”)。但是,有大量的证据表明,其他各种材料也会发生这种情况,其中一些会添加到衣物洗涤剂和纸张中,从而产生更加明亮的白色。这允许从一个表面射出的总可见光大于该表面接收到的总可见光,这再次不能仅使用RGB很好地建模。如果您想了解更多,搜索的术语是荧光。

具有三种以上原色的眼睛

有些动物的三种以上视锥细胞,使他们能够感知3种以上的原色。例如,许多鸟类,昆虫和鱼类都是四色体,可感知四种原色。有些甚至是五色差,感知到五种。这些生物可以看到的颜色范围使仅使用RGB可以显示的范围相形见war。远远超出它们的是螳螂虾,它是十二色斑,可见基于12个不同视锥细胞的颜色。 RGB显示不会满足这些动物的需求。

但更严重的是,即使对于供人眼使用的图像,据信也有人四色体看到4种原色,也许有些人看到5或6种原色。数量足以使具有超过3种原色的显示器在商业上可行,但是如果将来能够更轻松地确定一个人可以看到多少种原色,则这可能会成为一种诱人的特性,使其在后代传播到整个人口中。因此,如果您希望自己的曾孙子欣赏您的工作,则可能需要使其与六色显示器兼容。要查看现实世界或RGB图像中没有的颜色,请查看Chimerical Colours ...

#2 楼

我相信用RGB无法忠实再现的最突出的光谱效应是色散,它是由具有不同光谱折射率的电介质引起的(通常用Sellmeier方程建模)。由波浪效应引起。在现实生活中时不时遇到的一个例子是薄膜干扰,它是由一个或多个彼此紧密叠置的反射表面(例如浮油,肥皂泡)引起的。有时可以观察到的另一种波效应是衍射,例如引起的。通过衍射光栅,这就是导致CD出现时髦现象的原因。

#3 楼

RGB之所以起作用,是因为这就是我们的感觉设备的工作方式。除了分散外,某些人造材料和昆虫尸体有时表面的色带非常紧密。这些可能会受益于广谱渲染。

但是,由于许多效果都是相当局部的,因此您常常可以摆脱使着色器工作异常的麻烦。这在反射和折射中不起作用,但没人会注意到。除非您进行一些物理模拟,否则它并不是什么大问题。但是,如果您设计光学器件,这可能会很麻烦。同样,这种效果通常可以通过着色器/特殊光源组来处理。

蝴蝶翅膀也是一种好奇心,因为它们可以操纵波的相位和入射光的形式。因此,如果您要对它们进行物理模拟,那么它就很重要。

光的偏振也是影响昆虫和水的重要因素。

#4 楼

只是为了补充上面的出色建议,我想到没有紫外线通道,荧光材料很难建模。

评论


$ \ begingroup $
这似乎是评论而不是答案。也许您可以详细说明为什么荧光材料依赖紫外线通道并提供一些参考?
$ \ endgroup $
–马丁·恩德(Martin Ender)
15年8月12日在9:35

$ \ begingroup $
我在帖子中提到了这一点,只是没有使用“荧光”一词。无论如何,这可以在着色器级别完成。
$ \ endgroup $
– joojaa
15年8月13日在5:35

$ \ begingroup $
@joojaa:对不起。如果有明显的按钮,我会删除我的帖子。不过,话虽如此,我还是想说您仍然需要在其他地方(而不仅仅是着色器)额外的通道来处理它,例如动态生成环境图。
$ \ endgroup $
–西蒙F
15年8月14日在8:50



$ \ begingroup $
删除或不删除它,对我来说也是一样。我希望您能对此进行扩展。只要您提供了更好的清晰度或新信息,支持证据就不会有错,而且所说的话也有所不同。
$ \ endgroup $
– joojaa
15年8月14日在9:19