目录
第八节课 : 补充shading(光照-高光/环境光, 着色, 图形管线) 及 纹理映射部分内容
第八节课 : 补充shading(光照-高光/环境光, 着色, 图形管线) 及 纹理映射部分内容
高光(镜面反射) :
从 l 向量入射,通过比较光滑(镜子,金属等等)的材质时, 会有一个反射R的高光, 若v相机向量在R附近则可以看到高光.
Blinn-Phong模型 :
①通过公式 l(光照单位向量)和v(观察单位向量) 得出 h(半程向量)
②h与n的接近程度 和 v与反射向量成对应关系
③计算h(半程向量)和n(物体法线)的点乘(cos), 若接近0则相机向量在反射向量附近, 看的到高光. 反之接近1则不在附近,看不到高光.
④默认情况下, 高光的ks(下面公式的第二条,称为镜面反射系数)的RGB是白色的,因为Blinn-Phong模型以是否看得见高光为重点.正确做法为还是要计算有多少能量被吸收.
⑤为什么不直接用l(入射角度)和物体法线n, 得到反射方向?
因为计算量会大大增加, 引入Blinn-Phong模型可以只使用两个单位向量的点乘计算出, 减少计算量.
⑥为什么Blinn-Phong模型还有一个p的指数?
因为这是为了控制产生高光的角度, 实际生活中我们只要离开一点位置就看不到高光了(或者说是高光只是集中在一个小地方), 而cos(α)的数值太大, 即便偏离高光位置较远还是能看到.
当我们加入指数后, 可以发现数值变化就会大很多, 应用时会使用指数为100的cos(α).
下图中的ks(镜面反射系数)越大,物体越光滑, 吸收的光也就越大, 呈现的亮度大.
指数p越大, 高光效果越明显, 集中的地方越小.
Ambient Term环境光照 : 四面八方反射过来的光
在这里做个简单的假设, 环境光是一个常数, 环境光照的物体不受光照方向和物体法线的影响, 只和光照强度有关, 简单来说, 就是给整个收到环境光的物体提升亮度, 改变颜色.
当然, 实际不是这样的.