【GAMES101】Lecture 08 着色-Blinn-Phong反射模型

目录

Blinn-Phong反射模型-高光

Blinn-Phong反射模型-环境光照

Blinn-Phong反射模型


Blinn-Phong反射模型-高光

我们在lecture7的时候讲了这个Blinn-Phong反射模型的漫反射部分,现在我们继续讲Blinn-Phong反射模型的高光部分

这个高光是怎么产生的呢,我们说当这个物体的表面非常光滑的时候,光照射过去这个表面就会特别亮,就是这么个道理,但是没有绝对光滑的物体,除了三体里面那个强作用力聚合的中子水滴,所以反射光线就不一样绝对沿着镜面反射的方向,如下图中的R,所以这个高光会出现在R的附近也就是黄色区域,而且这个高光是和我们的观察方向密切相关的,这和上次讲到的漫反射不同,只有这个观察方向v和反射方向R比较接近的时候才能看到高光

【GAMES101】Lecture 08 着色-Blinn-Phong反射模型_第1张图片

然后我们再定义一个半程向量h,这个h向量是光源方向l和观察方向v的角平分线的方向向量,那么可以知道当R和v比较接近的时候,n和h也比较接近,也就是说我们可以通过n和h的接近程度来衡量看到的高光程度,类似的我们可以得出一个计算高光的式子,因为方向向量都是单位向量,所以余弦值就等于方向向量的点乘结果

【GAMES101】Lecture 08 着色-Blinn-Phong反射模型_第2张图片这里我们为什么要用n和h来衡量而不直接用R和v呢,其实用R和v衡量的也有,叫phong反射模型,我们这里讲的是Blinn-Phong反射模型,是Phong反射模型的一个改进,那为什么是改进呢,主要是因为h的计算更加简单,直接将v和l相加单位化即可,而R则需要通过反射算子来计算,

那为什么还有一个指数p呢,主要是因为这个余弦值的容忍度太高了,这个高光的变化不明显,不能明明n和h离的比较远也有高光吧,所以要让这个高光出现的范围变小,而加上一个指数运算就可以加剧这个变化的程度

【GAMES101】Lecture 08 着色-Blinn-Phong反射模型_第3张图片

下面这个图就可以看出p和高光的变化,当这个p变大的时候,高光部分就会缩小

Blinn-Phong反射模型-环境光照

然后Blinn-Phong反射模型我们已经讲了漫反射部分和高光部分,还有一个环境光照部分,我们已经知道这个环境光照部分的光源是周围环境的反射光,它的方向是四面八方的,这里呢,我们假设这个环境光的强度是固定的,也不管是从哪来的,反正就是这个强度的光,然后也和观察方向没关系,从哪看都是这个样子,当然还存在一个吸收率,所以环境光La=Ka×Ia

【GAMES101】Lecture 08 着色-Blinn-Phong反射模型_第4张图片

Blinn-Phong反射模型

到这里Blinn-Phong反射模型就讲完了三个部分了,有环境光、漫反射和高光部分

【GAMES101】Lecture 08 着色-Blinn-Phong反射模型_第5张图片 

你可能感兴趣的:(GAMES101,图形渲染)