WebGL2光照效果
一、 环境光(ambient)
是指从四面八方照射至物体上,全方位都均匀的光,与光源位置无关,无方向性。具体公式如下
环境光照照射效果=材质的反射系数X环境光强度
二、散射光(diffuse)
散射光是指从物体表面向全方位均匀反射的光,其反射强度与入射光的强度以及入射角度密切相关,与位置相关,具体计算公式如下:
散射光照射效果=材质反射系数X散射光强度Xmax(cos(入射角),0)
max(cos(入射角),0) : 入射角越大,反射强度越弱,实际使用时,只需将入射光向量与法向量规格化,再进行点积。
三、镜面光(specular)
镜面光是指方向很集中的光,它不仅依赖入射光下法向量的夹角,还依赖于观察者的位置 ,具体公式 如下:
镜面光光照效果=材质反射系数X镜面光强度Xmax(0,cos(半向量与法向量的夹角)^粗糙度)
半向量:是指从照射点到光源的向量与从照射点到观察点的向量间的平均 向量。
粗糙度越小,镜面光面积越大。
四 定位光与定向光
定位光:与光源位置相关,包括散射光、镜面光
定向光: 与光源方向相关,如太阳光
使用区别 :定位光传入的是光源位置 坐标,定向光传入的是入射向量的x,y,z分量
五、 点法向量与面法向量
连续面(如球面,每个顶点都有确定的法向量)的点法向量
不连续面(如方体的面,点法向量不确定 )的点法向量,两种处理策略,一是在顶点处放置三个顶点,每个顶点的法向量为属于面的法向量,即面法向量策略,二是取其所属所有面法向量的平均 值,即点法向量策略。
应用策略: 棱角分明的物体适合面法向量策略
多个平面搭建为平滑曲面适合点法向量策略
六 、 光照顶点计算与片元计算
顶点计算: Gouraud着色,顶点着色器对每个顶点进行光照计算,将最终光照强度传入片元着色器计算此片元颜色。、
片元计算: Phong 着色,首先在顶点着色器中进行法向量转换,由物体坐标系变换为世界坐标系,传入片元法向量进行光照计算。
计算强度: 片元计算强于顶点计算,光源距离物体较近时可使用片元计算,其它用顶点计算。