8.2.2 高若德(Gouraud)明暗绘制方法 ��高若德明暗绘制方法的基本思想是:先计算多边形各个顶点的光强,然后通过双线性插值,计算出多边形内各点的光强。其基本的算法步骤为: ��1) 计算多边形顶点的平均法向(见图8.4); ��2) 根据基本光照模型计算顶点的平均光强; ��3) 通过线性插值,计算多边形的边上的各点光强; ��4) 通过线性插值,计算多边形内各点的光强。 ��假定我们用多面体来近似表示某一个曲面体,已知多面体的各个多边形表面的顶点和法向量,则我们必须用多边形间的几何信息与拓扑信息来计算顶点的法向量。对每一个顶点,可取共享该顶点的各多边形法向量的平均值作为该顶点处曲面的法向量,然后把该法向量代入光照明模型计算出顶点处曲面的光亮度。假设顶点A相邻的多边形有k个,其法向分别为Ni, i=0,1,…,k-1, 则顶点a的单位法向量为: �� ��如图所示,顶点处的法向量可取共享该顶点的各多边形的单位法向量的平均值: � ��� 其中, 分别为四边形A、B、C和D的法矢量。 在采用扫描线算法对上述多边形进行绘制时,先用多边形顶点的光亮度线性插值出当前扫描线与多边形的边界线的交点处的光亮度值,然后再用交点的光亮度线性插值出多边形与扫描线相交区段上每一采样点的光亮度值。 在视平面上,假设一多边形在视平面上的投影为V1V2V3V4,如图8.5所示。一扫描线与多边形的投影边界线相交于a和b两点, P是投影于该扫描线上V5到V6之间一象素中心的多边形采样点,四个顶点V1、V2、V3和V4的光亮度分别为I1、I2、I3和I4;取V5点的光亮度I5为I1和I2的线性插值,V6点的光亮度I6为I1和I4的线性插值,则P点出的光亮度IP为Ia和Ib的线性插值,即: I5=uI1+(1-u)I2, u=(Y5-Y2)/(Y1-Y2); I6=vI1+(1-v)I4, v=( Y6-Y4
)/(Y1-Y4); IP=tI5+(1-t)I6, t=(Xp-X6)/(X5-
X6)。 。 类似地,我们也可以用增量法来递推计算后继扫描线与多边形的其它边(如V1V4)的交点的光亮度值。 |