光照与材质(龙书笔记)
光照和材质
光照
光源可以发射3种不同的光线。
如果没有光照,立体的物件看起来就像是一个平面(比如一个球体,有光照时就像一个球体,无光照时就像一个平面的圆形)。
越精确的光照模型,计算时间就越长。电影可以用更写实的光照模型,因为电影是可以预渲染的。但是游戏是实时的应用程序。
局部光照
在局部光照模型中,每个物体的光照都是相互独立的,所有光线都是从光源直接照射到物体上。不会去计算其他物体的位置关系。
即本来应该在场景中被其他物体阻隔的线,仍然会照射到后面的物体上。
全局光照
全局光照不仅考虑光源对物体的直接照明,也会考虑场景中的其他物体反射造成的间接照明。
即照亮一个物体的同时,也会考虑到整个场景中的其他因素。但是占用的系统资源量过大,可以实时全局照明或者提前烘焙光照。
环境光
模拟间接光照。环境光会不断折射,最终进入眼睛的颜色是不断反射的结果。
漫反射光
模拟对粗糙表面的直接光照。
高光
模拟对光滑表面的直接光照。
兰伯特余弦定理
垂直照向平面的线比从侧面照向平面的线更加强烈。
顶点法线和光照向量之间的夹角返回不同的光照强度。随着顶点法线与光照向量之间的夹角逐渐增大,光照的强度值会越来越小。
光照向量是从表面指向光源的向量,与线的传播正好相反。
法线
平面法线:描述多边形所朝方向的单位向量。
表面法线:物体表面上的点的正切平面相互垂直的单位的向量,即表面的点面对的方向。
在光照计算的时候,必须求解表面法线,确认光的入射角。
为了获取表面法线,必须为每个顶点指定顶点法线,然后在光栅化进行差值得到三角形的表面上的每个点都获得一个表面法线。
材质
材质可以被认为是决定光照与如何与物体表面相互作用的属性,比如可以决定表面反射的灯光颜色,吸收的灯光颜色,反射率,透明度和光泽度等。
物体表面有以下材质属性与其对应。
- 环境材质:平面反射和吸收环境光的总量。
- 漫反射材质:平面反射和吸收漫反射光的总量。
- 高光材质:平面反射和吸收漫高光的总量。
- 高光指数:它是在高光计算中的使用的一个指数,通过一个由反射系数描述的圆柱体区域来控制表面的光滑程度。圆锥体越小,表面就越光滑。
a. 环境光能均匀的提高物体的亮度。
b. 环境光 + 漫反射光可以使球体形成从亮到暗的平滑过渡(利用兰伯特余弦定理)。
c. 环境光 + 漫反射 + 高光让球体的受光面形成了一小块高亮的区域。
如果只有环境光或者没有灯光照射,球体可能看上去就像一个扁平的 2D 圆。
指定材质
一个模型上会有很多不同的材质,比如汽车有玻璃,轮胎和车身,这些反射和吸收光线的能力是不一样的,所以材质也不一样。