23.1 环境光 我躲在房间里,客厅的灯开着。 光从房间门缝里透进来,房间里也有了微弱的光,勉强能看清楚东西。 这是因为光子从门缝进到房间后,会不断反射到房间其他角落。 不过从门缝进到房间的光子比较少,大部分光子在不断反弹耗尽能量后,没有进入到人的眼睛。 仅少部分光子进入眼睛,所以看起来很暗。 晚上到农村去,虽然很暗,但是也不会,伸手看不见五指。 这是因为有少量的光子,从月亮反射到地球,再反射到我们的眼睛。 游戏里实际上也并不会出现纯黑的场景,不然玩家怎么操作。 我们将这种间接的、很微弱的光,称之为环境光。 先来看下这一节实现的效果吧。 光的通用属性 自然界的光是由多种波长的光子组成的,可见光也有很多种,不能被物体吸收的光子反射到眼镜,在人脑海里形成了对应的颜色。 在显示器里,其实看到的是模...
23.1 环境光 我躲在房间里,客厅的灯开着。 光从房间门缝里透进来,房间里也有了微弱的光,勉强能看清楚东西。 这是因为光子从门缝进到房间后,会不断反射到房间其他角落。 不过从门缝进到房间的光子比较少,大部分光子在不断反弹耗尽能量后,没有进入到人的眼睛。 仅少部分光子进入眼睛,所以看起来很暗。 晚上到农村去,虽然很暗,但是也不会,伸手看不见五指。 这是因为有少量的光子,从月亮反射到地球,再反射到我们的眼睛。 游戏里实际上也并不会出现纯黑的场景,不然玩家怎么操作。 我们将这种间接的、很微弱的光,称之为环境光。 先来看下这一节实现的效果吧。 光的通用属性 自然界的光是由多种波长的光子组成的,可见光也有很多种,不能被物体吸收的光子反射到眼镜,在人脑海里形成了对应的颜色。 在显示器里,其实看到的是模型纹理上的颜色,所以正儿八经来说,模拟的光只要一个强度(intensity)字段就可以了,如下 结构。 不过我还是给它加上了一个颜色值,用环境光的颜色值与模型纹理的颜色值相乘。 例如塞尔达血月出现时,场景里所有的物体都要受到影响,带一点红色。 光的颜色、强度,是光的通用属性。 增加了颜色之后, 结构...