2.Gouraud方法 亮度(或颜色)插值明暗法 通常被 称为Gouraud着色方法。增加逼近空间形 体的多边形表面的数目,Mach带效应可 以随之减弱。 亮度(或颜色)插值明暗法处理过 程有以下四个步骤: (1) 计算各多边形表面的法向量。 (2) 计算各顶点的法向量。这里顶点的 法向,指共享该顶点的所有多边形表面 法向的平均值
2.Gouraud方法 亮度(或颜色)插值明暗法 通常被 称为Gouraud着色方法。增加逼近空间形 体的多边形表面的数目,Mach带效应可 以随之减弱。 亮度(或颜色)插值明暗法处理过 程有以下四个步骤: (1) 计算各多边形表面的法向量。 (2) 计算各顶点的法向量。这里顶点的 法向,指共享该顶点的所有多边形表面 法向的平均值
如果有一条边是作为边界准 备显示出来的,可以对这条边的 每个顶点,计算两个法向量,每 个是一侧各边形表面法向量的平 均值。 N1 N=(N,+2++N4)/4
如果有一条边是作为边界准 备显示出来的,可以对这条边的 每个顶点,计算两个法向量,每 个是一侧各边形表面法向量的平 均值。 N = (N1 + N2 + N3 + N4 )/ 4
(3) 计算各顶点的亮度。因为各顶点的 法向已经求得,所以已经可以利用上 节讨论的计算亮度的公式进行计算。 (4) 计算各多边形表面上任意点处的亮 度值,实行对多边形表面的明暗处理 做法是先利用顶点的亮度值,在边上 做线性插值,求得边上的亮度值。再 用之在扫描线上做线性插值,从而求 得多边形面内任意点处的亮度值
(3) 计算各顶点的亮度。因为各顶点的 法向已经求得,所以已经可以利用上 节讨论的计算亮度的公式进行计算。 (4) 计算各多边形表面上任意点处的亮 度值,实行对多边形表面的明暗处理。 做法是先利用顶点的亮度值,在边上 做线性插值,求得边上的亮度值。再 用之在扫描线上做线性插值,从而求 得多边形面内任意点处的亮度值
扫猫线 V2 2 。=1y.-¥+l,.y-yl=lY-ys+l.¥-y y1-y2 y1-y2 y1-y3 y-y3 1=1 Xo-Xp +l. X.一Xa Xb一Xa Xb一Xa
y y y y I . y y y y I I. 1 2 1 s 2 1 2 s 2 a 1 − − + − − = y y y y I . y y y y I I. 1 3 1 s 3 1 3 s 3 b 1 − − + − − = x x x x I . x x x x I I b a p a b b a b P p a − − + − − =
3 Phong>方法 法向量插值明暗法是越南人Bui- Tuong Phong:提出来的,通常称为Phong 氏形成明暗法。 这个方法是对法向量进行插值,而 不是对亮度进行插值。在求得各顶点法 向后,求多边形边上各点及多边形面内 任意点处法向所用的插值方法,与亮度 插值明暗法中进行插值计算的方法相同。 因此这个插值也可以很好地应用前面提 到的扫描线算法
3 Phong方法 法向量插值明暗法是越南人BuiTuong Phong提出来的,通常称为Phong 氏形成明暗法。 这个方法是对法向量进行插值,而 不是对亮度进行插值。在求得各顶点法 向后,求多边形边上各点及多边形面内 任意点处法向所用的插值方法,与亮度 插值明暗法中进行插值计算的方法相同。 因此这个插值也可以很好地应用前面提 到的扫描线算法
求得扫描线上每点的法向量后,在 每点处实际计算亮度,可以应用任何一 种光照明模型。 如果应用镜面反射,比起亮度插值法 会得到明显的改进,因为强光能更加真 实地得到反映。即使不应用镜面反射, 法向插值的结果也比亮度插值的结果好。 这是因为对每一点都使用法向量的近似 值,使得可以减少Mach带效应引起的问 题。 但另一方面,对每一点都要计算亮 度, 使得计算量大为增加
求得扫描线上每点的法向量后,在 每点处实际计算亮度,可以应用任何一 种光照明模型。 如果应用镜面反射,比起亮度插值法 会得到明显的改进,因为强光能更加真 实地得到反映。即使不应用镜面反射, 法向插值的结果也比亮度插值的结果好。 这是因为对每一点都使用法向量的近似 值,使得可以减少Mach带效应引起的问 题。但另一方面,对每一点都要计算亮 度,使得计算量大为增加
绘制多边形的步骤: (1) 计算多边形的单位法矢量。 (2) 计算多边形顶点的单位法向量。 (3) 在扫描线消隐算法中,对多边形 顶点的法向量进行双线性插值,计算出多 边形内部(扫描线上位于多边形内部)各 点的法向量。 双线性插值的方法如图所示,NA由N1,N2 线性插值得到:
绘制多边形的步骤: (1) 计算多边形的单位法矢量。 (2) 计算多边形顶点的单位法向量。 (3) 在扫描线消隐算法中,对多边形 顶点的法向量进行双线性插值,计算出多 边形内部(扫描线上位于多边形内部)各 点的法向量。 双线性插值的方法如图所示,NA由N1,N2 线性插值得到:
N.-Y.-Y.N+Y.-Y.N, y,-y2y,-y2 扫猫线 N2 B N-Y.-Y-N.+V.-YeN y,-y,y,-Va XXN X一XAN 一XA X。一X
2 1 2 1 A 1 1 2 A 2 A N y y y y N y y y y N − − + − − = 3 1 3 1 B 1 1 3 B 3 B N y y y y N y y y y N − − + − − = B B A A A B A B P N x x x x N x x x x N − − + − − =
(4) 利用光照明模型计算P点的颜色。 当扫描线y递增一个单位变为y+1时, NA,NB的增量分别为△NA,△NB,即 NAy:=NAy +A N Nox =Noy +A Ne △NA= (N-N,)△N=1 (N-N3 y1-y2 y,-y3 当x递增一个单位(P点沿扫描右移一个 单位)时,NP增量为△NP即 Npx1=N,x+△NAN,= (N-N) XB一XA
(4) 利用光照明模型计算P点的颜色。 当扫描线y递增一个单位变为y+1时, NA,NB的增量分别为△NA,△NB,即 NAy+1 = NAy +Δ NA NBy+1 = NBy +Δ NB ( N N ) y y 1 Δ N 1 2 1 2 A − − = ( N N ) y y 1 Δ N 1 3 1 3 B − − = NP ,x+1 = NP ,x +Δ N p ( N N ) x x 1 Δ N B A B A P − − = 当x递增一个单位(P点沿扫描右移一个 单位)时,NP增量为△NP即
Phong着色方法中,多边形上每一点需要 计算一次光照明模型,因而计算量远大于 Gouraud着色方法。但是Phong着色方法绘制 的图形更加真实,特别体现在如下两个场合 (考虑要绘制一个三角形)。 如果镜面反射指数n较大,三角形左下 角的顶点a(R与V的夹角)很小,而另两个顶 点的a很大,以光照明模型计算的结果是左下 角顶点的亮度非常大(高光点),另两个顶 点的亮度小。若采用Gouraud方法绘制,由于 它是对顶点的亮度进行插值,导致高光区域 不正常地扩散成很大一块区域
Phong着色方法中,多边形上每一点需要 计算一次光照明模型,因而计算量远大于 Gouraud着色方法。但是Phong着色方法绘制 的图形更加真实,特别体现在如下两个场合 (考虑要绘制一个三角形)。 如果镜面反射指数n较大,三角形左下 角的顶点a(R与V的夹角)很小,而另两个顶 点的a很大,以光照明模型计算的结果是左下 角顶点的亮度非常大(高光点),另两个顶 点的亮度小。若采用Gouraud方法绘制,由于 它是对顶点的亮度进行插值,导致高光区域 不正常地扩散成很大一块区域