版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_24459491/article/details/84675762
标准光照方程的镜面反射分量指由光源直接经物体表面反射入眼睛的光线。
1.Phong模型
所有向量均为单位向量。
n为表面法向量。
v指向观察者。
l指向光源。对方向光源,l为定值。
r为“镜像”向量,即l对n的镜像结果。
θ为r和v的夹角,θ=r·v,描述镜像的方向性。
r = 2(n·l)n-l
下列等式给出镜面反射的Phong模型:
- mgls为材料的光泽度,也称作Phong指数,控制“亮斑”的范围,mgls越小光斑越大月平滑;mgls越大光斑越小越亮。
- mspec为材料的反射颜色“亮度”。控制光斑的强度,对整个材料来说一般是一个不变的灰度值, 强反射面mspec较大,粗糙的表面mspec较小。
- Sspec是光源的镜面反射颜色,控制光本身的色彩与强度
本图显示了mgls和mspec如何影响物体的镜面反射。图中,mspec从最左列到最右列由黑至白变化,指数mgls从上到下逐行递减。最左边一列的头像看上去一样;因为镜面反射强度为0,对光照没有任何贡献(光线来自散射和环境光照,后面介绍)。
2.Blinn模型
如果光源或者观察者距离物体非常远,那么v和l变化非常小,可以认为相对于整个物体是一个常量。(对于平行光源l本身就是常量),但n是变化的,仍需计算r-----这是一个应该尽量避免的计算。Blinn模型通过稍微不同的角度的计算来避免计算r。
h表示v,l的中间向量,由标准化v,l的平均值求得
Blinn模型和Phong模型一样,只不过θ由为n和h的夹角
此方程便于硬件实现,特别是当光源与观察者均远离物体时,h被视为常数仅需计算一次。
这里忽略了cosθ小于0,此时简单的令镜面反射为0即可。