光照作为3D渲染中最重要的部分之一,如何去模拟真实环境的光照是重要的研究内容,但是现实环境光照过于复杂,有很多经典好用的光照模型去近似真实光照。
根据基础的Phong模型 最终某个点的结果为 环境光Ambient + 漫反射光Diffuse + 高光Specular + 自发光 Emissive
而自发光在非全局光照下效果不明显只会使自身更亮。
上图中,左边两个为Phong基础漫反射模型,分别采用了逐顶点的光照着色和逐像素的光照着色,逐顶点的优势就是需要计算计算量较少,因为顶点数可能小于像素的数量。但是在顶点计算完后进行线性插值会导致不够平滑,就像在黑白交接处会出现锯齿。而逐像素就相反。
Half-lambert模型通过给漫反射加上固定值使得光到达不到区域也有明暗分别
Phong-Specular 两个为额外添加高光部分,在顶点反射光线和视角方向越接近时高光越亮
Blinn-Phong模型就是对高光计算的一个简化,引入半程向量取代反射光的计算 效果基本差不多
这类模型能实现基本的光照效果,但是由于没有考虑物体材质,遮挡,光线弹射等原因无法实现更细致真实的光照效果。