首页 / 专利库 / 专利权 / 专利合作条约 / 第I章 / 国际申请 / 说明书 / 序列表 / 根据动画脚本将对象动态化为帧序列的方法

根据动画脚本将对象动态化为序列的方法

阅读:836发布:2023-01-15

专利汇可以提供根据动画脚本将对象动态化为序列的方法专利检索,专利查询,专利分析的服务。并且一种方法根据一个动画脚本将一个对象动态化为一个 帧 序列。所述对象被表示为一个二维距离场。对于所述帧序列中的每一帧,根据所述动画脚本更新所述对象的一个形态。用所述的更新后的形态和一种反锯齿 渲染 方法对所述对象进行渲染。,下面是根据动画脚本将对象动态化为序列的方法专利的具体信息内容。

1.一种根据一个动画脚本将一个对象动态化为一个序列的方 法,包括:
将所述对象表示为一个二维距离场;
对于所述帧序列中的每一帧,根据所述动画脚本更新所述动象的 一个形态;以及
用所述的更新后的形态和一个反锯齿渲染方法渲染所述对象。
2.根据权利要求1所述的方法,其中所述二维距离场是从所述 对象的一个轮廓线描述获得的。
3.根据权利要求1所述的方法要,其中所述二维距离场是从所 述对象的一个位图描述获得的。
4.根据权利要求1所述的方法,其中更新所述对象的所述形态 是通过向所述对象应用一个刚体变换来进行的。
5.根据权利要求1所述的方法,其中更新所述对象的所述形态 是通过向所述对象应用一个自由形态变形来进行的。
6.根据权利要求1所述的方法,其中更新所述对象的所述形态 是通过向所述对象应用一个软体冲击变形来进行的。
7.根据权利要求1所述的方法,其中更新所述对象的所述形态 是通过向所述对象应用一个平设置方法来进行的。
8.根据权利要求1所述的方法,其中更新所述对象的所述形态 是通过应用一个颗粒模拟来进行的。
9.根据权利要求1所述的方法,其中更新所述对象的所述形态 是通过改变所述对象的渲染属性来进行的。
10.根据权利要求1所述的方法,其中所述渲染进一步包括:
将表示所述对象的所述二维距离场中的一个采样点集合与一个 象素的一个成分相关联;
根据所述二维距离场和所述采样点集合确定一个距离;以及
将所述距离映射为所述象素的所述成分的一个反锯齿强度。
11.根据权利要求1所述的方法,其中所述二维距离场被划分 为多个单元,每个单元包括一种在该单元内重建二维距离场的方法, 并且其中所述渲染进一步包括:
识别表示所述对象的所述二维距离场的一个单元集合,所述单元 集合与要被渲染的所述二维距离场的一个区域相关联;
定位与所述区域相关联的一个象素集合;
为所述象素集合中的每个象素指定一组成分;以及
为所述象素集合中的每个象素的每个成分确定一个反锯齿强度, 所述确定进一步包括:
根据所述单元集合确定所述象素的所述成分的一个距离;以 及
将所述距离映射为所述象素的所述成分的所述反锯齿强度。
12.根据权利要求1所述的方法,其中所述动画脚本指示所述 对象的位置
13.根据权利要求1所述的方法,其中所述动画脚本指示所述 对象的大小。
14.根据权利要求1所述的方法,其中所述动画脚本指示所述 对象的方向。
15.根据权利要求1所述的方法,其中所述动画脚本指示所述 对象的变形。

说明书全文

技术领域

发明主要涉及计算机图形学领域,并且尤其涉及由距离场表示 的二维对象的渲染

背景技术

在计算机图形学领域,二维对象的渲染(rendering)是十分重要 的。二维对象,如字符形状、企业标志以及包含在文档中的图例元素, 都是作为静态图像或是作为组成一个动画的一系列进行渲染的。二 维对象有多种表示方法,并且常常会出现这样一种情况,即对于特定 的操作如渲染与编辑,一种表示方法要优于其他的表示方法。在这种 情况下,就要进行从一种形式到另一种形式的转换。
尽管此处我们关注数字的字型(type),这可能是最常见最重要 的二维对象了,但是下列说明适用于所有类型的二维对象。
我们从数字字型的一些基础背景开始。一种典型的拉丁字体族, 如Times New Roman或Arial,包括一组字体(font),比如常规、 斜体、粗体或粗斜体。每种字体包括一组单独的字符形状,称为字形 (glyphs)。每种字形由它不同的设计特征来区分,比如基本的几何 形状、笔画浓度、衬线、连笔形式、布局以及轮廓、薄-厚笔画的比 例,以及尺寸。
有多种方法可用来表示字体,包括位图、轮廓线,比如Type 1[Adobe Systems,Inc.1990]和Truetype[Apple Computer,Inc. 1990],以及过程字体,比如Knuth的Metafont,其中轮廓线起主导 作用。基于轮廓线的表示方法被Mass.Cambridge的Bitstream Inc.、 Calif.Mountain View的Adobe System,Inc.、Calif.Cupertino的Apple Computer,Inc.、Wash.Bellevue的Mierosoft Corporation、德国 Hamburg的URW以及Mass Wilmington的Agfa Compugraphic采用 并推广。
由Hersch所著并发表于Cambridge University Press,1993的 “Visual and Technical Aspects of Type(字体的视觉与技术观点)”以 及由Knuth所著并发表于Digital Press,Bedford,MA 1979的“TEX and METAFONT:New Directions in Typesetting(TEX与元字形:排 版的新方向)”中,包含了大量关于字体的历史与科学的综合评论。
具有特殊重要性的是两类字型尺寸:正文字型尺寸和显示字型尺 寸。正文字型的字体以相对较小的磅值渲染,如14磅或更小,并且被 使用在一个文档的主体(正文)部分中,就像在本段落中一样。正文 字型要求高质量的渲染,以获得清晰度和阅读舒适度。正文字型的尺 寸、字样以及基线方向在单篇文档中很少改变。
显示字型的字体以相对较大的磅值渲染,如36磅或更高,并且 被用于标题、头条、以及为表达情绪或引起注意的设计及广告中。与 正文字型不同,显示字型注重美观,其中缺少空域及时域上的锯齿 (aliasing)是重要的,而非清晰度,其中对比度比反锯齿(antialising) 更重要。用来表示及渲染字型的框架应该能够处理好这两种具有相互 冲突的需求的类型,这一点是至关重要的。
字型可以以二值、灰度或彩色的形式被提供给一个输出装置,比 如打印机或显示器。某些渲染引擎为非常小的字型尺寸使用二值渲染, 以达到较好的对比度。然而,具有良好提示的灰度字体是同样清楚可 辨别的。
“提示”是与每种字形存储在一起的一组规则或过程,用以规定在 渲染过程中如何修改字形的轮廓线,以保持诸如对称性、笔画浓度之 类的特性,以及一种字体中所有字形的统一外观。
尽管人们已经尝试设计自动和半自动的提示系统,但是提示过程 仍然是新字体设计以及转换现有字体以供低分辨率显示设备使用中的 主要瓶颈。另外,解释提示规则的复杂性导致不能运用硬件进行字体 渲染。缺少硬件支持,就不得不在软件光栅化的过程中作出折衷,比 如每个象素使用更少的样值,特别是在实时地生成动态字型时。
灰度字体渲染通常包含某些形式的反锯齿。反锯齿(Antialising) 是一种处理过程,它能消除二值字体中出现的锯齿边缘或阶梯效应。 尽管有多种字体渲染引擎都适合使用,但是大部分都会在网格装配及 提示之后以每象素4或16个采样值进行过采样,随后分别以2×2或4×4 的箱式滤波器进行下采样
基本的滤波,如箱式滤波(box filtering),出于渲染速度的需 要而是必要的。但是,即使是那种方法,对于实时渲染(如动态字型 所需的那样)而言常常也是太慢的,从而经过渲染的字形会带有空域 或时域上的锯齿。
印刷术的两个重要发展趋势揭示了现有技术的字体表示方法的 某些固有局限性,由此提出了变革的需求。
第一种趋势是越来越多地强调在屏幕上阅读文本,这种趋势是由 计算机在办公室中的主地位、家庭互联网浏览普及程度的提高以及 PDA与其他手持电子设备的广泛使用共同引起的。这些显示设备通常 具有每英寸72-100点的分辨率,这种分辨率显著低于印刷设备的分辨 率。
在对字型进行光栅化时,这种低分辨率需要特殊对待以保证阅读 舒适度和清晰度,比如Microsoft与Bitstream公司在他们各自的 ClearType与FontFusion技术中投入使用的资源就证明了这一点。
第二种趋势是动态字型(animated type)或动态印刷术的使用。 动态字型被用来表达情感、增添趣味性以及在视觉上吸引读者的注意。 动态字型的重要性由它在电视及互联网广告中的广泛使用即可见一 斑。
不幸的是,传统的基于轮廓线的字体在这两个领域内都有局限 性。在低分辨率显示器上渲染字体需要仔细对待,以便平衡对良好对 比度的要求以及降低空域和/或时域锯齿的要求,前者是清晰度所需, 后者则是阅读舒适度所需。
如上所述,基于轮廓线的字体通常会被提示,以向渲染引擎提供 指示,从而获得最佳外观。字体提示是煞费劳且成本高昂的。例如, 为日文或中文字体开发一套具有完善提示的字体图案可能要耗费数年 时间,这两种字体中可能包含了超过一万种的字形。由于提示的焦点 在于改善正文字型的渲染质量,因此这种提示对于放置在任意路径上 的字型以及对于动态字型来说是效果不佳的。
尽管高质量的滤波可以被用来反锯齿化静态文档中的灰度字型, 其中这种文档中只含有有限数量的字体尺寸和字体图案,但是在动态 字型中进行滤波往往会受到实时渲染要求的限制。

