漫反射计算公式:
基本光照模型漫反射部分计算公式:
(入射光线的颜色和强度 * 材质的漫反射系数)*[(表面法线 * 光源方向)最小值取0]
saturate(x)函数:x:为用于操作的标量或矢量,可以是float、float2、float3等类型。把X截取在[0,1]范围之内,如果x是一个矢量,那么会对他每一个分量进行这样的操作。
半兰伯特模型:(此公式没有任何物理依据,仅是一个视觉加强技术)
入射光线的颜色和强度 * 材质的漫反射系数)[(表面法线 * 光源方向) 缩放倍数 + 偏移]
通常情况下缩放倍数和偏移为0.5
通过这样的方式可以把法线*光源方向的值从[-1,1]映射到[0,1]范围内;
高光反射计算公式:
(入射光线的颜色和强度 * 材质的高光反射系数)pow([(视角方向 * 反射方向)最小值取0],幂) //pow会使高光看起来更聚合
反射方向 = 2 ( 表面法线 * 光源方向) 表面法线 - 光源方向 此公式Unity提供了封装好的接口reflect(i,n)
Blinn_Phong光照模型
h=视角方向+光照方向相加的结果归一化
(入射光线的颜色和强度 * 材质的高光反射系数)pow([(法线 * h)最小值取0],幂)