Unity 3D - 光照计算中的diffuse的计算公式 :
实际光照强度 I= 环境光(Iambient) + 漫反射光(Idiffuse) + 镜面高光(Ispecular);
环境光:Iambient= Aintensity* Acolor; (Aintensity表示环境光强度,Acolor表示环境光颜色)
漫反射光:Idiffuse = Dintensity* Dcolor * N.L;
(Dintensity表示漫反射强度,Dcolor表示漫反射光颜色,N为该点的法向量,L为光源向量)
镜面反射光:Ispecular = Sintensity * Scolor * (R.V)^n;
(Sintensity表示镜面光照强度,Scolor表示镜面光颜色,R为光的反射向量,V为观察者向量,n称为镜面光指数)
diffuse = Kd * colorLight * max(N * L, 0);
- Kd 漫反射系数 .
- colorLight 光的颜色 .
- N 单位法线向量 .
- L 由点指向光源的单位向量 .
其中N与L点乘,如果结果小于等于0,则漫反射为0 .