最近在学习OpenGL的关照知识,一开始没注意环境光、漫反射、镜面反射这些光照的最终处理是采用向量加法的方式,也就是ambient + diffuse + specular这种方式。直到看到多光源的时候才留意到不同的投光物产生的最终光照值也是采用向量加法的方式,这个时候我才猛的有个疑问,那之前的颜色向量相乘和颜色向量相加有什么区别。
百度了一番,在知乎上面找到了些答案,也就是当两个颜色相乘的时候表示的是两种颜色的叠加。而两个颜色进行相加是为了给光源制造强光效果。其实从最终的计算效果来看,乘法产生的值一般都是偏小的,会相互抵消原先的一些颜色。而加法的值都是向1这个方向靠近的,也就是向白色方向靠近,约趋近白色也就表示越亮。
网友评论