渲染装置和方法,以及形状数据生成装置和方法

文档序号:6574453阅读:179来源:国知局
专利名称:渲染装置和方法,以及形状数据生成装置和方法
技术领域
本发明涉及图像渲染装置和方法,以及形状数据生成装置和方法。
背景技术
根据高清晰度(HD)过程,认为用于在高清晰度的计算机图形(CG)图像中有效地渲染高品质矢量图形数据或轮廓字体(outlinefont)数据的技术的需求将会增长。
已经公开了使用图形处理单元(GPU)作为图形LSI来有效地渲染矢量图形数据的方法,例如,在Proc.of ACM SIGGRAPH2005的1000-1009页中的C.Loop和J.Blinn的“Resolution Independent CurveRendering using Programmable Graphics Hardware”。在该方法中,使用GPU执行对由两种类型的轮廓(即线段轮廓和二次贝塞尔曲线轮廓)所形成的封闭曲线的渲染,这是基于在GPU中所整合的像素渲染器能够以像素为单位执行关于该二次贝塞尔曲线的内部/外部确定的事实。更具体地,该封闭曲线被分割成由单个二次贝塞尔曲线组成的一部分和仅由直线(linear line)(没有曲线)组成的轮廓部分,并且使用三角形分割来渲染该线性轮廓部分。使用像素渲染器以像素为单位执行的关于二次贝塞尔曲线的内部/外部确定,使得能够渲染平滑曲线,而无需考虑显示分辨率。
然而,当使用上述方法显示轮廓字体字符时,必须为每个字符渲染几十个乃至几百个三角形多边形。如果使用上述方法渲染屏幕上显示的所有字符,必须渲染太多的三角形多边形。这会不可避免地降低渲染效率。
此外,当显示笔划数极大的字符的缩小图像时,在每个像素中都要渲染多个三角形多边形的直线,其结果是导致发生失真,生成难以辨识的字符。类似的问题也会发生在通用图形数据的情况中。

发明内容
根据本发明的第一方面,提供了一种渲染装置,包括形状数据输入单元,配置为输入矢量图形数据;特征量计算单元,配置为计算与矢量图形数据相关的形状特征量,所述形状特征量(featurequantity)表示由所述矢量图形数据所代表的形状的复杂度,或表示由所述矢量图形数据的形状所代表的字符的复杂度;获取单元,配置为获取所述形状在屏幕上的位置和用于表示到所述位置的仿射变换的矩阵作为多个渲染参数;像素数量计算单元,配置为基于所述渲染参数,计算在所述形状的渲染区域中包括的像素数量;第一转换单元,配置为当像素数量小于形状特征量时,将所述矢量图形数据转换成位图纹理数据;第一渲染单元,配置为渲染所述位图纹理数据;第二转换单元,配置为当像素数量不小于形状特征量时,将所述矢量图形数据转换成附带曲线—参数的多边形模型数据;第二渲染单元,配置为渲染所述多边形模型数据;选择单元,配置为根据所述输入矢量图形数据,通过比较像素数量和形状特征量,在第一转换单元和第二转换单元中选择一个,并且在第一渲染单元和第二渲染单元中选择一个;以及呈现(presentation)单元,配置为呈现所渲染的位图纹理数据和所渲染的多边形模型数据中所选择的一个。
根据本发明的第二方面,提供了一种形状数据生成装置,包括形状数据输入单元,配置为输入矢量图形数据;特征量计算单元,配置为计算与矢量图形数据相关的形状特征量,所述形状特征量表示由所述矢量图形数据所代表的形状的复杂度,或表示由所述矢量图形数据的形状所代表的字符的复杂度;第一转换单元,配置为将所述矢量图形数据转换成位图纹理数据;第二转换单元,配置为将所述矢量图形数据转换成附带曲线—参数的多边形模型数据;以及生成单元,配置为通过将形状特征量、位图纹理数据和多边形模型数据构成一个组来生成结构化形状数据。
根据本发明的第三方面,提供了一种渲染装置,包括字符串输入单元,配置为输入文本字符串;存储单元,配置为存储相互关联的字符码数据和轮廓字体数据;形状数据生成单元,配置为访问所述存储单元,生成与所述文本字符串相对应的矢量图形数据作为轮廓字体数据;特征量计算单元,配置为计算与矢量图形数据相关的形状特征量,所述形状特征量表示由所述矢量图形数据所代表的形状的复杂度,或表示由所述矢量图形数据的形状所代表的字符的复杂度;获取单元,配置为获取所述形状在屏幕上的位置和用于表示到所述位置的仿射变换的矩阵作为多个渲染参数;像素数量计算单元,配置为基于所述渲染参数,计算在所述形状的渲染区域中包括的像素数量;第一转换单元,配置为当像素数量小于形状特征量时,将所述矢量图形数据转换成位图纹理数据;第一渲染单元,配置为渲染所述位图纹理数据;第二转换单元,配置为当像素数量不小于形状特征量时,将所述矢量图形数据转换成附带曲线—参数的多边形模型数据;第二渲染单元,配置为渲染所述多边形模型数据;选择单元,配置为根据所述矢量图形数据,通过比较像素数量和形状特征量,在第一转换单元和第二转换单元中选择一个,并且在第一渲染单元和第二渲染单元中选择一个;以及呈现单元,配置为呈现所渲染的位图纹理数据和所渲染的多边形模型数据中所选择的一个。
根据本发明的第四方面,提供了一种形状数据生成装置,包括字符串输入单元,配置为输入文本字符串;存储单元,配置为存储相互关联的字符码数据和轮廓字体数据;形状数据生成单元,配置为访问所述存储单元,生成与所述文本字符码串相对应的矢量图形数据作为轮廓字体数据;特征量计算单元,配置为计算与矢量图形数据相关的形状特征量,所述形状特征量表示由所述矢量图形数据所代表的形状的复杂度,或表示由所述矢量图形数据的形状所代表的字符的复杂度;第一转换单元,配置为将所述矢量图形数据转换成位图纹理数据;第二转换单元,配置为将所述矢量图形数据转换成附带曲线—参数的多边形模型数据;以及生成单元,配置为通过将形状特征量、位图纹理数据和多边形模型数据构成一个组来生成结构化形状数据。
根据本发明的第五方面,提供了一种形状数据生成装置,包括字符码输入单元,配置为输入字符码;存储单元,配置为存储相互关联的字符码和轮廓字体数据项;形状数据生成单元,配置为访问所述存储单元,生成与所述输入字符码相对应矢量图形数据作为轮廓字体数据;特征量计算单元,配置为计算与矢量图形数据相关的形状特征量,所述形状特征量表示由所述矢量图形数据所代表的形状的复杂度,或表示由所述矢量图形数据的形状所代表的字符的复杂度;第一转换单元,配置为将所述矢量图形数据转换成位图纹理数据;第二转换单元,配置为将所述矢量图形数据转换成附带曲线—参数的多边形模型数据;以及结构化字体形状数据生成单元,配置为通过将输入字符码、形状特征量、位图纹理数据和多边形模型数据构成一个组来生成结构化字体形状数据。


