光照学习

基本概念

1 发射光(emission):物体本身发的光,如果物体不发光,一般无此属性

2 环境光(ambient):在环境中充分散射的光,光线在物体表面各个方向均匀泛射在openGL中,全局光强度为(0.2,0.2,0.2,1.0)

3 漫反射光(diffuse):关于来自某个方向,但是在物体表面向各个方向反射

4 镜面高光:光线来自某一个特定的方向,然后在物体表面,以一个特定方向反射出去,在OpenGL中,镜面反射的强度,可以通过光泽度(shiness)来调节

光的计算:

1 发射光计算:发射颜色=物体的发射材质颜色

2 环境光计算

环境颜色 = 光源的环境光颜色*物体的环境材质颜色

3 漫反射计算:

漫反射颜色=光源的漫反射光颜色 * 物体的漫反射材质颜色 * DiffuseFactor

其中DiffuseFactor = max(0,dot(N,L))

dot表示两个向量夹角的cos

4 镜面反射:

镜面反射颜色 = 光源的镜面光颜色 * 物体的镜面材质颜色 * SpecularFactor

SpecularFactor = power(max(0, dot(N,H)),shininess)

H = normalise(L+E)