Unity Shader 光照模型公式

Unity Shader系列文章:Unity Shader目录-初级篇

Unity Shader系列文章:Unity Shader目录-中级篇

1、兰伯特漫反射光公式:

:入射光颜色;
:漫反射颜色;
:单位法向量;
:单位光向量;

2、半兰伯特漫反射公式:

:入射光颜色;
:漫反射颜色;
:单位法向量;
:单位光向量;
原理:由于兰伯特光照模型计算出模型背面的颜色为负数,模型背面会变成黑色,
改进为将[-1, 1]映射到[0, 1]上,即乘以0.5,再加上0.5。

3、Phong高光反射公式:

Phong模型


:入射光颜色;
:高光反射颜色;
:单位视线向量;
:单位反射向量,可以由表面法线 和光源方向 计算而得:
,CG中可直接使用reflect获得;
:反射系数;

4、Blinn-Phong高光反射公式:

Blinn模型


:入射光颜色;
:高光反射颜色;
:单位法向量;
:单位半角向量,由光线和视线夹角一半方向上的单位向量计算得出:
(shader中计算:normalize(V + L))
:反射系数;

你可能感兴趣的:(Unity Shader 光照模型公式)