发明内容

本发明提供了根据一个动画脚本将一个对象动态化为一个帧序 列的方法。所述对象被表示为一个二维距离场。对于所述帧序列中的 每一帧,根据所述动画脚本更新所述对象的一个形态。用所述的更新 后的形态和一种反锯齿渲染方法对所述对象进行渲染。
附图说明
图1A与1B示出了现有技术下字形的距离场表示的框图
图2A与2B根据本发明的优选实施例示出了距离场表示的框图;
图3根据本发明的优选实施例示出了距离场的一个双二次单元的 框图;
图4根据本发明示出了一种用来按图像顺序反锯齿一个对象的方 法的流程图
图5示出了本发明所使用的一种线性滤波器的图;
图6A、6B及6C示出了一个象素成分附近的采样的示意图;
图7根据本发明示出了一种用来按对象顺序反锯齿一个对象的方 法的流程图;
图8根据本发明示出了一种用于基于距离的自动提示的方法的流 程图;
图9根据本发明示出了一种用来将一个笔画转换成一个距离场的 方法的流程图;
图10根据本发明示出了用来将一个二维对象转换成一个距离场 的方法的流程图;
图11根据本发明示出了用来将一个距离场转换成边界描述符的 方法的流程图;
图12根据本发明示出了用来动态化一个对象的方法的流程图; 以及
图13根据本发明示出了用来生成一个包含有一个二维对象的一 角的单元中的二维距离场的方法的流程图。

具体实施方式

