光源:在实时渲染中,我们通常把光源当成一个没有体积的点,用 l 来表示它的方向,在光学中,我们使用辐照度来量化光。
辐照度与cosθ成正比,可以使用光源方向 l 和表面法线 n 的点积来得到。
标准光照模型:只关心直接光照,也就是那些直接从光源发射出来照射到物体表面后,经过物体表面的一次反射直接进入摄像机的光线。
它的基本方法是把进入到摄像机内的光线分为4个部分:自发光(emissive),高光反射(specular),漫反射(diffuse),环境光(ambient)。
自发光:通常作为单独的一项加入光照模型,一般使用一张发光贴图描述物体的自发光。
漫反射:符合兰伯特定律,反射光线的强度与表面法线和光源之间的夹角的余弦值成正比。
漫反射效果与观察者位置无关,与光源位置有关。
高光反射:
环境光:
兰伯特模型
反射光线的强度与表面法线和光源之间的夹角的余弦值成正比。
兰伯特模型无法提供高光效果,制作出来的材质偏向橡胶。
左为逐顶点光照,右为逐像素光照
可以明显看出逐顶点光照的模型表面有些地方并不平滑,出现了明显的棱角现象。
// 逐顶点光照
Shader "Unlit/Diffuse"
{
Properties
{
_Diffuse("Diffus