文章摘要
物体颜色与光照颜色的相互作用遵循物理规律:物体只能反射其本身具有的颜色光。当光照颜色(RGB值)与物体颜色相乘时,只有两者共有的颜色通道才会产生可见结果(如红色物体×绿色光=黑色)。乘法运算精准模拟了"光有能量且物体能反射"才会显现颜色的自然现象。相比之下,加法等其他运算会导致不符合物理规律的结果。这种颜色相乘机制解释了为什么我们看到的物体颜色既取决于其反射特性,也受照明光源的影响。
1. 生活化比喻:彩色玻璃和灯光
想象一下,你有一块红色玻璃,你用一盏蓝色手电筒照它。你会看到什么颜色?
- 红色玻璃只能让红色的光通过,蓝色的光照上去,结果是黑的(没有光通过)。
- 如果你用白色手电筒(包含所有颜色)照红色玻璃,看到的就是红色。
- 如果你用红色手电筒照红色玻璃,看到的还是红色。
- 如果你用绿色手电筒照红色玻璃,看到的还是黑的。
这说明:物体的颜色是它反射(或透过)光的能力,光的颜色是它能提供的能量。只有两者都“有”,才有颜色被看到。
2. 乘法的物理意义
在shader中,颜色通常用RGB三个分量表示,比如:
- 物体颜色:
(R1, G1, B1)
- 光照颜