图1是根据本发明第一实施例的渲染装置的方框图;图2是图1所示的输入单元输入的矢量图形形状数据的视图;图3是图1所示的形状特征量计算单元的运行实例的流程图;图4是使用图1所示的形状特征量计算单元,计算直线和矢量图形形状数据之间的交叉点数量的过程实例的流程图;图5是使用图1所示的形状特征量计算单元,计算直线和矢量图形形状数据之间的交叉点数量的另一个过程实例的流程图;图6是输入到图1所示的渲染方法选择单元的渲染参数实例的视图;图7是图1所示的渲染方法选择单元的运行实例的流程图;图8是图1所示的附带曲线—参数的多边形模型生成单元的运行实例的流程图;图9的视图有助于解释使用附带曲线—参数的多边形模型渲染单元填充凸面贝塞尔区域和凹面贝塞尔区域的方法;图10是根据第二实施例的形状数据生成装置的方框图;图11是结构化矢量图形形状数据的实例的视图;图12的视图有助于解释由矢量图形形状形成单个矢量图形形状;图13是根据第二实施例的图像数据输出装置的方框图;图14是根据第三实施例的渲染装置的方框图;图15是图14所示的矢量图形形状生成单元的运行实例的流程图;图16是根据第四实施例的形状数据生成装置的方框图;图17是根据第五实施例的形状数据生成装置的方框图;图18是图17所示的输出单元所输出的结构化字体形状数据实例的视图;图19是根据第六实施例的渲染装置的方框图;以及图20是根据第七实施例的渲染装置的方框图。
具体实施例方式
下面将参照附图,详细描述根据本发明实施例的渲染装置和方法、形状数据生成装置和方法。
首先,将给出对根据实施例的渲染装置和方法、形状数据生成装置和方法的大致描述。实施例提出了渲染装置和方法,以及形状数据生成装置和方法,其中,选择性地使用了在Proc.of ACMSIGGRAPH2005的1000-1009页中的C.Loop和J.Blinn的“ResolutionIndependent Curve Rendering using Programmable Graphics Hardware”中提出的方法(在下文称作“多边形模型渲染方法”)和用于显示纹理的方法(在下文称作“纹理渲染方法”)来作为矢量图形渲染方法,其中,纹理渲染方法在位图中预先渲染矢量图形数据。
在实施例中,预先计算要渲染的矢量图形数据的形状或者指示要渲染的表示为矢量图形形状的字符的复杂度的形状特征量,并且基于形状特征量与渲染过程中所使用的参数的比较结果,确定应当使用上述渲染方法中的哪个方法。
这使渲染所需的多边形数量能够减小,并实现很高的交互性。此外,当显示笔划数很大的字符的缩小图像时,采用纹理映射方法来防止该字符变得难以辨认。
根据本发明的渲染装置和方法、形状数据生成装置和方法能够使用很少数量的多边形提供渲染得很清晰的图像。
希望实施例的渲染装置能够安装在执行矢量图形显示的下一代图形处理引擎或中间件中。
(第一实施例)将要参照图1描述根据本发明第一实施例的渲染装置。图1是有助于解释第一实施例的渲染装置配置的视图。该装置获得矢量图形形状数据和渲染参数,并输出作为矢量图形渲染结果的图像数据。
如图1所示,第一实施例的渲染装置包括输入单元101、形状特征量计算单元102、渲染方法选择单元103、位图纹理生成单元104、位图纹理渲染单元105、附带曲线—参数的多边形模型生成单元106、附带曲线—参数的多边形模型渲染单元107和呈现单元108。
输入单元101允许输入矢量图形形状数据。稍后将参照图2描述矢量图形形状数据。
形状特征量计算单元102计算由输入单元所输入的形状数据的形状特征量。稍后将参照图3、4和5详细描述单元102。
渲染方法选择单元103获得渲染参数和形状特征量,比较两者,并选择多边形模型渲染方法和纹理渲染方法中的一个,来渲染矢量图形形状数据。稍后将参照图6描述渲染参数。稍后将参照图7详细描述渲染方法选择单元103。
位图纹理生成单元104将矢量图形形状数据转换成位图纹理数据。位图纹理生成单元104确保纹理存储器(未示出)具有一定大小,该大小由例如在平行于x轴的线与图形形状数据的轮廓之间的交叉点的最大数量以及在平行于y轴的线与图形形状数据的轮廓之间的交叉点的最大数量确定,并且位图纹理生成单元104将图形形状数据转换成位图纹理数据。
位图纹理渲染单元105在指定位置处渲染由位图纹理生成单元104生成的位图纹理数据。所述指定位置是例如图6中的(Px,Py)。附带曲线—参数的多边形模型生成单元106将图形形状数据转换成具有曲线参数的多边形模型数据。稍后将参照图8详细描述附带曲线—参数的多边形模型生成单元106。
附带曲线—参数的多边形模型渲染单元107使用由附带曲线—参数的多边形模型生成单元106所生成的曲线参数来渲染多边形模型。稍后将参照图9详细描述附带曲线—参数的多边形模型渲染单元107。
呈现单元108呈现由位图纹理渲染单元105或附带曲线—参数的多边形模型渲染单元107所渲染的图像数据。
下面将参照图2描述输入单元101所输入的矢量图形形状数据的实例。如图2的左半部分所示,矢量图形形状数据包括,例如,轮廓开始码、线段码、二次贝塞尔曲线码、轮廓结束码和坐标。此外,如图2右半部分所示,矢量图形形状数据表示通过连接直线和曲线所形成的封闭曲线。
下面将参照图3描述图1中的形状特征量计算单元102的运行实例。
首先,检测由输入单元101输入的在平行于x轴的线与图形形状数据的轮廓之间的交叉点的最大数量,并且用该最大数量代替形状数据的特征量Cx(步骤S301)。接下来,检测由输入单元101输入的在平行于y轴的线与图形形状数据的轮廓之间的交叉点的最大数量,并且用该最大数量代替形状数据的特征量Cy(步骤S302)。在图2的实例中,Cx=2,Cy=4。
下面参照图4,描述图1中的形状特征量计算单元102的运行实例,该运行实例被执行用于检测交叉点的数量。图4的流程图用于检测在平行于x轴的线与形状数据之间的交叉点数量以及检测在平行于y轴的线与形状数据之间的交叉点数量。
首先,将平行于x轴或y轴的线设置成L(步骤S401)。接下来,将交叉点的数量C(C=Cx或Cy)初始化为0(步骤S402)。在这之后,将矢量图形形状数据设置成V(步骤S403)。对与V相关的所有轮廓图元(直线或曲线)执行处理(交叉点确定)。如果还存在未经过交叉点确定的轮廓图元,则读取上述轮廓图元之一并将其设置成CP(步骤S405)。确定CP是否是直线(步骤S406)。如果确定其是直线,对直线CP和直线L执行交叉点确定。如果两者彼此交叉,则数量C加1(步骤S408)。反之,如果CP不是直线,则将CP看作贝塞尔曲线,确定贝塞尔曲线CP和直线L之间的交叉点数量,由此将所确定的交叉点数量加到C上(步骤S407)。对所有轮廓图元执行了交叉点确定之后,输出交叉点的数量C(步骤S409)。
<使用关于直线与通过连接贝塞尔曲线的控制点所获得的多边形的交叉点确定来代替关于贝塞尔曲线与直线的交叉点确定的方法>
可以执行图5中的步骤S501来代替图4中的步骤S407。在图5中的步骤S501中,执行关于直线与通过连接贝塞尔曲线的控制点所获得的多边形的交叉点确定。如果多边形与直线有交叉点,则将贝塞尔曲线的次数(order)加到交叉点数量上。关于多边形的边与直线的交叉点确定,与关于曲线与直线的交叉点确定相比较而言是更有利的,因为前者需要较少的计算量。在图2的实例中,Cx=2,Cy=4。
将参照图6描述输入到渲染方法选择单元103的渲染参数实例。图6示出了渲染参数的数据结构。
渲染参数包括,例如,屏幕上的位置,以及参照该位置的指示旋转和缩放(仿射变换)的矩阵。在图6中,Px和Py表示屏幕上的位置,2×2矩阵表示仿射变换。
将参照图7描述图1的渲染方法选择单元103的运行实例。图7示出了渲染方法选择单元103所执行的处理。
假定在区域0≤x≤xm、0≤y≤ym中定义了矢量图形数据的形状,并且假设使用图6所示的渲染参数的仿射变换矩阵M使该矢量图形数据形状变形。
计算渲染区域的x轴方向排列的像素数量Sx,Sx=|M11xm|+|M21ym|(步骤S701)。标志||表示绝对值。此外,“M11xm”表示“M11”×xm。类似地,计算渲染区域的y轴方向排列的像素数量Sy,Sy=|M21xm|+|M22ym|(步骤S702)。接下来分别将Sx、Sy与形状特征量计算单元102获得的Cx、Cy进行比较(步骤S703和S704)。如果不满足条件Sx>Cx或Sy>Cy,则采用位图纹理渲染方法作为矢量图形渲染方法并由单元104和单元105执行(步骤S705)。如果满足条件Sx>Cx和Sy>Cy,则采用使用具有曲线参数的多边形模型数据的渲染方法作为矢量图形渲染方法并由单元106和单元107执行(步骤S706)。
此外,如果图7的过程不是在帧的单元中执行的,而是渲染方法选择单元103使用在先前帧中执行的选择结果作为接下来几个帧的选择结果,则能够减少过程的执行数量。
下面将参照图8,描述图1所示的附带曲线—参数的多边形模型生成单元106的运行实例。图8示出了附带曲线—参数的多边形模型生成单元106所执行的过程。在该过程中,依次读取轮廓信息和坐标从而输出三角形区域。
首先,读取轮廓数据的开始码,读取开始坐标并将其设置为Pa(步骤S801)。接下来,读取下一个码(步骤S802)。确定所述下一个码是否是表示线段轮廓的线段码(步骤S803)。如果其是线段码,则读取连续定义的坐标并将其设置为Pb,由此线段PaPb被记录为线性部分的轮廓(步骤S804)。此后,用Pb代替Pa(步骤S805),程序返回到步骤S802。如果在步骤S803确定所述下一个码不是线段码,则确定所述下一个码是否是二次贝塞尔码(步骤S806)。如果所述下一个码是二次贝塞尔码,则将联系定义的两对坐标设置为Pb和Pc(步骤S807)。计算矢量PbPa和PcPa的外积(Pb-Pa)×(Pc-Pa)(步骤S808)。如果该外积是正值,则将线段PaPc记录为另一个线性部分的轮廓,并且将三角形PaPbPc作为凸贝塞尔区域添加到附带曲线—参数的多边形模型数据中(步骤S809)。其后,用Pc代替Pa(步骤S811),程序返回到步骤S802。
如果在步骤S808确定外积是负值,则将线段PaPb记录为线性部分的轮廓,然后将线段PbPc记录为另一个线性部分的轮廓,并且将三角形PaPbPc作为凹贝塞尔区域添加到附带曲线—参数的多边形模型数据中(步骤S810)。其后,用Pc代替Pa(步骤S811),程序返回步骤S802。
如果在步骤S806读取的码不是二次贝塞尔曲线码,则确定其为轮廓结束码,从而从记录为线性轮廓的轮廓内部提取三角形,并将所提取的三角形设置为三角形区域,并将其添加到附带曲线—参数的多边形模型数据中(步骤S812)。
附带曲线—参数的多边形模型渲染单元107填充在由附带曲线—参数的多边形模型生成单元106所输出的附带曲线—参数的多边形模型数据中包含的部分三角形区域的内部。具体地,如图9所示,填充在附带曲线—参数的多边形模型数据中包括的、被记录为凸贝塞尔区域和凹贝塞尔区域的那些区域。
例如,附带曲线—参数的多边形模型渲染单元107向像素渲染器输入图9所示的纹理坐标P4、P5和P6,从而获得二次贝塞尔曲线。
注意,附带曲线—参数的多边形模型生成单元106和附带曲线—参数的多边形模型渲染单元107采用在Proc.of ACMSIGGRAPH2005的1000-1009页中的C.Loop和J.Blinn的“ResolutionIndependent Curve Rendering using Programmable Graphics Hardware”中所公开的方法执行处理。
<用于明确指定所选择的渲染方法的方法>
图1所示的装置能够使用形状特征量计算单元102和渲染方法选择单元103,来根据矢量图形数据的形状和渲染尺寸,自动地切换两种渲染方法。然而,还可以使用一种设备(未示出),该设备从该装置的外部明确地指定应当使用两种渲染方法中的哪一个。
例如,根据特定图形形状是显示为近景还是远景,可以从外部向该装置输入指定适当渲染方法的信息。也就是说,如果特定矢量图形形状显示为近景,则采用在附带曲线—参数的多边形模型生成单元106和附带曲线—参数的模型渲染单元107中所使用的渲染方法。反之,如果特定矢量图形形状显示为远景,则采用在位图纹理生成单元104和位图纹理渲染单元105中所使用的渲染方法。
此外,可以采用一种根据矢量图形数据的显示位置与鼠标的显示位置之间的距离来切换渲染方法的方法。鼠标的显示位置是由,例如,用户来操作的。
<计算矢量图形数据的特征量的方法>
由于矢量图形数据具有由封闭曲线的轮廓所定义的形状,因此形成轮廓的轮廓图元的数量、轮廓的长度、顶点的数量和线段的数量等等以及直线与轮廓之间的交叉点数量可以用作特征量。形状特征量计算单元102和渲染方法选择单元103的处理内容会根据所使用的特征量而改变。
<本实施例的优点>
在本实施例中,预先获得要渲染对象的形状的复杂度作为特征量。当采用很少数量的像素渲染在帧存储器中渲染的图像时,显示通过在具有足够存储能力的帧存储器中渲染矢量图形而得到的位图纹理(使用单元104和105),这代替了在Proc.of ACM SIGGRAPH20051000-1999页的C.Loop和J.Blinn的“Resolution Independent CurveRendering using Programmable Graphics Hardware”中公开的方法。这能够避免在一个像素中渲染多边形的轮廓从而产生难以辨认的符号的问题。
此外,在Proc.of ACM SIGGRAPH2005 1000-1999页的C.Loop和J.Blinn的“Resolution Independent Curve Rendering usingProgrammable Graphics Hardware”中公开的渲染方法需要极大数量的多边形用于渲染,因此成本大于利用纹理的渲染方法,尽管该方法能够提供较高质量的显示。因此,如果使用前一种方法仅用于要高质量地显示的形状,则能够减少显示极大数量的矢量图形形状的处理成本,同时不会降低显示质量,从而改善交互性。
(第二实施例)根据第二实施例的图像渲染装置包括形状数据生成装置和与其分离的图像数据输出装置。形状数据生成装置接收矢量图形形状数据,并在渲染该矢量图形形状数据之前输出结构化的矢量图形形状数据。图像数据输出装置接收所输出的结构化矢量图形形状数据和渲染参数,并输出作为结构图形形状渲染结果的图像数据。
下面将参照图10、图11和图12描述第二实施例中使用的形状数据生成装置。
形状数据生成装置包括输入单元101、形状特征量计算单元102、位图纹理生成单元104、附带曲线—参数的多边形模型生成单元106和输出单元1001。在下面的描述中,与上述元件类似的元件用相应的附图标记来标识,而且不对其进行详细描述。
输出单元1001接收形状特征量计算单元102所计算的形状特征量,位图纹理生成单元104所生成的位图纹理数据和附带曲线—参数的多边形模型生成单元106所生成的附带曲线—参数的多边形模型,并输出如图11所示的结构化矢量图形形状数据。
当如图12所示在一个帧中存在多个矢量图形对象时,输出单元1001输出与各个矢量图形对象相关的结构化矢量图形形状数据。在该情况下,形状特征量计算单元102计算与各个矢量图形对象相对应的形状特征量。
下面将参照图13描述第二实施例中使用的图像数据输出装置。图像数据输出装置接收图11中定义的结构化矢量图形形状数据,并输出作为矢量图形渲染结果的图像数据。
第二实施例的图像数据输出装置包括输入单元1301、渲染方法选择单元103、位图纹理渲染单元105、附带曲线—参数的多边形模型渲染单元107和呈现单元108。
输入单元1301接收结构化矢量图形形状数据,并将与该数据相对应的形状特征量传送到渲染方法选择单元103。基于渲染方法选择单元103的确定结果,将位图纹理数据传送到位图纹理渲染单元105,或者将附带曲线—参数的多边形模型数据传送到附带曲线—参数的多边形模型数据渲染单元107。
当将单个矢量图形形状定义为图12所示的多个结构化矢量图形数据项时,对于不同的组成区域,可以选择不同的渲染单元(105、107)。
在每秒显示几帧乃至几十帧图像的交互式系统中,存在这样的情况即想要将其中预先定义模型形状的预处理,从其中显示所定义的模型形状的渲染过程中分离出来。第二实施例针对将第一实施例实现为交互式系统的情况,其中所述预处理和渲染过程相互分离。
(第三实施例)下面将参照图14描述根据第三实施例的渲染装置。例如,第三实施例针对一种装置,该装置接收文本字符串,并且输出表示对与该文本字符串相对应的轮廓字体的渲染结果的图像数据。
第三实施例的渲染装置包括输入单元1401、轮廓字体数据库1402、矢量图形形状生成单元1403、形状特征量计算单元102、渲染方法选择单元103、位图纹理生成单元104、位图纹理渲染单元105、附带曲线—参数的多边形模型生成单元106、附带曲线—参数的多边形模型渲染单元107和呈现单元108。
输入单元1401接收文本字符串,而且将该字符串中包括的字符逐个地传送到矢量图形形状生成单元1403。
轮廓字体数据库1402使用字符码作为自变量(argument),输出每个轮廓字体的形状数据。
矢量图形形状生成单元1403生成与在文本字符串中包括的各个字符相对应的轮廓字体的形状数据。
下面将参照图15描述图14所示的矢量图形形状生成单元1403的运行实例。图15示出了矢量图形形状生成单元1403所执行的过程。在该过程中,从输入单元1401所输入的文本字符串中生成轮廓字体矢量图形形状数据。
首先,用来自上一级单元的文本数据字符串代替队列Q(步骤S1501)。接下来,初始化矢量图形形状数据的存储区域V(步骤S1502)。在步骤S1503确定队列Q中是否存在一个或多个字符。如果存在一个或多个字符,则提取出第一个字符并用其代替变量C(步骤S1504)。此后,从轮廓字体数据库1402读取与变量C的字符码相对应的轮廓字体数据,并且将其添加到存储区域V,随后程序返回到步骤S1503(步骤S1505)。如果在步骤S1503确定队列Q中没有字符,则将存储区域V中的内容输出到下一级单元(位图纹理生成单元104、附带曲线—参数的多边形模型生成单元106)(步骤S1506)。
<第三实施例的优点>
由于轮廓字体也是矢量图形形状,因此对于字符渲染,第三实施例也能够使用在第一实施例中所使用的渲染方法选择单元。
(第四实施例)
第四实施例针对一种形状数据生成装置,该装置用于接收文本字符串,并且在渲染与该文本字符串相对应的轮廓字体形状之前,输出图11中所定义的结构化矢量图形形状数据。
如图16所示,第四实施例的形状数据生成装置包括输入单元1401、轮廓字体数据库1402、矢量图形形状生成单元1403、形状特征量计算单元102、位图纹理生成单元104、附带曲线—参数的多边形模型生成单元106和输出单元1001。
第四实施例所执行的过程对应于当将第三实施例实现为交互式系统时所执行的预处理。
(第五实施例)第五实施例针对一种形状数据生成装置,该装置用于接收文本字符串或字符码,并输出结构化字体形状数据。
如图17所示,第五实施例的形状数据生成装置包括输入单元1401、轮廓字体数据库1402、矢量图形形状生成单元1403、形状特征量计算单元102、位图纹理生成单元104、附带曲线—参数的多边形模型生成单元106和输出单元1701。第五实施例是通过用输出单元1701代替第四实施例的输出单元1001而得到的。
输出单元1701输出结构化字体形状数据。如图18所示,结构化字体形状数据包括结构化矢量图形形状数据(图11)和对其添加的字体字符串信息(文本字符串或字符码)。
<第五实施例的优点>
由于在第五实施例中,每个轮廓字体不是定义为单个矢量图形形状,而是定义为与文档中的字符串、句子或段落的完整部分或者表格中的单元(这些都能够被存储为一个数据项)相对应的结构化字体形状数据。例如,电子程序表格中包括的单个程序信息字符串能够被定义为一个数据项。
(第六实施例)第六实施例针对一种渲染装置,该装置用于接收文本字符串或字符码,并显示字符形状。提供该渲染装置用于渲染第五实施例所输出的数据,下面将参照图19对其进行描述。
如图19所示,第六实施例的渲染装置包括输入单元1401、结构化字体形状数据库1901、形状特征量输出单元1902、位图纹理输出单元1903、附带曲线—参数的多边形模型输出单元1904、位图纹理渲染单元105、附带曲线—参数的多边形模型渲染单元107和呈现单元108。
结构化字体形状数据库1901存储结构化字体形状数据,并使用指定文本字符串或字符码作为自变量,输出在与该文本字符串或字符码相对应的结构化矢量图形形状数据中所包括的形状特征量、位图纹理数据或附带曲线—参数的多边形模型。
形状特征量读取单元1902接收由输入单元1401输入到结构化字体形状数据库1901的文本字符串或字符码作为自变量,并读取与该自变量相对应的形状特征量。
位图纹理读取单元1903接收由输入单元1401输入到结构化字体形状数据库1901的文本字符串或字符码作为自变量,并读取与该自变量相对应的位图纹理数据。
附带曲线—参数的多边形模型读取单元1904接收由输入单元1401输入到结构化字体形状数据库1901的文本字符串或字符码作为自变量,并读取与该自变量相对应的附带曲线—参数的多边形模型。
<第六实施例的优点>
在第六实施例中,在第五实施例的形状数据生成与在电子程序表格中包括的每个程序信息字符串相对应的结构化字体形状数据并且将所生成的数据存储在数据库中之后,从数据库中读出显示所必需的程序信息并进行显示。
(第七实施例)第七实施例的渲染装置是通过使用字符特征量计算单元2001来代替在第三实施例中的用于计算形状特征量的形状特征量计算单元102和使用该形状特征量的渲染方法选择单元103而得到的,其中,字符特征量计算单元2001使用字符自身的特征量。由于轮廓字体与各个字符相关,因此每个字符的笔划数都可以用作形状特征量,从而替代图4所示的在直线与轮廓之间的交叉点数量。
下面将参照图20描述根据第七实施例的渲染装置。
如所示,该渲染装置包括输入单元1401、轮廓字体数据库1402、矢量图形形状生成单元1403、字符特征量计算单元2001、字符信息数据库2002、渲染方法选择单元2003、位图纹理生成单元104、位图纹理渲染单元105、附带曲线—参数的多边形模型生成单元106、附带曲线—参数的多边形模型渲染单元107和呈现单元108。
字符特征量计算单元2001计算输入单元1001所输入的文本字符串的笔划数。
字符信息数据库2002使用与字符相对应的字符码作为自变量,输出该字符的笔划数。
渲染方法选择单元2003接收为笔划数设置的并作为渲染参数的阈值,用该阈值与每个字符特征量进行比较,以选择渲染单元。
<第七实施例的优点>
在第七实施例中,不计算与字符的真实形状相关的形状特征量,而是利用了与字符相对应的相应笔划数,从而省略了计算形状特征量的过程。
在第七实施例中,当获得每个要渲染的对象的形状的复杂度作为形状特征量并且用很小数量的像素在帧存储器中渲染该对象时,使用纹理渲染方法来代替多边形模型渲染方法,所述纹理渲染方法用于显示通过在具有足够容量的帧存储器中渲染矢量图形形状而预先生成的位图纹理。这能够克服这样的难题即在一个像素中渲染多个多边形的轮廓从而产生难以辨认的字符。
而且,多边形模型渲染方法需要极大数量的多边形用于渲染,因此其成本比纹理渲染方法高,虽然多边形模型渲染方法能够提供较高质量的显示。因此,如果仅对于需要高质量显示的特定形状采用多边形模型渲染方法,则能够减少显示极大数量的矢量图形形状的成本,从而提高交互性。
因此,能够渲染清晰的图像,同时减少了渲染所必需的多边形的数量。
权利要求
1.一种渲染装置,包括形状数据输入单元,配置为输入矢量图形数据;特征量计算单元,配置为计算与所述矢量图形数据相关的形状特征量,所述形状特征量表示由所述矢量图形数据所代表的形状的复杂度,或表示由所述矢量图形数据的形状所代表的字符的复杂度;获取单元,配置为获取所述形状在屏幕上的位置和用于表示到所述位置的仿射变换的矩阵作为多个渲染参数;像素数量计算单元,配置为基于所述渲染参数,计算在所述形状的渲染区域中包括的像素数量;第一转换单元,配置为当所述像素数量小于所述形状特征量时,将所述矢量图形数据转换成位图纹理数据;第一渲染单元,配置为渲染所述位图纹理数据;第二转换单元,配置为当所述像素数量不小于所述形状特征量时,将所述矢量图形数据转换成附带曲线-参数的多边形模型数据;第二渲染单元,配置为渲染所述多边形模型数据;选择单元,配置为根据所述输入的矢量图形数据,通过比较所述像素数量和所述形状特征量,在所述第一转换单元和所述第二转换单元中选择一个,并且在所述第一渲染单元和所述第二渲染单元中选择一个;以及呈现单元,配置为呈现在所渲染的位图纹理数据和所渲染的多边形模型数据中所选择的一个。
2.一种形状数据生成装置,包括形状数据输入单元,配置为输入矢量图形数据;特征量计算单元,配置为计算与所述矢量图形数据相关的形状特征量,所述形状特征量表示由所述矢量图形数据所代表的形状的复杂度,或表示由所述矢量图形数据的形状所代表的字符的复杂度;第一转换单元,配置为将所述矢量图形数据转换成位图纹理数据;第二转换单元,配置为将所述矢量图形数据转换成附带曲线-参数的多边形模型数据;以及生成单元,配置为通过将所述形状特征量、所述位图纹理数据和所述多边形模型数据构成一个组来生成结构化形状数据。
3.如权利要求2所述的装置,还包括获取单元,配置为获取所述形状在屏幕上的位置和用于表示到所述位置的仿射变换的矩阵作为多个渲染参数;像素数量计算单元,配置为基于所述渲染参数,计算在所述形状的渲染区域中包括的像素数量;第一渲染单元,配置为当所述像素数量小于所述形状特征量时,渲染所述位图纹理数据;第二渲染单元,配置为当所述像素数量不小于所述形状特征量时,渲染所述多边形模型数据;选择单元,配置为根据所述输入的矢量图形数据,通过比较所述像素数量和所述形状特征量,在所述第一转换单元和所述第二转换单元中选择一个,并且在所述第一渲染单元和所述第二渲染单元中选择一个;以及呈现单元,配置为呈现在所渲染的位图纹理数据和所渲染的多边形模型数据中所选择的一个。
4.一种渲染装置,包括字符串输入单元,配置为输入文本字符串;存储单元,配置为存储相互关联的字符码数据和轮廓字体数据;形状数据生成单元,配置为访问所述存储单元,生成矢量图形数据作为与所述文本字符串相对应的轮廓字体数据;特征量计算单元,配置为计算与所述矢量图形数据相关的形状特征量,所述形状特征量表示由所述矢量图形数据所代表的形状的复杂度,或表示由所述矢量图形数据的形状所代表的字符的复杂度;获取单元,配置为获取所述形状在屏幕上的位置和用于表示到所述位置的仿射变换的矩阵作为多个渲染参数;像素数量计算单元,配置为基于所述渲染参数,计算在所述形状的渲染区域中包括的像素数量;第一转换单元,配置为当所述像素数量小于所述形状特征量时,将所述矢量图形数据转换成位图纹理数据;第一渲染单元,配置为渲染所述位图纹理数据;第二转换单元,配置为当所述像素数量不小于所述形状特征量时,将所述矢量图形数据转换成附带曲线-参数的多边形模型数据;第二渲染单元,配置为渲染所述多边形模型数据;选择单元,配置为根据所述矢量图形数据,通过比较所述像素数量和所述形状特征量,在所述第一转换单元和所述第二转换单元中选择一个,并且在所述第一渲染单元和所述第二渲染单元中选择一个;以及呈现单元,配置为呈现在所渲染的位图纹理数据和所渲染的多边形模型数据中所选择的一个。
5.一种形状数据生成装置,包括字符串输入单元,配置为输入文本字符串;存储单元,配置为存储相互关联的字符码数据和轮廓字体数据;形状数据生成单元,配置为访问所述存储单元,生成矢量图形数据作为与所述文本字符码串相对应的轮廓字体数据;特征量计算单元,配置为计算与所述矢量图形数据相关的形状特征量,所述形状特征量表示由所述矢量图形数据所代表的形状的复杂度,或表示由所述矢量图形数据的形状所代表的字符的复杂度;第一转换单元,配置为将所述矢量图形数据转换成位图纹理数据;第二转换单元,配置为将所述矢量图形数据转换成附带曲线-参数的多边形模型数据;以及生成单元,配置为通过将所述形状特征量、所述位图纹理数据和所述多边形模型数据构成一个组来生成结构化形状数据。
6.一种形状数据生成装置,包括字符码输入单元,配置为输入字符码;存储单元,配置为存储相互关联的字符码和轮廓字体数据项;形状数据生成单元,配置为访问所述存储单元,生成矢量图形数据作为与所述输入字符码相对应的轮廓字体数据;特征量计算单元,配置为计算与所述矢量图形数据相关的形状特征量,所述形状特征量表示由所述矢量图形数据所代表的形状的复杂度,或表示由所述矢量图形数据的形状所代表的字符的复杂度;第一转换单元,配置为将所述矢量图形数据转换成位图纹理数据;第二转换单元,配置为将所述矢量图形数据转换成附带曲线-参数的多边形模型数据;以及结构化字体形状数据生成单元,配置为通过将所述输入字符码、所述形状特征量、所述位图纹理数据和所述多边形模型数据构成一个组来生成结构化字体形状数据。
7.如权利要求6所述的装置,还包括结构化字体存储单元,配置为只要输入了字符码,就存储由所述结构化字体形状数据生成单元所生成的结构化字体形状数据;特征量获取单元,配置为访问所述结构化字体存储单元,获得与所述输入字符码相对应的形状的形状特征量;渲染参数获取单元,配置为获取所述形状在屏幕上的位置和用于表示到所述位置的仿射变换的矩阵作为多个渲染参数;像素数量计算单元,配置为基于所述渲染参数,计算在所述形状的渲染区域中包括的像素数量;位图纹理获取单元,配置为当所述像素数量小于所述形状特征量时,访问所述结构化字体存储单元,获取与所述输入字符码相对应的位图纹理数据;第一渲染单元,配置为渲染所述位图纹理数据;多边形模型获取单元,配置为当所述像素数量不小于所述形状特征量时,访问所述结构化字体存储单元,获取附带曲线-参数的多边形模型数据,所述多边形模型数据对应于所述输入字符码;第二渲染单元,配置为渲染所述多边形模型数据;选择单元,配置为根据所述矢量图形数据,通过比较所述像素数量和所述形状特征量,在所述第一转换单元和所述第二转换单元中选择一个,并且在所述第一渲染单元和所述第二渲染单元中选择一个;以及呈现单元,配置为呈现所渲染的位图纹理数据和所渲染的多边形模型数据中的一个。
8.一种渲染方法,包括输入矢量图形数据;计算与所述矢量图形数据相关的形状特征量,所述形状特征量表示由所述矢量图形数据所代表的形状的复杂度,或表示由所述矢量图形数据的形状所代表的字符的复杂度;获取所述形状在屏幕上的位置和用于表示到所述位置的仿射变换的矩阵作为多个渲染参数;基于所述渲染参数,计算在所述形状的渲染区域中包括的像素数量;准备第一转换单元,所述第一转换单元配置为当所述像素数量小于所述形状特征量时,将所述矢量图形数据转换成位图纹理数据;准备第一渲染单元,所述第一渲染单元配置为渲染所述位图纹理数据;准备第二转换单元,所述第二转换单元配置为当所述像素数量不小于所述形状特征量时,将所述矢量图形数据转换成附带曲线一参数的多边形模型数据;准备第二渲染单元,所述第二渲染单元配置为渲染所述多边形模型数据;根据所述输入矢量图形数据,通过比较所述像素数量和所述形状特征量,在所述第一转换单元和所述第二转换单元中选择一个,并且在所述第一渲染单元和所述第二渲染单元中选择一个;以及呈现在所渲染的位图纹理数据和所渲染的多边形模型数据中所选择的一个。
9.一种形状数据生成方法,包括输入矢量图形数据;计算与所述矢量图形数据相关的形状特征量,所述形状特征量表示由所述矢量图形数据所代表的形状的复杂度,或表示由所述矢量图形数据的形状所代表的字符的复杂度;将所述矢量图形数据转换成位图纹理数据;将所述矢量图形数据转换成附带曲线-参数的多边形模型数据;以及通过将所述形状特征量、所述位图纹理数据和所述多边形模型数据构成一个组来生成结构化形状数据。
10.一种渲染方法,包括输入文本字符串;准备存储单元,所述存储单元配置为存储相互关联的字符码数据和轮廓字体数据;访问所述存储单元,生成矢量图形数据作为与所述文本字符串相对应的轮廓字体数据;计算与所述矢量图形数据相关的形状特征量,所述形状特征量表示由所述矢量图形数据所代表的形状的复杂度,或表示由所述矢量图形数据的形状所代表的字符的复杂度;获取所述形状在屏幕上的位置和用于表示到所述位置的仿射变换的矩阵作为多个渲染参数;基于所述渲染参数,计算在所述形状的渲染区域中包括的像素数量;准备第一转换单元,所述第一转换单元配置为当所述像素数量小于所述形状特征量时,将所述矢量图形数据转换成位图纹理数据;准备第一渲染单元,所述第一渲染单元配置为渲染所述位图纹理数据;准备第二转换单元,所述第二转换单元配置为当所述像素数量不小于所述形状特征量时,将所述矢量图形数据转换成附带曲线-参数的多边形模型数据;准备第二渲染单元,所述第二渲染单元配置为渲染所述多边形模型数据;根据所述矢量图形数据,通过比较所述像素数量和所述形状特征量,在所述第一转换单元和所述第二转换单元中选择一个,并且在所述第一渲染单元和所述第二渲染单元中选择一个;以及呈现所渲染的位图纹理数据和所渲染的多边形模型数据中所选择的一个。
11.一种形状数据生成方法,包括输入字符串数据;准备存储单元,所述存储单元配置为存储相互关联的字符码数据和轮廓字体数据;访问所述存储单元,生成矢量图形数据作为与所述文本字符码串相对应的轮廓字体数据;计算与所述矢量图形数据相关的形状特征量,所述形状特征量表示由所述矢量图形数据所代表的形状的复杂度,或表示由所述矢量图形数据的形状所代表的字符的复杂度;将所述矢量图形数据转换成位图纹理数据;将所述矢量图形数据转换成附带曲线-参数的多边形模型数据;以及通过将所述形状特征量、所述位图纹理数据和所述多边形模型数据构成一个组来生成结构化形状数据。
12.一种形状数据生成方法,包括输入字符码;准备存储单元,所述存储单元配置为存储相互关联的字符码和轮廓字体数据项;访问所述存储单元,生成矢量图形数据作为与所述输入字符码相对应的轮廓字体数据;计算与所述矢量图形数据相关的形状特征量,所述形状特征量表示由所述矢量图形数据所代表的形状的复杂度,或表示由所述矢量图形数据的形状所代表的字符的复杂度;将所述矢量图形数据转换成位图纹理数据;将所述矢量图形数据转换成附带曲线-参数的多边形模型数据;以及通过将所述输入字符码、所述形状特征量、所述位图纹理数据和所述多边形模型数据构成一个组来生成结构化字体形状数据。
全文摘要
图像渲染装置和方法,以及形状数据生成装置和方法。渲染装置包括输入单元,输入矢量图形数据;计算单元,计算与矢量图形数据相关的形状特征量;获取单元,获取形状在屏幕上的位置和用于表示到所述位置的仿射变换的矩阵作为渲染参数;第一转换单元,当像素数量小于形状特征量时,将矢量图形数据转换成位图纹理数据;第一渲染单元,渲染位图纹理数据;第二转换单元,当像素数量不小于形状特征量时,将矢量图形数据转换成附带曲线-参数的多边形模型数据;第二渲染单元,渲染多边形模型数据;选择单元,通过比较像素数量和形状特征量,在第一转换单元和第二转换单元中选择一个,在第一渲染单元和第二渲染单元中选择一个;以及呈现单元,呈现渲染位图纹理数据和渲染多边形模型数据中所选择的一个。
文档编号G06T11/00GK101046888SQ200710086240
公开日2007年10月3日 申请日期2007年3月9日 优先权日2006年3月30日
发明者杉田馨, 三原功雄 申请人:株式会社东芝
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1