物体表面的颜色=自发光(放射 emissive)+环境反射(ambient)+漫反射(diffuse)+镜面反射(specular)
surfaceColor = emissive + ambient + diffuse + specular
自发光(放射 emissive)= 材质的放射光颜色(Ke)。
emissive = Ke
环境反射(ambient)=材质的环境反射系数(Ka )*入射环境光的颜色(globalAmbient)
ambient = Ka * globalAmbient
漫反射项(diffuse )=材质的漫反射颜色(kd)*入射漫反射光的颜色(lightColor )* max( 规范化的表面法向量(N) *规范化的从顶点到光源的向量(L),0)
diffuse = kd * lightColor * max (dot( N,L)(点积) , 0 )
specular = Ks * lightColor * facing * pow(max(dot(N, H), 0), shininess)
Ks: 材质的镜面反射颜色。
lightColor:入射镜面反射光的颜色。
N:表面法向量的单位向量。
H:顶点到光源的向量与顶点到眼睛的向量的中间向量的单位向量。
facing:如果dot(N,L)大于0则为1,否则为0。其中L是顶点到光源位置的向量。
shinniess:表面光泽度。
自发光(emissive):自发光光照作用独立于所有的光源。物体的自发光并不能照亮场景中的其他物体。换句话说,物体自发光不能照亮其他物体或者投下阴影。因此,一个放射性物体本身并不是一个光源。
环境光(ambient):环境光来自于四面八方,故环境放射光照项并不依赖于光源的位置.
漫反射项(diffuse):投射在粗糙表面上的光向各个方向反射的现象。当一束平行的入射光线射到粗糙的表面时,表面会把光线向着四面八方反射,所以入射线虽然互相平行,由于各点的法线方向不一致,造成反射光线向不同的方向无规则地反射,这种反射称之为“漫反射”或“漫射”。