逐顶点光照和逐片元光照
Contents
什么是光照模型
光照模型指的是用于模拟光照效果的一组数学公式和算法
用于确定在3D场景中的模型表面应该如何对光进行反射和散射
从而实现视觉上逼真的照明效果
光照模型就是用来计算光照效果的数学公式
逐顶点光照
逐顶点光照会在每个物体的顶点(顶点着色器)上进行光照计算
这意味着光照计算只在物体的顶点位置上执行
而在顶点之间的内部区域使用插值来获得颜色信息
优点:
逐顶点光照的计算量较小,通常在移动设备上性能较好,适用于移动游戏等要求性能的场景
缺点:
照明效果可能不够精细,特别是在物体表面上的细节区域,因为颜色插值可能不足以捕捉到细微的照明变化
适用场景:
逐顶点光照适用于需要在有限资源下获得较好性能的场景,例如移动游戏
关于逐顶点光照的插值运算
我们不需要自己去处理这个插值运算
插值运算是由图形硬件(GPU)来执行的
GPU负责处理3D图形的渲染,包括顶点插值和像素插值等操作
这个过程在图形硬件中被高度优化过,因此在实时渲染中能够快速而高效地执行
假设:三角面片的三个顶点A、B、C
该三角面片中的任何像素P,首先会计算出它相对于3个顶点的位置权重
然后使用这个权重参与到P点的颜色计算中
PixelColorP = WeightA * ColorA + WeightB * ColorB + WeightC * ColorC
逐片元光照
逐片元光照会在每个像素(片元着色器)上进行光照计算
每个像素都会根据其位置、法线、材质等信息独立地进行光照计算
优点:
逐片元光照提供了更高的精细度,可以捕捉到物体表面上的细微照明变化,提供更逼真的效果
缺点:
计算量较大,对于像素密集的场景需要更多的计算资源
适用场景:
逐片元光照通常用于需要高质量照明效果的PC和主机游戏,以及要求视觉逼真度较高的场景