��1)局部平均法
��在水平和垂直方向,每隔一个象素用基本光照模型计算一次光强,而中间的象素的光强取为相邻象素的光强的平均。在大多数情况下,这种两步插值法对图象质量几乎没有什麽损失。
��2)数值优化法
��数值优化法的基本思想是:将法向量插值公式代入光照明模型中,然后进行数值优化。优化的策略有两种:一种是采用差分技术使计算模型得到简化;另一种是将计算模型作泰勒展开,取其泰勒展开式的前三项作为光亮度的近似公式,从而使计算公式得到简化。优化的结果是:大大地提高了计算速度。下面,我们主要介绍基于泰勒展开的数值优化方法。
对于三角形面片,见图8.7所示,首先将屏幕坐标系平移至三角形的中心
,即
将上式代入(8-3-1)式,可得:
,
其中,
。
设L为三角形面片的入射光线单位向量,当光源位于无限远时L是常矢量,那么漫反射光强为:
其中,
,
称为漫反射因子。令
。
则
。
把
在(x´,y´)=(0,0)处进行泰勒展开,取前三项,得到:
(8-3-2)
,
其中,
,
,
,
,
,
。
对于镜面反射光强,可以采用类似的方法处理。同样地,我们假设光源位于无限远,三角形面片的入射光线单位向量L是常矢量。根据简化的冯氏镜面反射模型的计算公式(8-1-5)
,
其中,H0是入射光线矢量L和视方向矢量V的单位半角矢量,我们需要分两种情况来讨论:
��(a) 当视点位于无限远(平行投影)时,
是一个单位矢量(常矢量)。所以
,
其中,
=
。
��(b) 当视点位于有限远(透视投影)时,由于视线向量V并非常量,为此需要作一些简化。我们用三角形三个顶点处的视线向量V1、V2和V3来线性插值三角形内部的视线向量:
,
其中,
将屏幕坐标系平移至三角形的中心,得
,
其中,
。
所以,
,
其中,
,
,
。
单位半角矢量
。
镜面反射因子
=
。
将
在(x´,y´)=(0,0)处进行泰勒展开,取前三项,最后可得:
=
其中,
(i=0,1,…,5)为常数,
,
,
,
,
。
��上述基于泰勒展开的数值优化算法使每个象素的冯氏光照模型的计算量可以减少到只需5次加法和1次内存存取,计算开销仅仅是高若德(Gouraud)方法的1倍,而比传统的冯氏(Phong)方法降低了4-5倍。
��3)几何加速方法
��Bergman和Harrison等人分别于1986和1988年提出了高光的局部检测和叠加技术。其基本思想是:先用高若德(Gouraud)明暗处理算法快速绘制物体,然后对每个多边形的顶点和边界进行高光测试,如果镜面反射项大于某一给定的阈值T,即(N・H)> T,可以认为镜面反射光强的贡献不可忽视,应当再把它叠加上去,从而产生镜面高光效果。由于物体表面的高光通常分布在小范围的局部区域,所以这种方法的效果是显著的,其代价是会附带一定程度的马赫带效应,而且有时会遗漏某些高光区域,特别是多边形比较大的时候。
|