Shader光照公式
计算机图形学第一定律:如果看起来是对的,那么就是对的。
计算机图形学中的基本光照模型:
光照模型:用数学的方法模拟现实世界中的光照效果。
漫反射光照(Diffuse):
当我们的平行光照射到物体表面的时候,会出现散射,散射出两种方向:
1:反射:经过顶点的法线,反射出去 : 高光反射
2:折射:进入到物体内部,在物体内部也经过很多反射,最后再射出物体表面:漫反射
在标准光照模型下:只关心直接光照。
把射入摄像机的光线分为4部分:
1:自发光,在Unity中如果不开启全局光照,自发光的物体就不会照亮周围环境
2:高光反射:镜面反射
3:漫反射:在物体表面每一个方向反射出多少辐射量
4:环境光:用于描述其他所有间接光照。
漫反射光照模型的公式:(兰伯特光照)
c(diffuse) = c(light) * m(diffuse) * max(0, dot(N,I));
半兰伯特光照:
c(diffuse) = c(light) * m(diffuse) * (dot(N,I) * 0.5 + 0.5);
半兰伯特光照有效的解决了背向光源的时候纯色的效果。
高光反射:
c(specular) = c(light) * m(specular) * max(0, dot(v, r)) ^ m(gloss)
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!