
图形光栅化ppt课件.ppt
34页第第2章、光章、光栅图形学形学3Ø线宽与与线型的型的处置置Ø字符字符Ø裁剪裁剪Ø反走反走样线宽与与线型的型的处置置一、一、 直直线的的线宽与与线型型1. 1. 笔与刷子笔与刷子线刷子刷子方形刷子方形刷子圆形刷子形刷子棱形刷子棱形刷子问题问题::::线宽线宽与方向的关系与方向的关系与方向的关系与方向的关系偶数偶数偶数偶数线宽时线宽时的位置的位置的位置的位置误误差差差差线宽与与线型的型的处置置2. 2. 线线帽与帽与线衔线衔接接3. 3. 线线型型 实实线线、、虚虚线线、、点点线线、、点点划划线线方帽方帽 突方帽突方帽 圆圆帽帽 斜角斜角衔衔接接 圆衔圆衔接接 斜切斜切衔衔接接线宽与与线型的型的处置置二、二、 曲曲线的的线宽与与线型型1. 1. 等等长画画线问题 圆弧的弧弧的弧长 等像素不等中心角等像素不等中心角问题线宽与与线型的型的处置置2. 2. 线宽线宽的的处处置方法置方法A. A. 展展宽宽算法算法曲曲线线斜率小于斜率小于1 1时时垂直垂直补补像素像素曲曲线线斜率大于斜率大于1 1时时程度程度补补像素像素曲曲线线的粗的粗细细是曲是曲线线斜率的函数,斜率斜率的函数,斜率绝对值绝对值接接近近1 1时时曲曲线显线显得得较细较细B. B. 同心同心圆圆法法分分别别作向内或向外的同心作向内或向外的同心圆圆对对画画圆圆是准确的,但是准确的,但对对其它粗曲其它粗曲线线是近似的是近似的字符字符•字符指数字、字母、字符指数字、字母、汉字等符号。
字等符号•计算机中字符由一个数字算机中字符由一个数字编码独一独一标识•国国际上最流行的字符集:上最流行的字符集:““美国信息交美国信息交换用用规范代范代码集〞,集〞,简称称ASCIIASCII码它是用7 7位二位二进制数制数进展展编码表示表示128128个字符;包括字母、个字符;包括字母、标点、运算符以及一些特殊符号点、运算符以及一些特殊符号字符字符•汉字编码的国家规范字符集:汉字编码的国家规范字符集:GB2312GB2312--8080该字符集分为该字符集分为9494个区,个区,9494个位,每个位,每个符号由一个区码和一个位码共同标识个符号由一个区码和一个位码共同标识区码和位码各用一个字节表示区码和位码各用一个字节表示•为了可以区分为了可以区分ASCIIASCII码与汉字编码,采用码与汉字编码,采用字节的最高位来标识:最高位为字节的最高位来标识:最高位为0 0表示表示ASCIIASCII码;最高位为码;最高位为1 1表示表示汉字编码表示表示汉字编码字符字符•字库:为了在显示器等输出设备上输出字库:为了在显示器等输出设备上输出字符,系统中必需配备有相应的字库字符,系统中必需配备有相应的字库。
字库中存储了每个字符的外形信息,字字库中存储了每个字符的外形信息,字库分为矢量型和点阵型两种库分为矢量型和点阵型两种字符字符 点点阵阵式字符将字符表示式字符将字符表示为为一个矩形点一个矩形点阵阵,由,由点点阵阵中点的不同中点的不同值值表达字符的外形常用的点表达字符的外形常用的点阵阵大小有大小有5*7、、7*9、、8*8、、16*16等字符字符Ø在实践运用中,有多种字体〔如宋体、在实践运用中,有多种字体〔如宋体、楷体等〕,每种字体又有多种大小型楷体等〕,每种字体又有多种大小型号,因此字库的存储空间是很庞大的号,因此字库的存储空间是很庞大的处理这个问题普通采用紧缩技术处理这个问题普通采用紧缩技术Ø点阵字符的显示分为两步首先从字点阵字符的显示分为两步首先从字库中将它的位图检索出来然后将检库中将它的位图检索出来然后将检索到的位图写到帧缓冲器中索到的位图写到帧缓冲器中字符字符 方向方向方向方向编码编码编码编码式字符用有限的假式字符用有限的假式字符用有限的假式字符用有限的假设设设设干种方向干种方向干种方向干种方向编码编码编码编码来表来表来表来表达一个字符,常用的如达一个字符,常用的如达一个字符,常用的如达一个字符,常用的如8 8方向方向方向方向编码编码编码编码。
以下以下图图图图字母字母字母字母“B“B〞〞〞〞 就表示就表示就表示就表示为为为为8 8方向方向方向方向编码编码编码编码::::{000012344400012344440666666}{000012344400012344440666666}方向编码编码编码编码式字符很式字符很式字符很式字符很容易被填入容易被填入容易被填入容易被填入帧缓帧缓帧缓帧缓存存放器中予以存存放器中予以存存放器中予以存存放器中予以显显显显示,方向示,方向示,方向示,方向编码编码编码编码所占所占所占所占的空的空的空的空间间间间比比比比较较较较小,它也能接受一些特定的小,它也能接受一些特定的小,它也能接受一些特定的小,它也能接受一些特定的变换变换变换变换操作操作操作操作 字符字符 矢量式字符将字符表达矢量式字符将字符表达矢量式字符将字符表达矢量式字符将字符表达为为为为一个点坐一个点坐一个点坐一个点坐标标标标的序列,相的序列,相的序列,相的序列,相邻邻邻邻两点表示一条矢量,字符的外形便由矢量序列刻划两点表示一条矢量,字符的外形便由矢量序列刻划两点表示一条矢量,字符的外形便由矢量序列刻划。
两点表示一条矢量,字符的外形便由矢量序列刻划调调调调用矢量式字符的用矢量式字符的用矢量式字符的用矢量式字符的过过过过程相当于程相当于程相当于程相当于输输输输出一个出一个出一个出一个polylinepolyline由于矢量式字符具有和量式字符具有和量式字符具有和量式字符具有和图图图图形相一致的数据构造,因此可以接受形相一致的数据构造,因此可以接受形相一致的数据构造,因此可以接受形相一致的数据构造,因此可以接受任何任何任何任何对对对对于于于于图图图图形的操作,如放大、旋形的操作,如放大、旋形的操作,如放大、旋形的操作,如放大、旋转转转转,甚至透,甚至透,甚至透,甚至透视视视视而且,矢量式字符不矢量式字符不矢量式字符不矢量式字符不仅仅仅仅可用于可用于可用于可用于显显显显示,也可用于示,也可用于示,也可用于示,也可用于绘图绘图绘图绘图机机机机输输输输出 字符字符•特点:特点:•点点阵字符:存字符:存储量大,易于量大,易于显示示•矢量字符:存矢量字符:存储量小,美量小,美观,,变换方便方便; ; 但但需求光需求光栅化后才干化后才干显示字符字符 当当对输对输出字符的要求出字符的要求较较高高时时〔 〔如排版印刷如排版印刷〕 〕,,需求运用高需求运用高质质量的点量的点阵阵字符。
字符对对于于GB2312-80所所规规定的定的6763个根本个根本汉汉字,假字,假设设每个每个汉汉字是字是72X72点点阵阵,那么一个字,那么一个字库库就需求就需求72X72X6763/8=4.4兆字兆字节节存存储储空空间间;不但如;不但如此,在此,在实实践运用践运用时时,,还还需求多种字体需求多种字体〔 〔如根本如根本体、宋体、仿宋体、黑体、楷体等体、宋体、仿宋体、黑体、楷体等〕 〕,每种字,每种字体又需求多种字号可体又需求多种字号可见见,直接运用点,直接运用点阵阵字字符方法将耗符方法将耗费费宏大的存宏大的存储储空空间间 字符字符 处处理理这这个个问题问题普通采用普通采用紧缩紧缩技技术术对对字型数字型数据据紧缩紧缩后再存后再存储储,运用,运用时时,将,将紧缩紧缩的数据复原的数据复原为为字符位字符位图图点点阵阵紧缩紧缩方法有多种,最方法有多种,最简单简单的有黑的有黑白段白段紧缩紧缩法,法,这这种方法种方法简单简单,复原快,不失真,,复原快,不失真,但但紧缩较紧缩较差,运用起来也不方便,普通用于低差,运用起来也不方便,普通用于低级级的文字的文字处处置系置系统统中另一种方法是部件中。
另一种方法是部件紧缩紧缩法这这种方法种方法紧缩紧缩比大,缺陷是字型比大,缺陷是字型质质量不能保量不能保证证三是三是轮轮廓字型法,廓字型法,这这种方法种方法紧缩紧缩比大,且能保比大,且能保证证字符字符质质量,是当今国量,是当今国际际上最流行的一种方法,根上最流行的一种方法,根本上也被以本上也被以为为是符合工是符合工业规业规范化的方法范化的方法 字符字符 轮轮廓字型法采用直廓字型法采用直线线、或者二、三、或者二、三次次Bezier曲曲线线的集合来描画一个字符的的集合来描画一个字符的轮轮廓廓线线轮轮廓廓线线构成一个或假构成一个或假设设干个封干个封锁锁的平面区域的平面区域轮轮廓廓线线定定义义加上一些指加上一些指示横示横宽宽、、竖宽竖宽、基点、基、基点、基线线等的控制信等的控制信息,就构成了字符的息,就构成了字符的紧缩紧缩数据 字符字符 由美国由美国Apple和和Microsoft公司公司结结合开合开发发的的TrueType字型技字型技术术就是一种就是一种轮轮廓字型技廓字型技术术,,已被用于已被用于为为Windows中文版生成中文版生成汉汉字字字字库库当前占当前占领领主要的主要的电电子印刷市子印刷市场场的我国北大方的我国北大方正和正和华华光光电电子印刷系子印刷系统统,用的字型技,用的字型技术术是是汉汉字字型字字型轮轮廓矢量法。
廓矢量法 字符字符字符的主要属性:字符的主要属性:字体〔黑体、楷体、仿宋〕、字体〔黑体、楷体、仿宋〕、字高、字字高、字宽因子〔宋体、宋体、宋体因子〔宋体、宋体、宋体〕〕字字倾斜角〔斜角〔倾斜〕、斜〕、对齐方式方式字色〔字色〔红色、色、绿色、黄色〕、色、黄色〕、写方式等写方式等•用离散量表示延用离散量表示延续量引起的失真景象称之量引起的失真景象称之为走走样(aliasing)(aliasing)•用于减少或消除用于减少或消除这种效果的技种效果的技术称称为反走反走样(antialiasing)(antialiasing)•提高分辨率提高分辨率•区域采区域采样•加加权区域取区域取样反走反走样 (Anti-Aliasing) (Anti-Aliasing)反走反走样 (Anti-Aliasing) (Anti-Aliasing)•不光滑不光滑(阶梯状〕的图形边境阶梯状〕的图形边境反走反走样 (Anti-Aliasing) (Anti-Aliasing)•图形细节失真图形细节失真反走反走样 (Anti-Aliasing) (Anti-Aliasing)•狭小图形的遗失与动态图狭小图形的遗失与动态图形的闪烁形的闪烁反走反走样 (Anti-Aliasing) (Anti-Aliasing)10 11 12 1310 11 12 132323222221212020理想几何理想几何理想几何理想几何线线的的的的过过取取取取样样子像素位置子像素位置子像素位置子像素位置反走反走样 (Anti-Aliasing) (Anti-Aliasing)•把把显示器分辨率提高一倍〔硬件方法〕示器分辨率提高一倍〔硬件方法〕•直直线经过两倍的象素,两倍的象素,锯齿也添加一倍,也添加一倍,•但同但同时每个每个阶梯的梯的宽度也减小了一倍,度也减小了一倍,•所以所以显示出的直示出的直线段看起来就平直光滑段看起来就平直光滑了一些。
了一些反走反走样 (Anti-Aliasing) (Anti-Aliasing)•方法方法简单,但代价非常大但代价非常大显示器的程示器的程度、度、竖直分直分辩率各提高一倍,那么率各提高一倍,那么显示示器的点距减少一倍,器的点距减少一倍,帧缓存容量那么添存容量那么添加到原来的加到原来的4倍,而倍,而扫描描转换同同样大小的大小的图元却要花元却要花4倍倍时间•而且它也只能减而且它也只能减轻而不能消除而不能消除锯齿问题反走反走样 (Anti-Aliasing) (Anti-Aliasing)•高分辨率高分辨率计算低分辨率算低分辨率显示〔示〔软件方法〕件方法〕• 用用较高的分辨率的高的分辨率的显示方式下示方式下计算,算,〔〔对各自像素下各自像素下计算,再求加算,再求加权平均的平均的颜色色值〕,在〕,在较低的分辨率方式下低的分辨率方式下显示•只能减只能减轻而不能消除而不能消除锯齿问题1111算算术术平均平均1 22142121加加权权平均平均反走反走样 (Anti-Aliasing) (Anti-Aliasing)简单区域取区域取样•方法由来方法由来•两点假两点假设•1、象素是数学上、象素是数学上笼统的点,它的面的点,它的面积为0,,它的亮度由覆盖它的亮度由覆盖该点的点的图形的亮度所决形的亮度所决议;;•2、直、直线段是数学上段是数学上笼统直直线段,它的段,它的宽度度为0。
•现实•像素的面像素的面积不不为0;;•直直线段的段的宽度至少度至少为1个像素;个像素;•假假设与与现实的矛盾是的矛盾是导致混淆出致混淆出现的的缘由之由之一一反走反走样 (Anti-Aliasing) (Anti-Aliasing)处处理方法:改理方法:改理方法:改理方法:改动动直直直直线线段模型,由此段模型,由此段模型,由此段模型,由此产产生算法生算法生算法生算法方法步方法步方法步方法步骤骤::::1、将直线段看作具有一定宽度的狭长矩形、将直线段看作具有一定宽度的狭长矩形2、当直线段与某象素有交时,求出两者相交区域的面积、当直线段与某象素有交时,求出两者相交区域的面积3、根据相交区域的面积,确定该象素的亮度值、根据相交区域的面积,确定该象素的亮度值 mD反走反走样 (Anti-Aliasing) (Anti-Aliasing)〔〔〔〔1 1〕〕〕〕 〔〔〔〔2 2〕〕〕〕 〔〔〔〔3 3〕〕〕〕设设直直直直线线斜率斜率斜率斜率为为mm,,,, 那么那么那么那么(1) (1) 中三角形阴影面中三角形阴影面中三角形阴影面中三角形阴影面积为积为:::: (2) (2) 中梯形阴影面中梯形阴影面中梯形阴影面中梯形阴影面积为积为::::(3) 1 - D2/m(3) 1 - D2/m•为为了了了了简简化化化化计计算可以采用离散的方法算可以采用离散的方法算可以采用离散的方法算可以采用离散的方法• n=9,k=3 n=9,k=3 n=9,k=3 n=9,k=3近似面近似面近似面近似面积为积为1/31/31/31/3•首先将屏幕象素均分成首先将屏幕象素均分成首先将屏幕象素均分成首先将屏幕象素均分成n n n n个子象素,个子象素,个子象素,个子象素,•然后然后然后然后计计算中心点落在直算中心点落在直算中心点落在直算中心点落在直线线段内的子象素的个数段内的子象素的个数段内的子象素的个数段内的子象素的个数k k k k。
•将屏幕将屏幕将屏幕将屏幕该该象素的亮度置象素的亮度置象素的亮度置象素的亮度置为为相交区域面相交区域面相交区域面相交区域面积积的近似的近似的近似的近似值值可可可可k/nk/nk/nk/n反走反走样 (Anti-Aliasing) (Anti-Aliasing)反走反走样 (Anti-Aliasing) (Anti-Aliasing)简单区域取区域取样缺陷:缺陷:象素的亮度与相交区域的面象素的亮度与相交区域的面积成正比,成正比,而与相交区域落在象素内的位置无关,而与相交区域落在象素内的位置无关,这依然会依然会导致致锯齿效效应直直线条上沿理想直条上沿理想直线方向的相方向的相邻两个象两个象素有素有时会有会有较大的灰度差大的灰度差反走反走样 (Anti-Aliasing) (Anti-Aliasing)加加权区域采区域采样〔〔滤波〕波〕 相交区域相交区域相交区域相交区域对对像素亮度的奉献依像素亮度的奉献依像素亮度的奉献依像素亮度的奉献依赖赖于于于于该该区域和像素中心的区域和像素中心的区域和像素中心的区域和像素中心的间间隔,隔,隔,隔,经过计经过计算相交区域算相交区域算相交区域算相交区域A’A’上上上上对滤对滤波器的波器的波器的波器的积积分得到像素的分得到像素的分得到像素的分得到像素的亮度。
常用的亮度常用的亮度常用的亮度常用的滤滤波器有波器有波器有波器有圆锥圆锥形,高斯函数等形,高斯函数等形,高斯函数等形,高斯函数等•可采用离散可采用离散计算方法算方法•如:我如:我们将屏幕划分将屏幕划分为n=3×3n=3×3个子象素,个子象素,加加权表可以取作:表可以取作:•权函数函数w w〔〔x,yx,y〕〕为微面元微面元dAdA与象素中心与象素中心间隔隔d d的函数的函数反走反走样 (Anti-Aliasing) (Anti-Aliasing)Ø然后求出一切中心落于直然后求出一切中心落于直线段内的子象素段内的子象素Ø最后最后计算一切算一切这些子象素些子象素对原象素亮度奉原象素亮度奉献之和献之和 乘以象素的最大灰度乘以象素的最大灰度值作作为该象素的象素的显示灰度示灰度值反走反走样 (Anti-Aliasing) (Anti-Aliasing)。












