光照模型:

自发光,漫反射,高光组成最常见的光照模型。

自发光:shader中无需自己计算可以是用系统api 获取到 :UNITY_LIGHTMODEL_AMBIENT

漫反射shader光照计算资料

公式: diffuse = Kd * lightColor * max(dot(N, L), 0)

其中:

Kd是材质的漫反射颜色,这里感觉可以理解为物体的自发光的颜色,如果是白色(1,1,1,1)不用特殊处理。

lightColor是入射漫反射光的颜色,灯光的颜色。

N是规范化的表面法向量,法向量垂直于物体表面,90度。

L是规范化的从顶点到光源的向量。理解为: 物体的每个顶点与光源形成的向量,因为每个顶点都会参与光照计算。

dot(N,L)  该点的法线和该点灯光方向的点积, 几何意义:N·L=|N|*|L|*cosθ,推导公式 当相互垂直是cos90度=0,结果是该点没有光照,则是黑色的。这里只有环境光的颜色。

shader光照计算资料

高光计算:

shader光照计算资料

两种计算方式:

(1)phong 冯氏计算法:   

shader光照计算资料

 shader光照计算资料

shader光照计算资料

N与LJI  关系计算出R shader光照计算资料.

(2)Blinn-Phong模型

和上面的Phong模型相比,Blinn模型避免了反射方向 shader光照计算资料 的计算,而是引入了一个新的矢量 shader光照计算资料

shader光照计算资料

  shader光照计算资料

 shader光照计算资料

 

 

相关文章: