《cg09-反走样技术原理》由会员分享,可在线阅读,更多相关《cg09-反走样技术原理(13页珍藏版)》请在金锄头文库上搜索。
1、*深圳大学计算机系李坚强博士图形反走样技术图形反走样技术计算机图形学计算机图形学走样现象走样现象 走样:走样:由于由于低频取样不充分取样低频取样不充分取样而造成的信息失真。而造成的信息失真。 光栅算法的取样过程是将图元数字化为离散的整数光栅算法的取样过程是将图元数字化为离散的整数 像素位置,所生成的图元显示具有像素位置,所生成的图元显示具有锯齿形锯齿形或或台阶状台阶状 外观。外观。 增加光栅系统取样率的一种简单方法是:以增加光栅系统取样率的一种简单方法是:以较高分较高分 辩率辩率显示对象。显示对象。 两个问题难以解决:两个问题难以解决: 将帧缓冲器做成多大并仍保持刷新频率在将帧缓冲器做成多大并
2、仍保持刷新频率在 每秒每秒30306060帧帧? ? 用连续参数精确地表示对象需要任意小的用连续参数精确地表示对象需要任意小的 取样间隔取样间隔。 即使用当前技术能达到的最高分辨率,锯齿形即使用当前技术能达到的最高分辨率,锯齿形 仍会在一定范围内出现。仍会在一定范围内出现。 除非硬件技术能处理任意大的帧缓冲器,增加除非硬件技术能处理任意大的帧缓冲器,增加 屏幕分辨率还不能完全解决走样问题屏幕分辨率还不能完全解决走样问题。 走样现象 反走样技术 非加权采样 加权采样 图形反走样 线段过取样 宽线段过取样 线段区域取样 过滤技术 像素移相 线亮度校正 边界反走样 边界反走样 边界反走样反反走样技术
3、走样技术 反走样反走样用来校正不充分取样过程,避免从这种周期性用来校正不充分取样过程,避免从这种周期性 对象中丢失信息,改善所显示的光栅线的外观。对象中丢失信息,改善所显示的光栅线的外观。 把取样频率至少设置为出现在对象中的最高频率的把取样频率至少设置为出现在对象中的最高频率的 两倍两倍。这个频率称为。这个频率称为NyquistNyquist取样频率取样频率f fs s: f fs s=2=2f fmaxmax。 换言之,取样区间不应超过循环区间换言之,取样区间不应超过循环区间( (NyquistNyquist取样取样 区间区间) )的一半的一半。 对于对于x x区间取样,区间取样,Nyqui
4、stNyquist取样区间取样区间x xs s为:为:x xs s= =x xcyclecycle/2/2,其中:其中:x xcyclecycle=1/=1/f fmaxmax。 两类方法:两类方法: 非加权区域采样方法非加权区域采样方法 加权区域采样方法加权区域采样方法 走样现象 反走样技术 非加权采样 加权采样 图形反走样 线段过取样 宽线段过取样 线段区域取样 过滤技术 像素移相 线亮度校正 边界反走样 边界反走样 边界反走样非加权区域采样方法非加权区域采样方法 直线段对一个像素亮度的贡献与两者相交面积成正比直线段对一个像素亮度的贡献与两者相交面积成正比 。 使线段上各相邻像素的亮度之间
5、有一个平缓的过渡使线段上各相邻像素的亮度之间有一个平缓的过渡 ,淡化了锯齿现象。,淡化了锯齿现象。 主要思想:主要思想: 将直线段看作是具有一定宽度的狭长矩形;将直线段看作是具有一定宽度的狭长矩形; 当直线段与像素有交时,当直线段与像素有交时,求出两者相交区域的面积求出两者相交区域的面积 ; 根据相交的面积确定该像素的亮度等级;根据相交的面积确定该像素的亮度等级; 每个像素面积为单位面积 ; 相交区域面积是介于0、1之间的实数;用它乘以像素可设置的最 大亮度值,即可得到该像 素实际显示的亮度值。 走样现象 反走样技术 非加权采样 加权采样 图形反走样 线段过取样 宽线段过取样 线段区域取样 过
6、滤技术 像素移相 线亮度校正 边界反走样 边界反走样 边界反走样加权区域采样方法加权区域采样方法 这种方法更符合人视觉系统对图像信息的处理方式,这种方法更符合人视觉系统对图像信息的处理方式, 反走样效果更好。反走样效果更好。 将直线段看作是具有一定宽度的狭长矩形;将直线段看作是具有一定宽度的狭长矩形; 当直线段与像素有交时,根据当直线段与像素有交时,根据相交区域与像素中心相交区域与像素中心 的距离的距离来决定其对象素亮度的贡献。来决定其对象素亮度的贡献。 直线段对一个像素亮度的贡献正比于相交区域与像直线段对一个像素亮度的贡献正比于相交区域与像 素中心的距离。素中心的距离。设置相交区域面积元与像
7、素 中心距离的权函数(如高斯函 数等)反映相交面积元对整个像素亮度的贡献大小。利用权函数积分求相交区域 面积,用它乘以像素可设置 的最大亮度值,即可得到该 像素实际显示的亮度值。 走样现象 反走样技术 非加权采样 加权采样 图形反走样 线段过取样 宽线段过取样 线段区域取样 过滤技术 像素移相 线亮度校正 边界反走样 边界反走样 边界反走样直线段的过取样直线段的过取样 过取样过取样( (超放样超放样/ /后过滤后过滤) ): 高分辩率下对对象取样,低分辨率上显示其结果。高分辩率下对对象取样,低分辨率上显示其结果。 把屏幕看成比实际具有更细的网格把屏幕看成比实际具有更细的网格( (子像素子像素)
8、 )来增来增加取样率;加取样率; 沿这种更细网格沿这种更细网格( (子像素子像素) )使用取样点来确定每个使用取样点来确定每个屏幕像素的合适亮度等级。屏幕像素的合适亮度等级。 从多个点从多个点( (子像素子像素) )对一个像素总体对一个像素总体亮度的贡献来得到该象素亮度亮度的贡献来得到该象素亮度; 每个像素可能的亮度等级数目每个像素可能的亮度等级数目 等于像素区域内子像素的总数等于像素区域内子像素的总数 ; 线亮度在更多的像素上描述线亮度在更多的像素上描述, 或线亮度分布在较大数目像素或线亮度分布在较大数目像素 上;且通过上;且通过在阶梯状台阶在阶梯状台阶( (水平水平 长度间长度间) )附近
9、显示有些模糊的线附近显示有些模糊的线路径路径使阶梯形状得到光顺。使阶梯形状得到光顺。每个像素含9个子像素 走样现象 反走样技术 非加权采样 加权采样 图形反走样 线段过取样 宽线段过取样 线段区域取样 过滤技术 像素移相 线亮度校正 边界反走样 边界反走样 边界反走样直线段的过取样直线段的过取样 考虑线宽度时,则将考虑线宽度时,则将每个像素亮度每个像素亮度设置成正比于设置成正比于线区线区 域内的子像素数目域内的子像素数目来完成过取样。来完成过取样。 线路径边界取决于线的斜率:线路径边界取决于线的斜率: 4545线,线路径在区域的中央;线,线路径在区域的中央; 对水平线和垂直线,要求线路径是线宽
10、边界之一;对水平线和垂直线,要求线路径是线宽边界之一; |m|m|1 1时,线路径宜取在接近于较低边界处;时,线路径宜取在接近于较低边界处; |m|m|1 1时,线路径放在较接近于较上边界合适。时,线路径放在较接近于较上边界合适。 有颜色显示时:有颜色显示时: 对子像素亮度进对子像素亮度进 行平均行平均来得到像来得到像 素颜色设置。素颜色设置。 走样现象 反走样技术 非加权采样 加权采样 图形反走样 线段过取样 宽线段过取样 线段区域取样 过滤技术 像素移相 线亮度校正 边界反走样 边界反走样 边界反走样像素像素加权掩模加权掩模 在确定象素的亮度等级时,既考虑在确定象素的亮度等级时,既考虑子像
11、素的多少子像素的多少,还应该考,还应该考 虑虑子像素的位置分布子像素的位置分布。 通常会通常会给接近于像素区域中心的子像素更大的权给接近于像素区域中心的子像素更大的权。 因为这些子像素在确定像素的整体亮度中起更重要的作因为这些子像素在确定像素的整体亮度中起更重要的作 用。用。 图中示出了对图中示出了对3333像素分割所采用的加权方案:像素分割所采用的加权方案: 中心子像素的加权是角子像素的中心子像素的加权是角子像素的4 4倍,是其它像素的倍,是其它像素的2 2倍;倍; 对九个子像素的每个网格所计算出的亮度进行平均。这样的对九个子像素的每个网格所计算出的亮度进行平均。这样的 结果是:结果是: 中
12、心子像素的加权系数为中心子像素的加权系数为1/41/4; 顶部和底部及两侧子像素的加权系数为顶部和底部及两侧子像素的加权系数为1/81/8; 而角子像素的加权系数为而角子像素的加权系数为1/161/16。 指定子像素的相对重要性的值数组有时称为指定子像素的相对重要性的值数组有时称为 子像素权的子像素权的“ “掩模掩模” ”; 也可为较大的子像素网格建立类似掩摸。也可为较大的子像素网格建立类似掩摸。 同样,这些掩模常被扩展为包括来自属于相同样,这些掩模常被扩展为包括来自属于相 邻像素中子像素的贡献,以使亮度能遍及相邻像素中子像素的贡献,以使亮度能遍及相 邻像素而取平均。邻像素而取平均。4 222
13、 21111 走样现象 反走样技术 非加权采样 加权采样 图形反走样 线段过取样 宽线段过取样 线段区域取样 过滤技术 像素移相 线亮度校正 边界反走样 边界反走样 边界反走样直线段的区域取样直线段的区域取样 区域取样区域取样( (或前滤波或前滤波) ) 通过计算像素在对象上的通过计算像素在对象上的覆盖区域覆盖区域来确定像素亮度。来确定像素亮度。 像素覆盖区域像素覆盖区域通过确定通过确定对象边界对象边界与与单个像素边界单个像素边界的的 相交处而得到。相交处而得到。将线看成长方形,在两相邻垂直将线看成长方形,在两相邻垂直( (或水平或水平) )屏幕网格屏幕网格线间的线区域段为四边形,线间的线区域
14、段为四边形,像素的重迭区域就可通像素的重迭区域就可通 过确定在垂直列过确定在垂直列( (或水平行或水平行) )中每个像素覆盖多少个四中每个像素覆盖多少个四边形而计算出边形而计算出。 通过将每个像素亮度设置成正比于通过将每个像素亮度设置成正比于像素与有限宽线像素与有限宽线 的的重迭区域重迭区域可以完成对直线的区域取样。并且这种可以完成对直线的区域取样。并且这种 判断通过采用更细子像素网格而得到提高。判断通过采用更细子像素网格而得到提高。 例如,屏幕像素的约百分之九十被线区域覆盖,那例如,屏幕像素的约百分之九十被线区域覆盖,那 么该像素的亮度就设置为最大亮度的百分之九十。么该像素的亮度就设置为最大
15、亮度的百分之九十。 对于彩色显示,则计算被不同颜色区域覆盖的像素区域对于彩色显示,则计算被不同颜色区域覆盖的像素区域 ,最后的像素颜色则看作为各覆盖区域的平均颜色。,最后的像素颜色则看作为各覆盖区域的平均颜色。 走样现象 反走样技术 非加权采样 加权采样 图形反走样 线段过取样 宽线段过取样 线段区域取样 过滤技术 像素移相 线亮度校正 边界反走样 边界反走样 边界反走样过滤技术过滤技术 反走样线更精确的方法是采用过滤技术。反走样线更精确的方法是采用过滤技术。 这种方法类似于应用加权像素掩模,只是现在假想这种方法类似于应用加权像素掩模,只是现在假想 一个连续的加权曲面一个连续的加权曲面( (或过滤函数或过滤函数) )覆盖像素。覆盖像素。 应用过滤函数的方法类似于应用加权掩模,但现在应用过滤函数的方法类似于应用加权掩模,但现在 是将像素曲面集成来得到加权的平均亮度。为减少是将像素曲面集成来得到加权的平均亮度。为减少 计算量,常用查表法来求整数值。计算量,常用查表法来求整数值。 每个过滤函每个过滤函 数的体积被数的体积被 规范化为规