【Unity Shader】常用光照计算公式

兰伯特漫反射

在这里插入图片描述

半兰伯特漫反射

在这里插入图片描述

高光反射

Phong光照模型
在这里插入图片描述
Blinn-Phong光照模型
【Unity Shader】常用光照计算公式_第1张图片

各向异性高光

【Unity Shader】常用光照计算公式_第2张图片

光照模型

3D渲染中, 物体表面的光照计算公式为:

I = 环境光(Iambient) + 漫反射光(Idiffuse) + 镜面高光(Ispecular);

其中,环境光(ambient)计算公式为:

Iambient = Aintensity * Acolor ; (Aintensity表示环境光强度,Acolor表示环境光颜色)

漫反射光(diffuse)计算公式为:

Idiffuse = DintensityDcolorN.L ; (Dintensity表示漫反射强度,Dcolor表示漫反射光颜色,N为该点的法向量,L为光源向量)

镜面光照(specular)计算公式为:

Ispecular = SintensityScolor(R.V)n ; (Sintensity表示镜面光照强度,Scolor表示镜面光颜色,R为光的反射向量,V为观察者向量)

综上所得:整个光照公式为:

I = Aintensity * Acolor + DintensityDcolorN.L + SintensityScolor(R.V)n ;

将一些值合并,并使用白色作为光照颜色,则上述公式可简化为:

I = A + D*N.L + (R.V)n

你可能感兴趣的:(【Unity Shader】常用光照计算公式)