字形的距离场表示
我们的发明将一个闭合的二维形状S——如字形、企业标志或一 个对象的任何数字化表示形式——表示为一个二维的有符号距离场 D。为了我们的说明目的,我们借助于字形。
通俗地说,一种字形的距离场度量了从场中任意一点到字形边缘 的最短距离,其中如果所述点位于所述字形之外,那么所述距离的符 号就是负的,而如果所述点位于字形之内,则所述距离的符号就是正 的。边缘上的点距离为零。
正式地说,距离场是作用于所有p∈R2的一种映射D:R2→R,从 而使得D(p)=sign(p)·min{‖p-q‖:对于所有位于零等值面上的点q,即S的边缘}, sign(p)={-1,如果p在S之外;+1,如果p在S之内},并且‖·‖为欧几里得范数。
现有技术基于覆盖的渲染方法使用单个离散的样点来表示每个 象素,即使在所述的样点充分靠近轮廓线时,这种方法也可能完全弄 错字形。被渲染的字形有锯齿状边缘以及漏失的部分,这两者都是空 域锯齿的表现形式。如果所述的字形被动态化,那么时域锯齿就会导 致闪烁的轮廓和锯齿状的边缘,它们在运动期间就像“蠕动”一样。对 每个象素采用额外的样点以形成一种反锯齿的渲染,这样做可以消除 这些锯齿效应,但是要达到可接受的结果需要许多样点。
相反,即使当样点位于形状之外时,根据我们的发明的连续采样 距离值也能表示出字形的近似。实际上,单个样点值可以被用来估算 有多少字形位于以各个象素为中心的滤波器覆盖范围之内。
另外,由于距离场平缓地变化,即它是C0连续的,因此采样值 会随字形运动而缓慢变化,从而减少了时域锯齿成分。
距离场还拥有其他优点。由于它们是一种隐式的表示方法,因此 它们享有隐函数的好处。具体地说,距离场提供了一种用于设计字体 的直观界面。例如,字形的个别部分,如直笔、横笔、弧形笔画或衬 线可以分别独立设计。在设计之后,所述的部分就可以利用隐式组合 方法组合在一起,以构成相同字体图案的不同字形。
距离场在动态排版术或动态字型领域还能提供许多好处,因为距 离场所提供的信息对于模拟对象间的互动是非常重要的。
在一种优选实施例中,我们采用自适应采样距离场,即ADF, 参见美国专利6396492号,Frisken、Perry及Jones的“Detail-directed hierarchical distance fields(面向细节的分级距离场)”,此处通过引 用包含进来。
ADF是距离场的有效数字表示法。ADF运用面向细节的采样以 减少表示距离场所需的样点数。所述的样点被存储在单元的空域分级 结构中,如四叉树中,以便进行高效的处理。另外,ADF还提供了用 来根据采样值重建距离场的方法。
面向细节的或自适应的采样根据场内的局部变化对距离场采样: 当局部变动大时使用更多的样点,而在局部变动小时使用较少的样点。 与常规采样的距离场以及三色四叉树相比,自适应采样显著降低了对 存储器的需求,常规采样以均匀的速率采样整个距离场,而三色四叉 树则总是在边缘附近以最高速率采样。
图1A-1B对用三色四叉树表示Times Roman的‘a’和‘D’所需的单 元数量与用图2A-2B中的双二次ADF表示相同精度所需的单元数量 进行了比较。单元数量与存储需求直接相关。两种四叉树都具有相当 于512×512的距离值图像的分辨率。用于表示‘a’和‘D’的三色四叉树 分别具有17393和20813个单元,而相应的双二次ADF只有457和 399个单元。双二次ADF通常所需的单元数比Frisken等人提出的现 有技术的双线性表示方法少5-20倍,这一点在“Adaptively Sampled Distance Fields:a General Representation of Shape for Computer Graphics(自适应采样的距离场:用于计算机图形学的通用图形表示 法)”中有所说明,该文发表于Proceedings ACM SIGGRAPH 2000, pp.249-254,2000。
双二次重建方法
Frisken等人利用四叉树作为ADF空域分级结构,并从在每个单 元的四个角上采样的距离、通过双线性内插在每个单元内重建距离及 梯度。他们提出“更高阶的重建方法...可以被用来进一步提高压缩率, 但是所述数字已经表明额外努力所换得的回报开始减小”。
然而,双线性ADF对于本发明所述的表现、渲染、编辑以及动 态化字符字形而言还是不够用的。具体地说,它们需要过多的存储器, 处理效率太低,并且在非边缘单元中的重建场的质量对动态模拟之类 的操作来说是不够的。
一种“有界表面”方法可以强制在非边缘单元中进行细分,它要求 处在距离所述表面(即边缘)一个有界距离内的非边缘单元通过一项 误差判定测试,参见Perry等人所著的“Kizamu:A System for Sculpting Digital Characters(Kizamu:一种用于塑造数字字符的系 统)”,该文发表于Proceedings ACM SIGGRAPH 2001,pp.47-56, 2001。尽管上述方法减少了该有界区域内距离场的误差,但我们发现 对于双线性ADF来说,那种方法会导致无法容忍的单元数量增加。
为了应对那些局限性,我们用双二次重建方法替代了双线性重建 方法。典型字形的双二次ADF所需要的单元比双线性ADF少5-20倍。 当我们要求在非边缘单元中得到精确的距离场以便进行动态模拟和动 态化字型这样的操作时,所需单元数就出现了更高的减少量。
这种显著的存储量减少使得一个典型动画所需的字形能够被存 入现代CPU的片上高速缓存中。这对处理时间有着惊人的影响,因为 对系统存储器的访问基本上被排除了,这样就轻易地补偿了高阶重建 方法所需的额外计算。
图3根据我们的优选实施例示出了一个双二次ADF单元300。 双二次ADF中的每个单元包含9个距离值301。点(x,y)302处的距离 与梯度都可以根据下列方程1-3由这9个距离值重建出来。
有多种双二次重建方法可供使用。我们采用二变量内插多项式, 它能保证沿同样大小的相邻单元的公共边缘的C0连续性。与使用双线 性方法一样,不同大小的相邻单元之间距离场的连续性是利用误差判 定来维持在一个规定容限内的。所述的误差判定在ADF生成期间控制 单元的细分,参见上述Perry等人的著作。
点(x,y)302处的距离与梯度如下确定,其中x和y都是用单元坐 标表示的,即(x,y)∈[0,1]×[0,1]:
令xv1=x-0.5且xv2=x-1
令yv1=y-0.5且yv2=y-1
令bx1=2xv1·xv2、bx2=-4x·xv2且bx3=2x·xv1
令by1=2yv1·yv2、by2=-4y·yv2且by3=2y·yv1
dist=by1·(bx1·d1+bx2·d2+bx3·d3)+
      by2·(bx1·d4+bx2·d5+bx3·d6)+            (1)
      by3·(bx1·d7+bx2·d8+bx3·d9)
gradx=-[by1·(4x·(d1-2d2+d3)-3d1-d3+4d2)+
         by2·(4x·(d4-2d5+d6)-3d4-d6+4d5)+      (2)
         by3·(4x·(d7-2d8+d9)-3d7-d9+4d8)]
grady=-[(4y-3)·(bx1·d1+bx2·d2+bx3·d3)-
         (8y-4)·(bx1·d4+bx2·d5+bx3·d6)+      (3)
         (4y-1)·(bx1·d7+bx2·d8+bx3·d9)]
