光照基础
1、环境光照
2、漫反射光照
3、镜面光照
光照比较
光照特性
1、发射光:由物体资深发光
2、环境光:环境中充分散射的光,且无法分辨它的方向
3、漫反射光:光纤来自某个方向,但在物体上各个方向反射
4、镜面高光:光纤来自一个特定的方向,然后再物体表面上亿一个特定的方向反射出去
光照分类
环境光,漫反射光和镜⾯光的强度都会受距离的增⼤而衰减,只有发射光和全局环境光的强度不会受影响
材质属性
1、泛射材质
2、漫反射材质
3、镜面反射材质
4、发射材质
光照计算
1、环境光计算
环境光 = 光源的环境光颜⾊ * 物体的材质颜⾊
2、发射光的计算
发射颜色 = 物体的反射材质颜色
3、漫反射光照计算
光照有阴面和阳面,由法线计算光与物体之间的夹角,这个夹角分为入射角和反射角
漫反射颜色 = 光源的漫反射颜色 * 物体的漫反射材质颜色 * DiffuseFactor
DiffuseFactor = max(0, dot(N, L));
4、镜面光计算
镜面反射颜色 = 光源的镜面光颜色 * 物体的镜面材质颜色 * SpecularFactor
SpecularFactor = power(max(0, dot(N, H)), shininess);
H:视线向量E 与光线向量L 的半向量
dot(N, H):H,N的点积几何意义,平方线与法线夹角的cos值
shininess:高光的反光度
5、普通光照计算
光照颜色 = (环境颜色 + 漫反射颜色 + 镜面反射颜色) * 衰减因子
衰减因子计算:
img
衰减因⼦ = 1.0/(距离衰减常量 + 线性衰减常量 * 距离 + ⼆次衰减常量 * 距离的平方)
距离衰减常量,线性衰减常量和二次衰减常量均为常量值
6、聚光灯因子
聚光灯夹角cos值 = power(max(0, dot(单位光源位置, 单位光线向量)), 聚光灯指数);
单位光线向量:是从光源指向顶点的单位向量
聚光灯指数:表示聚光灯的亮度程度
公式解读:单位光源位置 * 单位光线向量 点积 的 聚光灯指数次方
增加过渡计算
聚光灯因子 = clamp((外环的聚光灯角度cos值 - 当前顶点的聚光灯角度cos值) / (外环的聚光灯角度cos值 - 内环聚光灯的角度cos值), 0.1)
聚光灯
7、光照计算终极公式
光照颜色 = 发射颜色 + 全局环境颜色 + (环境颜色 + 漫反射颜色 + 镜面颜色) * 聚光灯效果 * 衰减因子













网友评论