光是自然中我们再熟悉不过的构成要素。在虚拟三维场景中为了模拟光的效果,我们添加了光源。按照光源类型分为:方向光源、点光源、聚光灯光源、多光源等等。
由于场景中的光源是我们人为添加的,因此会有一定规则。了解这种规则和原理,对于我们更自如地定量化控制三维场景的光照效果是非常重要的。
进入今天的主题。
原本我们的三维场景中只具有一个平行光源,我们控制场景环境光的时候主要是通过环境光和全局环境光两个指标。那么二者的区别是什么呢?
环境光就是指前面说的平行光源的环境光,由于是平行光,因此具有一定的方向性,光从同一个平行的方向射向物体表面。
全局环境光是在平行光源基础上整体增加的环境光变量,没有方向性,只是一个“增量”,如下图是平行光源的环境光原始效果。
下面是增加了黄色的全局环境光后的效果。
为了模拟现实环境中不同类型的光,使场景光照效果更能满足需求,新版本软件中,平台在保留原有的平行光源的基础上,又新增了一个平行光源,方向分别为东南和西南。
使用时,既可以修改其中一个光源的光的颜色,单独作用;也可以修改两个,体现二者融合的效果。下图为仅修改第一个平行光源颜色为红色的效果。
下图为仅修改第二个平行光源颜色为绿色的效果。
同时修改两个光源的颜色,叠加后的效果如下图。
在CityMaker中有多个光源,又有全局环境光。同时,不同模型又有自己不同的颜色和材质,那么我们看到的颜色究竟取决于哪个呢?
在SDK帮助文档“关于环境光的说明”中为我们详细介绍了颜色的计算公式,即:
物体最终显示颜色=a*ma+a0*ma+d0*md+s0*ms+a1*ma+d1*md+s1*ms。
其中:a表示全局环境光;a0、d0、s0表示第一个光源的环境光、散射光、镜面光;a1、d1、s1表示第二个光源的环境光、散射光、镜面光;ma、md、ms表示模型材质的环境光、散射光、镜面光。
环境光颜色与模型纹理进行融合,最终就是模型显示时人眼所看到的颜色。
加入我们官方QQ讨论群,参与更多互动分享
CityMaker软件技术分享群
189406624