利用浮点运算重建一个距离可能需要约35次浮点操作(flops), 而利用浮点运算重建一个梯度则需要约70flops。由于我们的重建方 法不包含分支,并且字形可以完全存放在一个片上高速缓存中,因此 我们就可以通过利用特殊的CPU指令以及现代CPU的深指令流线 来进一步优化这些重建方法。另外,我们还可以利用定点运算来重建 距离与梯度。
用于传输及存储的压缩
线性四叉树
ADF四叉树的空域分级结构是某些处理过程(如冲突检测)所 需要的,但是对于其他处理,比如下文中将要说明的基于单元的渲染 来说却不是必要的。
要为ADF字形的传输及存储提供压缩,我们采用一种线性四叉 树结构,该结构将我们的双二次ADF存储为一个叶单元列表。该树状 结构可以根据需要由所述的叶单元恢复出来。
线性ADF四叉树中的每个叶单元中包括该单元的x和y位置, 每个位置用2个字节表示,该单元的级别用1个字节表示,单元中心 处的距离值用2个字节表示,以及8个距离中心的距离偏移量各用1 个字节表示,每个单元总共15个字节。
各个距离偏移量是通过从中心距离值中减去其对应的样点的距 离值、用单元大小进行比例缩放以减小量化误差、再截取成8个比特, 从而得到的。表示每个单元位置的两个字节以及表示单元级别的一个 字节可以以高达216×216的分辨率表示ADF。这对于表示在显示屏分辨 率下渲染的字形来说是足够了。
字形能够用16比特的距离值精确表示。将8个距离值编码成8 比特的距离偏移量比各用两个字节存储每个值要节省的多。尽管在理 论上,这样做可能会导致大单元的距离场中出现一些误差,但我们还 未发现任何视觉效果上的退化。
一个高分辨率的字形通常需要500-1000个叶单元。无损熵编码 可以额外得到35-50%的压缩。因此,高分辨率ADF的整个字体图案 可以用300-500Kbytes表示出来。如果只需要正文字型或者目标分辨 率比较粗糙,就像用于移动电话的情况,那么就可以使用仅需1/4至 1/2单元数的低分辨率ADF。
这些存储量显著小于灰度位图字体,并且与带有良好提示的基于 轮廓线的字体的存储量相当,所述灰度位图字体的每种字体图案的每 个点尺寸需要约0.5Mbytes。TrueType字体的大小从数十Kbytes到 数十Mbytes不等,取决于字形数量以及提示方法的数量。Arial和 Times New Roman是Monotype Corporation的两种具有良好提示的 字体,它们分别需要266Kbytes和316Kbytes。
从轮廓线实时生成
根据我们的发明,ADF可以根据已有的轮廓线或边界描述符(比 如Bezier曲线)利用Perry等人所述的平铺生成器快速地生成,下文 中将对此进行详细的说明。到字形轮廓线或边界的最小距离可以利用 Bezier裁剪高效地计算出来,参见Sederberg等人所著的“Geometric Hermite Approximation of Surface Patch Intersection Curves(曲面交 线的几何赫尔米特近似)”,该文发表于CAGD,8(2),pp.97-114, 1991。
在2GHz Pentium IV处理器上生成每个字形需要0.04-0.08秒。 整套字体图案可以在大约4秒内生成。由于不需要传统的提示,生成 ADF所需的边界描述符远远小于它们相应的有提示的对应物。
因此,我们可以存储这些最小轮廓线,并根据需要由这些轮廓线 动态地生成ADF字形,而不是存储ADF。这些最小轮廓线的小尺寸 对于存储空间有限的设备以及在有限带宽的网络上传输字形的应用来 说是很重要的。
图10示出了用于将二维对象(比如字形)转换成二维距离场的 方法1000。对象1001被表示成一组边界描述符(比如曲线spline)和 一个填充规则(比如一种奇偶规则或非零环绕规则)。
所述的一组边界描述符首先经过预处理1010。该预处理过程对边 界描述符进行细分以减小它们的空间跨度。所述的边界描述符还可以 被接合起来以减小边界描述符组的基数。该预处理过程使得我们可以 在确定无符号距离时减少为每个位置查询所需的边界描述符数量,这 将在下文中说明。
根据经过预处理的边界描述符组1011构建1020一个空域分级结 构1021,比如一棵四叉树。交点(intersections)的高速缓存1031被 初始化1030。交点的高速缓存1031中储存边界描述符与一组直线(比 如距离场的水平线、垂直线、对角线等等)相交的位置,以及相交的 方向。这样做能够去除决定无符号距离的符号时的冗余计算。可以根 据间隔对这些交点排序。
然后在一组位置上查询1040所述的空域分级结构1021,以确定 那些位置上的一组距离。该组距离被用来构建一个二维距离场1041。 所述的查询在每个位置上调用一个距离函数,比如Bezier裁剪,以测 定一个无符号的距离。交点的高速缓存、所述的位置以及所述填充规 则都被用来为该距离决定一个符号。
通过基于组件的字体的压缩
适用于中文、日文以及韩文字体的有效压缩可以通过使用Font Fusion中所用的基于组件的表示法来实现,所述的这些字体中可能包 含10000或更多的字形。所述的表示法将字形分解成通用的笔画和部 首,即多种字形共用的复杂形状,将这些笔画和部首存储到一个字体 库中,然后在字体渲染引擎中重新组合它们。
由于距离场是隐式表示法,因此可以利用混合或CSG操作轻易 地组合ADF,由此也可见ADF是非常适合通过基于组件的方法进行 压缩的。
在二维距离场中表示拐角
双线性或双二次重建方法所用的面向细节的采样允许ADF用较 少数量的距离值来表示一个二维对象的边界的相对平滑的部分。然而, 在拐角附近,距离场有较大的变化,这些重建方法就不能很好地近似 了。为了精确地表示拐角附近的距离场,这些ADF要求包含拐角的单 元被高度细分,从而显著提高了存储器需求。另外,ADF的最大细分 层次限制了用双线性及双二次ADF单元表示拐角所能达到的精度,其 中如Perry等人所述最大细分层次是在ADF生成期间施加的。
为了应对这个问题,我们的发明提供了一种方法1300,该方法可 以在含有二维对象(如字形)的拐角的单元内生成一个二维距离场。
方法1300从二维对象确定1310一个边界描述符的有序集合 1311,并根据边界描述符1311的有序集合识别出1320一个单元内的 拐角点1321。然后该单元被划分1330成两个区域,最接近拐角的第 一区域和最接近对象边界的第二区域。方法1300还规定了1340一种 重建方法以及一组采样距离值1371,用于重建所述单元内的距离场, 并且该方法将拐角点1321、界定区域的线条、重建方法以及采样距离 值集合1371储存1380在一个存储器中。
所述的重建方法根据某一点所在的区域来决定单元内该点处的 距离。第一区域内一个查询点的距离被定为从该查询点到拐角点的距 离。
为了确定第二区域内的距离,我们将边界描述符的有序集合1311 划分1350成两个子集,一个子集中包含拐角点1321之前的边界描述 符,一个子集中包含拐角点1321之后的边界描述符。然后,边界描述 符的每个子集被扩充1360以形成一条将所述单元划分成内部与外部 两个部分的延长曲线。对于每个部分来说,所述单元内的距离场可以 根据一组采样距离值1371重建,所述一组采样距离值1371是根据相 应的延长曲线确定的1370。双二次重建方法可能需要为所述的两个部 分各存储9个距离值。
注意,所述的两个内部部分的相交形成了所述对象的拐角。因此, 可以通过重建到第一内部部分的距离以及到第二内部部分的距离,然 后再选取两个确定距离中的较小者,来重建第二区域内的距离。
所述的两个区域可以根据通过拐角点的两条有向直线来确定,所 述的两条直线各垂直于边界描述符的两个子集之一。每条直线都可以 由拐角点以及在该拐角点处对应的边界描述符子集的外向法线决定。 当一条直线被如此确定后,我们就可以通过求出从查询点到拐角点的 向量与外向法线两者的向量积来确定该查询点位于该直线的哪一侧。 位于两条线外侧的点处在第一区域内,而位于任何一条线内侧的点则 处在第二区域内。
字体渲染
在当今的字体渲染引擎中,字体主要被表示为轮廓线,这些轮廓 线可按需要被缩放以匹配所需的输出尺寸。尽管大多数高分辨率打印 机使用两级渲染,但是现代显示设备更多地在小点阵尺寸上使用灰度 渲染或是灰度与两级渲染的组合形式。
用于光栅化灰度字形的常见方法涉及缩放及提示它们的轮廓线。 经过缩放及提示的轮廓线被扫描转换为高分辨率的图像,通常比所需 的分辨率高4或16倍。然后,通过施用一种滤波方法(比如箱式滤波 器)来对该高分辨率图像进行下采样,以产生最终的灰度图像。
对于正文字型来说,单独的字形可以被光栅化一次并作为一幅灰 度位图存储在高速缓存中,以便在预处理步骤中再使用。对字形的子 象素布局需要可能要求将被光栅化的每个字形的几个版本。为正文字 型使用高速缓存就可以在某些任务期间进行短延时(如1/2秒)的更 高质量渲染,所述的任务可以是例如翻阅一份Adobe Acrobat PDF文 档。
然而,在任意路径上渲染的字型以及动态化的字形不允许使用高 速缓存,因此必须根据需要来产生。实时渲染的需要要求必须使用分 辨率较低的滤波,通常为每象素四个采样点以及箱式滤波。这可能引 起空域及时域的锯齿。这种锯齿可以利用系统存储器中具有提示的设 备字体来消除。然而,维持实时帧率对于如何使用具有提示的设备字 体提出了严格的限制,比如说,具有提示的设备字体不能被动态缩放 或旋转。
Microsoft最近在ClearType上的工作带来了用于LCD彩色显示 器的特殊处理方法,在这种显示器中含有可寻址彩色子象素的重复图 案,即成分(component)。Platt在“Optimal Filtering for Patterned Displays(用于图案化显示器的最优滤波)”一文中描述了一组用于各 个颜色成分的感观最优滤波器,该文发表于IEEE Signal Processing Letters,7(7),pp.179-180,2000。在实际应用中,所述的最优滤波 器被实现为一组三个移位箱式滤波器,每个滤波器用于一种颜色。
ClearType使用现有技术的基于覆盖的反锯齿方法,来决定每个 象素的各个成分的强度。与此相对,我们的基于距离场的方法使用距 离场来决定每个象素的各个成分的强度,并且使用了较少的样点。下 文中所述的ADF反锯齿方法可以取代箱式滤波器,来提供每象素更少 样点数的更好的最优滤波器的模拟。
反锯齿(Antialiasing)
理解经过渲染的字体中的外表成分需要对锯齿有所认识。通常, 一个象素由离散的成分组成,比如彩色打印机或显示器中的红色、绿 色及蓝色成分。在一个灰度设备中,象素是单个离散成分。由于象素 是离散的,因此将其呈现给输出设备本质上就是一个采样过程。采样 率取决于设备的分辨率。采样率至少是源信号中最高(奈奎斯特)频 率的两倍,否则采样信号就会出现锯齿。
边缘(比如字形轮廓线)具有无限的频率分量。因此,边缘不能 由采样数据准确地表示出来。边缘的采样不足会导致锯齿状图形,这 种锯齿状会在运动图像的采样边缘上蔓延。如果源信号也含有一种空 域图案,比如‘m’的重复垂直线或是‘i’的单根垂直线,其频率成分对于 采样率来说太高了,那么采样数据就会出现信号丢失、波纹图案以及 时域闪烁。
为了避免锯齿,输入信号必须经过预滤波以去除超过采样率所允 许范围的频率成分。通常,有两种方法进行预滤波。
第一种称为解析滤波。它在采样之前对源信号的连续表示形式进 行某种形式的空域平均。不幸的是,解析滤波常常是不可行的,或是 因为源数据不是以连续信号的形式提供,在图像处理中这是很正常的 情况,或是因为确定信号在滤波器作用范围内的解析表示太复杂了。 对于计算机图形学中所有除了简单几何图形外的几何形状都会出现这 种情况,当然对基于样条线的轮廓线来说也会同样出现这种情况。
第二种方法称为离散滤波。在那种方法中,通常以高于目标速率 的速率采样源信号,以获得一幅过采样图像。然后,在将图像下采样 到目标速率之前,使用一个离散滤波器来减少过采样图像中的高频成 分。该离散方法在计算机图形学中被称为常规过采样。
根据处理预算、硬件考虑以及个人对输出图像中对比度与反锯齿 度的偏好,可以使用各种不同的离散滤波器。通常被用来渲染字型的 箱式滤波器用一个过采样值方阵的算术平均来替代这个过采样值方 阵,这种方法在信号处理界通常被认为是比较低级的。
在另一种方法中,自适应过采样将可用于采样及滤波的资源集中 用于具有较高的局部频率分量的图像区域。最优自适应采样可以根据 图像中的局部变化性来确定。然而,这种技术的实用性会受到估算图 像局部变化的需要的限制,这种估算过程可能是计算代价高昂的。
由于对高频图案的常规采样不足而引起的波纹图案,是人类视觉 系统尤其反感的。在一般的图像处理中,随机或跳动采样被用来解决 这一问题。对于随机采样,采样点会随机地略微偏离它们的指定位置。 随机采样会用高频噪声替代波纹锯齿,并且已经被证实在减少时域锯 齿中特别有效。
使用基于距离的反锯齿的渲染
在现有技术的字体渲染中,由字形边缘引入的无限频率分量是锯 齿的主要成分。与之相对,通过利用2D距离场来表示2D对象,并根 据本发明采样2D距离场,我们就能避开这些边缘,因为所述的表示 方法是C0连续的。最高频率取决于字形本身的空域图案,比如‘m’的 重复垂直线或是‘i’的单根垂直线。
通过用字形的2D距离场表示字形,我们就能有效地对该字形使 用解析预滤波器。下文中所述的我们用于渲染距离场的反锯齿方法所 产生的输出与传统解析预滤波器的输出不同。
利用距离场进行反锯齿
图4示出了用来按图像顺序反锯齿一个对象401(如一种字形) 的方法400,所述的对象被表示410成一个二维距离场411。每个象素 402中可以包括一个或多个成分404,通常是用于‘RGB’类型输出设备 的红、蓝或绿色成分。该方法可以为每个象素402的各个成分404使 用一个或多个采样点。方法400提供自适应的基于距离的过采样、基 于距离的自动提示以及基于距离的栅格装配。结果得到的反锯齿象素 强度可以被作为一幅图像的一部分呈现在CRT以及类似LCD的显示 器上。该方法对于渲染运动模糊特别有用。
表示对象401的二维距离场411的采样点407的一个集合403与 每个象素402的各个成分404相关联420。根据二维距离场411以及 采样点403的集合来确定430一个距离(D)405。然后,距离405被 映射440为象素402的成分404的反锯齿强度(I)406。
在优选实施例中,字形401由双二次ADF 411表示,如上文所 述。这样就使得在字体渲染过程中使用基于距离的反锯齿方法效率很 高。其他的表示方法,比如二维距离图、二维距离壳以及程序性距离 场,也都可以被采用。
对于一幅图像中每个象素402的各个成分404,都要利用四叉树 遍历方法来定位一个含有成分404的单元,比如叶单元,所述的遍历 方法在美国专利申请10/209302中有所说明,该专利于2002年7月31 日提交,题为“Method for Traversing Quatrees,Octrees,and N-Dimensional Bitrees(用于遍历四叉树、八叉树以及N维二叉树的 方法)”,本文通过引用将该专利申请完全包含进来。尽管本技术领域 内其他已知的方法也可以被用于我们的发明,但是上述方法是无需进 行比较的,因此执行效率更高。成分404处的距离根据单元的距离值 重建出来,并被映射440为反锯齿强度(I)406。
可以使用不同的映射,包括线性、高斯以及S形函数。最佳映射 函数的选择是主观的。在一个实施例中,我们的映射是两个函数的组 合。第一个函数如上所述,第二个函数是对比度增强函数。这两个函 数被组合起来以便将距离场(D)405映射440为成分404的反锯齿强 度(I)406。
图5示出了作为距离502的函数的强度501的线性映射500,比 如[0,1]。该映射为象素的各个成分把距离转换成反锯齿图像强度。距 离在对象内部是正的,在对象外部则是负的。不同的截止值503和504 会影响边缘对比度以及笔画浓度。我们为显示字型采用(-0.75,0.75)象 素的外部503及内部504滤波器截止值,为正文字型采用(-0.5,0.625) 象素的滤波器截止值,达到了良好的效果。
基于距离的最优自适应过采样
上述基于距离的反锯齿方法减少了字形边缘引起的锯齿。然而, 当笔画宽度或是字形各部分之间的距离对于显示器采样率来说太小 时,锯齿成分仍会出现。在这种情况下,我们就要使用下文中将要说 明的基于距离的自适应过采样,以进一步减少空域及时域的锯齿。
在优选实施例中,我们使用带有我们独创的基于距离的自适应过 采样的双二次ADF,相对现有技术的基于轮廓线的表示法以及基于覆 盖的自适应过采样方法而言,该方法具有显著的优势。由于ADF采用 面向细节的采样,因此局部变化性较强的距离场区域可由较小的叶细 胞表示。由此,ADF四叉树的结构提供了实现基于距离的最优自适应 采样所需的局部变化的映象,从而克服了上文中所述的现有技术自适 应过采样反锯齿方法中确定局部变化性的困难。
对于图像中每个象素402的各个成分404,都要定位含有成分404 的单元,并且要将位于该成分的滤波器工作半径r以内的一组403采 样点407与该象素成分404关联起来420。每个成分中的采样点407 的数量(spc)取决于单元尺寸(cellSize)对r的相对大小。采样点 407处的采样距离经过滤波,以确定430一个单个加权平均距离405, 然后该距离被映射440成象素402的成分404的反锯齿强度406。
有多种不同的滤波器及采样策略可以使用。在优选实施例中,我 们使用一种普通形式的高斯滤波器,用W-12-3(d/r)2对各个距离采样值加 权,其中d是该采样点到象素成分的距离,W则是用于那个成分的权 重总和。类似的结果也可以用箱式滤波器、锥形滤波器、负瓣滤波器 以及其他形式的高斯滤波器得到。
图6A-C示出了我们的采样策略。采样点407被定在成分601附 近的同心圆610上,以便高效地计算权重及权重总和。我们使用象素 间距的1.3倍作为滤波器半径r 602,并在cellSize>r(图6A)时采 样1个spc,在r/2<cellSize≤r(图6B)时采样5个spc,在cellSize ≤r/2(图6C)时采样13个spc。
除了同心圆之外,本发明还可以使用多种其他策略来关联采样点 407与象素成分404。我们的方法对具体的采样策略并不特别敏感。
下文中所述的另一种自适应采样策略,将采样点定在滤波器半径 r以内所包含的所有单元的中心。该策略能得到同样良好的结果。
基于单元的反锯齿
上述的距离场反锯齿方法可以利用基于扫描线的光栅化方法在 软件中实现。替换地,被划分成单元的距离场也可以一个单元接一个 单元地反锯齿化,即按对象顺序反锯齿。基于单元的渲染消除了为定 位含有采样点的单元而进行的树遍历,消除了用于计算单个单元内距 离以及梯度的冗余设置,并且减少了单元数据的重复检索,即内存读 取。
另外,由于渲染所需的单元可以被表示为固定大小的自包含的单 元的序列,即单元内的点的距离及梯度可以根据单元的距离值确定, 因此我们的基于单元的方法容易用硬件实现,从而使得实时渲染成为 可能。
图7示出了一种用来按对象顺序渲染对象701(例如一个字形) 的方法700,所述的对象被表示710为一个二维距离场711。方法700 提供了基于距离的自适应过采样,基于距离的自动提示以及基于距离 的网格装配。最终得到的经过反锯齿化的象素强度可以作为一幅图像 的一部分被呈现在CRT以及LCD类的显示器上。该方法对于渲染运 动模糊特别有用。当二维距离场711的单元被组织在一个空域分级结 构中时,我们可以利用MIP映射(mipmapping)来减少所需的距离 采样点数量。
二维距离场711被划分成多个单元712。在一个优选实施例中我 们使用双二次自适应采样的距离场,其中每个单元的大小取决于二维 距离场的局部变化性。每个单元都包括一种方法(M)713,用于重建 该单元内的二维距离场。一组含有待渲染的距离场的区域(虚线)722 的单元721被识别720出来。
区域722被用来定位730一组与该区域有关的象素731。对应于 象素731集合中的各个象素的一组成分741被指定740。然后,根据 单元集合中的距离为每个象素的各个成分决定反锯齿强度751。这里, 所述的距离是根据单元集合重建的。然后所述的距离就被映射为反锯 齿强度,如上所述。
在一个实施例中,我们可以通过定位单元集合中靠近象素成分的 一个单个采样点、并重建该单个采样点到单元集合的距离,来确定距 离。在我们的优选实施例中使用了双二次自适应采样的距离场,我们 通过对小于滤波器半径的单元进行特殊处理而增强了该方法,其用于 基于距离的自适应过采样。由于小单元出现在距离场中变化性较强的 位置,因此可以在将距离映射为强度前,对靠近这些单元的象素距离 进行预滤波。
我们对元素的合成缓存器进行初始化,其中的每个元素对应于所 述象素集合中各个象素的一个成分。单元集合中的每个单元都可以被 独立地处理。在优选实施例中,每个单元包括一个加权距离以及一个 累计权重,两者都被初始化为零。在一个单元被处理时,这些加权距 离以及累计权重在缓冲器元素中被递增,其与位于所述单元内或是位 于所述单元中心的滤波器半径内的象素成分相对应。
在处理了所有的单元之后,用累计权重对每个象素的各个成分的 加权距离归一化,以产生接着将被映射为反锯齿成分强度的距离。在 优选实施例中,我们使用与上文所述相同的高斯加权和滤波器半径。
至此所述的基于单元的渲染总是要处理单元集合中的每个叶单 元,而不管每个单元对滤波器半径的相对大小。理论上,这样做提供 了最优的基于距离的自适应过采样。而实际上,ADF四叉树可以被用 作MIP映射以减少单元数量。
ADF四叉树结构使得我们可以用小的叶单元的前辈来替代小的 叶单元,从而有效地裁剪了一些预定单元尺寸的四叉树。只要该单元 尺寸小于或等于象素间间隔的1/4,那么在基于距离的自适应过采样结 果中就不会存在视觉效果上的退化。这样做减少了渲染该区域所需的 单元数。
处理象素成分
一个象素包括一个或多个成分。例如,典型的CRT或LCD彩色 显示器上的象素包括红色、绿色以及蓝色的成分。在我们的发明中, 当象素包括多个成分时,它们就会被单独地处理,如上文中所述,或 是被当作一个单个成分处理。当多个成分被当作单个成分处理时,就 可以根据单个成分的反锯齿强度来确定该象素的彩色和阿尔法值。
将多个成分当作一个单个成分处理有两个原因。首先,它能减少 渲染时间。其次,当多个成分不能被单独寻址,或是当诸单个成分的 相对位置未知时,对每个成分进行个别处理就是不可能的。
当显示设备,如LCD,具有可寻址的象素成分时,单独地处理 多个成分能够提高显示设备的有效分辨率,这一点在现有技术中是已 知的。我们的发明可以充分利用这类设备的这一特性,来提供质量优 于现有技术的基于距离的反锯齿。
动态化二维对象
图12示出了方法1200的流程图,该方法根据动画脚本1202将 对象1201动态化成为一系列的帧。动画脚本1202为所述帧序列中的 每一帧指示出对象的条件,例如对象的位置、大小、方向以及变形。 该对象被表示为一个二维距离场。根据动画脚本1202,为帧1221序 列中的每一帧更新1210对象1201的形态1211。利用经过更新的形态 1211以及基于距离的反锯齿渲染方法1212来渲染对象1201。
表示对象1201的二维距离场可以从不同的对象表示法中得到, 例如对象的轮廓线描述或是对象的位图描述。
为特定对象1201进行形态1211的更新1210,可以通过对该对象 进行各种不同的操作来实现,其中包括刚体变换、自由形态变形、软 体冲击变形、水平设置方法、颗粒模拟以及改变其渲染属性。
在渲染1220所述的对象时,我们将表示对象的二维距离场中的 一个采样点集合与帧1221序列中的一个帧内的一个象素成分关联起 来。通过由所述的二维距离场以及采样点集合来确定一个距离,我们 就可以将该距离映射成所述象素成分的反锯齿强度。
在一个优选实施例中,我们将表示对象1201的二维距离场划分 成多个单元,每个单元中都包括了用于重建该单元内的二维距离场的 方法。为了在该例中进行渲染1220,我们要在表示对象1201的二维 距离场中识别出一个单元集合,其含有待渲染的二维距离场区域,还 要定位与该区域相关的一个象素集合。指定对应于该组象素中各个象 素的一组成分。根据该组单元为象素的各个成分确定一个距离,并将 该距离映射为该象素成分的反锯齿强度,从而为该组象素中每个象素 的各个成分确定一个反锯齿强度。
基于距离的自动提示
标准字体表示法中的提示是一种耗时的手工过程,其中字型设计 人员以及提示专家要生成一组规则,以便更好地将字形个体匹配到象 素网格中。良好的提示有助于在小字型尺寸下产生间隔合适、具有良 好对比度且外表均匀的字形。
这些规则提供:具有相同对比度分布的垂线,其左边与底部边缘 具有可能实现的最锐利的对比度;字形的对角线条以及纤细圆滑的部 分具有足够的对比度,以便向眼睛传递视觉结构;以及衬线,这些衬 线结合在一起并提供足以被人眼捕获的强化突出,参见Hersch等人所 著的“Perceptually Tuned Generation of Grayscale Fonts(灰度字体的 感观调节生成)”,该文发表于IEEE CG&A,Nov,pp.78-89,1995。
注意,现有技术的滤波方法会产生模糊的字符,并向不同的字符 部分指定不同的对比度方案,从而违反了字型设计的重要原则。为了 克服这些局限性,就要为每种字体的每个字形开发提示。现有技术的 提示方法存在许多问题:它们的开发耗费劳力,而且非常复杂以至于 不能用硬件实现。
对基于轮廓线的字体而言,用提示进行渲染是一个三步骤的过 程。首先,所述字形的轮廓线被缩放并与象素网格对齐。其次,轮廓 线被修改以控制纵线、横线以及衬线的对比度,并提高非常纤细部分 以及弧线的浓度。第三,对经过修改的轮廓线进行过采样,随后进行 带有滤波的下采样。
尽管上文中所述的我们未经提示的基于距离的反锯齿渲染方法 比现有技术的字体渲染方法更为有利,但是众所周知,感观提示可以 提高小字型尺寸下的阅读舒适度。
因此,如图8中所示,我们充分利用距离场来提供基于距离的自 动提示,以便进行小点尺寸下的字形渲染。提示中的第一步810是缩 放距离场并将其与象素网格对齐。这一步可根据给定的或推导出的字 体规格自动完成,比如盖帽高度、x高度以及基线的位置。
在应用了这种网格装配的形式之后,我们就可以利用距离场及其 梯度场来提供感观提示。
在一个实施例中,距离场梯度的方向被用来检测820对象左边与 底部边缘上的象素。通过暗化830这些象素并亮化840相对边缘上的 象素,我们就可以实现左边与底部边缘上较高的对比度,而无需改变 明显的笔画浓度。这可以通过降低或提高相应的象素强度来完成。
在另一个实施例中,梯度场被用来为对角线条及细弧线提供更好 的对比度。我们注意到,如果一个象素位于或靠近字形的狭窄区域, 那么该象素两侧的相邻象素就会具有相反的梯度方向,即,它们的点 积为负数。通过检测梯度方向的突变,我们就可以暗化850这些狭窄 区域上的象素。
这些只是如何利用距离场来自动提供感观提示的两个实例。所述 的距离场也可以被用来提供最佳的字符间距以及均匀的笔画浓度。
生成与编辑字体
有两种设计字体的基本方法。第一种是手工。其中,字形靠手绘 制、数字化,然后将轮廓线匹配到数字化的位图中。第二种方法则是 由计算机完成。
在后一种情况下,有三类工具可供使用。直接的视觉工具可被用 于曲线处理。程序设计工具通过执行一个程序的指令来创建字形的形 状。该程序或是定义一个形状的轮廓并填充它,或是定义一条由笔尖 绘出的路径,该路径有多种属性,其中包括几何形状及方向。基于组 件的设计工具允许设计者们创建基本的组件,如直线、弧线以及其他 重复出现的形状,然后组合这些组件以产生字形。
我们使用造型编辑器来提供基于笔画的设计。这是与3D雕刻相 对的一项2D技术,所述3D雕刻在美国专利申请09/810261中有所说 明,该专利申请题为“System and Method for Sculpting Digital Models (用于塑造数字模型的系统与方法)”,于2001年3月16日提交,此 处通过引用包含进来。笔画描绘可以被交互地完成,或者也可以编写 脚本令其模拟可编程的设计工具。
也可以采用基于弧线的设计,使用Bezier曲线处理工具,该工具 与Adobe Illustrator中所用的工具相似。基于弧线的设计方法可以与 用来将轮廓线转换成距离场以及将距离场转换为轮廓线的方法组合起 来,以提供设计规范间的无缝接口
基于组件的设计方法在隐式距离场使用CSG以及混合操作。这 样就使得组件可以被单独设计,并在编辑或渲染期间组合起来。
我们还提供了一种由模拟及数字字体模板自动生成ADF的方 法。
对于基于组件的设计方法,我们的字体编辑器提供了利用四叉树 操作来有效反射及旋转ADF的能力,用以塑造字形中常见的对称性。 其他的特性包括ADF缩放、平移以及组合多个ADF的操作,比如CSG 与混合。
对于基于笔画的设计方法,我们提供了刻图工具,该工具具有几 何轮廓以模拟笔尖。模拟笔尖的方向及尺寸可以沿笔画变化,以模仿 书法笔迹。
图9示出了用来由一个笔画生成一个二维距离场931的方法900。 我们在笔绘期间采样笔的状态,该笔状态包括笔绘期间该笔的位置。 该笔状态还可以包括方向与几何形状。根据笔状态采样点901,我们 可以沿笔画生成910笔状态的有序列表911。然后,由笔状态的有序 列表生成920一组边界描述符921。最后,我们由该组边界描述符921 生成930一个二维距离场931。
在优选实施例中,边界描述符921是三次Bezier曲线之类的曲线。
在优选实施例中,我们运用曲线匹配程序来将G2连续曲线的一 个最小集合匹配到笔的路径上,其精度由用户指定。我们还利用工具 尺寸与方向生成离开该条路径的偏移点的两个额外的有序列表,并将 曲线匹配到这些偏移点上,以产生笔画轮廓线。轮廓曲线被放置在一 个空域分级结构中,以便有效地处理。我们利用平铺生成器由该分级 结构生成一个二维ADF,参见美国专利申请09/810983号,该专利申 请于2001年3月16日提交,此处通过引用包括进来。
到轮廓线的最小距离可以利用Bezier裁剪来有效地计算。笔画被 转换成ADF,对于用户来说没有感观上的延时。为了进行曲线操作, 我们提供了Bezier曲线编辑器。
如图11中所示,我们还提供了将距离场转换为边界描述符(如 Bezier曲线)的能力,以提供三种设计规范间的无缝接口。
在优选实施例中,我们使用双二次ADF,其中该转换过程利用 ADF分级结构遍历叶单元,以便进行快速的相邻搜索,生成沿ADF 零等值线的点的有序列表,然后如下文中参照图11所述的那样匹配曲 线以生成边界描述符。
在现有技术中,边界描述符误差是根据点列表计算得出,与之相 对,我们直接由距离场计算出边界描述符误差。我们特别注意了尖锐 的棱角。我们的方法快得足以让用户在范例间无缝切换,而不会引起 明显的延时。
图11示出了用来将二维距离场1101转换成一组边界描述符1131 的方法1100。首先,我们选取1110二维距离场1101的等值轮廓线 1111,比如距离为零或其他偏移量。
其次,我们由等值轮廓线1111及二维距离场1101生成1120点 的有序列表1121。在我们使用了双二次自适应采样距离场的优选实施 例中,该步骤利用相邻搜索技术顺序访问了自适应采样距离场1101 的相邻单元。该搜索技术充分利用了自适应采样距离场1101的空域分 级结构,以便沿着等值轮廓线1111有效地定位下一个相邻的单元。
在另一个实施例中,我们通过选取ADF 1101中的边界单元,以 各个边界单元为种子生成一组有序点,并利用ADF 1101的距离场和 梯度场将各个点移动到ADF 1101的等值线1111上,以此来生成1120 点的有序列表1121。
然后,我们初始化1130一组边界描述符1131,以匹配点的有序 列表1121。边界描述符1131的初始化1130是通过将点的有序列表 1121中的相邻点结合来完成的,以此形成一组线段,这些线段构成了 最初的边界描述符1131。
在另一个实施例中,我们通过定位拐角点、将所述的点的有序列 表划分成由这些拐角点界定的片段、并确定片段边界描述符以匹配各 个片段,从而初始化1130一组边界描述符1131。片段边界描述符的 组合形成了最初的边界描述符1131。
拐角点可以通过测量由距离场求得的曲率来定位。在优选实施例 中,距离场是双二次ADF,其中高曲率的区域由ADF中的小单元表 示,从而可以利用ADF的单元尺寸来定位拐角点。
一旦边界描述符1131被初始化1130,边界描述符1131就会被更 新1140。更新1140通过重建距离场并测量边界描述符离开等值轮廓 线的平均或最大偏差,来为每个边界描述符求出一个误差。
边界描述符1131被更新1140,直到每个边界描述符的误差令人 满意、或是过了预定时间、或是边界描述符1131的集合的基数最小为 止。
为了把以非数字形式(即模拟模板)或以位图之类的数字形式(即 数字模板)储存的现有传统字体合并进来,我们的编辑系统提供了用 来从高分辨率两级位图生成ADF的方法。
模拟模板首先被扫描来产生某个分辨率下的两级数字模板,该分 辨率至少要比目标ADF分辨率高4倍,比如说,4096×4096的数字模 板对与今日的显示分辨率及显示尺寸来说就足够了。然后,对位图进 行准确的欧几里德距离变换,以生成表示字形的规则采样距离场。
然后,我们利用平铺生成器从该规则采样的距离场生成一个 ADF。在2GHzPentium IV处理器上,每个字形的位图到ADF的转换 需要约10秒钟。
为了从现有技术的字形描述符转换到距离场,我们应用了参照图 10说明的方法,其中在所述的距离场中字形由一组边界描述符表示。
用于动态版式的计算底层
我们ADF字形框架的距离场以及空域分级结构属性也可以被用 于2D对象的计算机仿真,比如字形、企业标志或是任何2D形状。例 如,上述的两种属性都可以被用在冲突检测与避免中,用于计算互相 穿过的实体间的作用力,以及用于模拟软体形变。
级设置方法利用了有符号的距离场,该方法可被用来模拟许多效 应,比如熔化流体动力学。ADF是紧凑的隐式表示法,它可被有效 地查询以计算距离值和梯度,这是上述方法所需的两种重要计算。
与此相对,由移动或变形的轮廓线来求出距离值和梯度在用于实 时互动的软件中是不实用的,参见Hoff等人所著的“Fast and Simple 2D Geometric Proximity Queries Using Graphics Hardware(利用图 形硬件进行快速简单的2D几何近似查询)”,该文发表于Proc. Interactive 3D Graphics’01,2001。Hoff等人利用图形硬件来为变形 曲线实时生成规则采样的2D距离场,其中所述的变形曲线由线段近 似。
距离场的隐性本质允许复杂的拓扑变化,比如表面偏移,这很难 用基于轮廓线的字体来模拟。另外,距离场还可以被用来提供动态化 对象的非光学现实主义渲染,以添加艺术效果。
本发明的作用
本发明提供了一种新颖的框架,用于表示、渲染、编辑以及动态 化字符字形、企业标志或是任意二维对象。在一种优选实施例中,本 发明利用二维双二次ADF来表示二维对象。该双二次重建方法提供了 存储器使用与计算负荷间的最佳平衡。
本发明包括一种方法,用来在一个含有二维对象拐角的单元内生 成一个二维距离场。相比现有技术,该方法提供了对存储器需求的显 著减少,以及精度的明显改善。
我们基于距离的反锯齿渲染方法利用每象素一个单个未经提示 的距离采样点,提供了比现有技术中所用的过采样方法更好的反锯齿。
我们基于距离的方法充分利用了ADF的空域分级结构,来提供 高效最优的基于距离的自适应过采样,从而实现了出色的空域与时域 反锯齿。我们的方法还为基于距离的自动提示、为基于距离的网格装 配、为联合三种常用的数字字体设计规范、以及为动态字体图案产生 多种特殊效果,提供了计算基础。
尽管本文中已经通过优选实施例的方式对本发明进行了说明,但 是应该明白,在本发明的指导思想及范围内还可以作出多种其他的变 化与改进。因此,附属权利要求的目的就是要涵盖所有这些包含在本 发明的真正指导思想与范围内的变化及改进。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