在计算光照的时候 眼睛能看到的颜色是 物体的颜色的RGB向量乘上光源的RGB向量 diffuse*ColorOfLight 请问这背后的物理意义是什么?


在 Cg 的逐像素著色的最后,每一个颜色值相加和每一个颜色相乘从数学角度有什么差别??

www.zhihu.com图标


别说相乘的物理意义了,颜色值本身都未必有物理意义,完全取决于你在拿它当什么用。


自然光的光谱分布是连续的,咋存一个东东的颜色呢?有一天人们发现自己的眼睛居然只有三种锥状细胞来感受光芒!纵使世界繁花似锦,视网膜也只能把这些型号转换成三种,所以没必要用连续的一个光谱分布函数去记录一个颜色,用rgb就蛮好的了。但是贪心的人类不满足于记录这个世界的五彩缤纷,还tm要算,那么一束光照到一个东东,简单地讲就是那束光的光谱分布函数内积上那个东东的反射率函数,但是光谱是连续的,做内积算不过来呀!那索性想起之前记录这个世界的老朋友rgb来算一下。

稍微不民科的说法就是:将两个函数投影到同一个颜色空间(rgb),用向量的矢量积来近似计算函数的内积。


这时候就别向量了啊。这是纯颜色混合 。没有物理意义。纯计算


这种 Hadamard product 只是颜色积分公式的近似而已,只有在 [公式] (物体的光谱反射比在各波长上恒为一常数)时才成立。

大多数都是搞 graphics 在这么用,少部分搞 CV 的也这么用,搞 color science 的没人会这么用。


这个不是点积 (点积的结果是一个值,而这里的结果仍然是颜色)

物体的贴图颜色 可以理解为 吸光的比率

1代表完全不吸 0代表完全吸收

完全吸收意味著这个频率的光波不可能经过物体后再射入你的眼睛

表现为物体不可能具有这个漫反射颜色(射入你眼睛的光线才有颜色)


diffuse * colorOfLight 计算的是(漫反射能力)*(光源强度),其中漫反射能力和光源强度均分为 r,g,b 三个分量表示了;看上去都有颜色,但它们的物理意义可不一样


推荐阅读:
相关文章