在绘图系统中执行除以w运算的装置与方法

文档序号:6548307阅读:195来源:国知局
专利名称:在绘图系统中执行除以w 运算的装置与方法
技术领域
本发明是关于一种绘图系统,特别是关于一种用来在绘图系统中执行除以w运算的装置与方法,其中w代表一齐次坐标值。

背景技术
在已知技术与科学中,三维度电脑绘图是与三维度物件的二维度影像的产生或描绘(rendering)有关,所产生的影像是用以显示或呈现在一显示装置或监视器上,例如在阴极射线管(CRT;Cathode Ray Tube)或液晶显示器(LCD)上。上述物件可以是一种简单的几何图元(primitive),如点、线段、三角形或多边形。较复杂的物件可以是以呈现该物件的一连串相连的平面多边形描绘在显示装置上,例如以一连串相连的平面三角形来呈现。所有的几何图元最终都可以用一顶点或一顶点集合来描述,例如,以座标(x,y,z)来定义一个点,来做为一线段的端点,或是一多边形的一角。
为了产生三维度图元的二维度投影呈现的资料,以用来在电脑屏幕或其他显示装置上显示,图元的顶点会在一图形描绘的管线(graphics-rendering pipeline)中经过一连串的运算或处理阶段。一般的管线是一连串串联的处理单元或阶段,在管线中来自前一阶段的输出会成为其下一阶段的输入。一绘图处理器内部(context)所包含的阶段可以包含如各顶点运算(per-vertex operations)、图元组合运算(primitiveassembly operations)、像素运算(pixel operations)、材质组合运算(texture assembly operations)、点阵化运算(rasterizationoperations)与片断运算(fragment operations)。
在一典型图形显示系统中,画面上物件可以是储存在一影像资料库(如一命令列),这些物件是以数个小多边形来描述。物件的表面是由多边形来覆盖,以同样的方式,可以用数个小色砖来覆盖一墙面或其他表面。每一个多边形是被由一顶点座标的(vertex coordinates)清单(在“MODEL”座标是中的X、Y、Z)与素材表面特性(material surfaceproperties)的规格(如颜色、材质、亮度等等)来描述,也有可能是对表面上每个顶点处的法线向量来描述。对表面具有复杂弧度的三维度物件而言,多边形一般为三角形或四边形,而后者可被拆解为两个三角形。
为因应经由使用者输入所选择的视角,一转换引擎被用来转换物件座标。另外,使用者可指定视野范围(所要产生的影像的大小),以及指定视景空间(viewing volume)之后端是否包含或消去背景。
一旦视景区域被选择,割截逻辑电路将消去在视景区域之外的多边形,并且割截跨视景区域内外的多边形。这些被割截后的多边形是相应于割截前位于视景区区域内的部份,并且以视景区域所相应的边缘部份做为其新边。多边形的顶点接下来会被递送至下一阶段,在下一阶段的视景屏幕(viewing screen)的座标(x,y座标)是相应于每一个顶点的相关深度(z座标)。在典型的系统中,光照模组(lighting model)接下来会被用来计算光源(light sources),之后多边形会伴随著其颜色值(color values)被递送至点阵化装置(rasterizer)。
就每一个多边形而言,点阵化装置会判断哪些像素被该多边形所涵盖,并且试着将相关的颜色值与深度值写入图幅缓冲区(frame buffer)。点阵化装置将会比较被处理的多边形的深度值(新多边形像素的深度)与已写入于图幅缓冲区像素的深度值,如果新多边形像素的深度较小,表示其在所有目前已写入图幅缓冲区内的多边形的前面,则该深度值会取代在图幅缓冲区内的深度值,因为新的多边形将遮掩先前被处理并写入图幅缓冲区的多边形。这样的处理会反复被执行,直到所有多边形都被点阵化(rasterized)为止。在此,一视讯控制器在一显示器上所显示的图幅内容会依点阵(raster)(或光栅)顺序,一次一条扫瞄线依次来显示。
就已知的技术中,在绘图处理与著色运算(rendering operations)期间,会有数个转换与其他运算会被执行,其中会运用到齐次座标(homogeneous coordinates)。更进一步,齐次座标与投影几何(projective geometry)有着相同的关系,特别是齐次座标提供了用来在投影几何中执行计算(如转移、旋转、改变大小等等)的方法。例如,由三维度卡氏座标(Cartesian coordinates)(x,y,z)转换成齐次座标时会涉及一额外变数(w)的加法。
齐次座标提供了在欧基理德空间(Euclidean space)的点上的某些标准运算的方法(或机制),该方法是以矩阵乘法的装置来运算。典型地,这些点被转变至齐次座标,然后在被转变回非齐次座标前会被执行各种转换,从齐次座标而来的转换是以除以w(齐次座标值)来执行,然而这样在w=0(表示一个点位于一无限远的距离)时便会产生问题。在先前系统与方法中为调适这样的问题,是在w=0时以减去一个非常小的值来取代w,如此可有效地避免除以0的问题,却也导致了结果上的错误(即使很微小)。
据此,有必要提供一种改进的方法与装置,以用来执行从齐次座标系统的转换,在转换时能够有效地管理w=0的情形,并且不会对数值结果产生错误。


发明内容
部份本发明的某些目的、优点与特征将描述如下,并且未被提及部份是已知相关技术者由检验以下描述或经由实践可轻易推知。本发明的目的与优点可由申请专利范围所指出的手段与组成来被推知。
为达成本发明的优点与特征,本发明提出一种从齐次座标呈现转换复数个点的方法,该复数个点是以x、p与w值来定义,其中x代表一几何座标值,p代表任何选择属性值,并且w代表一齐次座标值,其特征在于,该从齐次座标呈现转换复数个点的方法包含 对每一点; 判断该点的w值是否为0 在w值为0时,不对x值或p值除以w值,但设置一旗标;以及 在w值不为0时,对x值与p值除以w值。
本发明在一种电脑图形描绘程序中的方法,其特征在于,包含 从齐次座标呈现转换复数个点的方法,该复数个点是以x、p与w值来定义,其中x代表一几何座标值,p代表任何选择属性值,并且w代表一齐次座标值,其中对每一个点 判断该点的w值是否为0; 在w值为0时,不对x值或p值除以w值,但设置一旗标;以及 在w值不为0时,对x值与p值除以w值。
还包含在该转换后被执行的一后续运算中判断该旗标是否被设置,并且在该旗标被设置时,对该转换的除以w运算执行一减法运算。
本发明一绘图系统,其特征在于,包含 用来从齐次座标呈现中转换复数个点的逻辑电路,该复数个点是以x、p与w值来定义,其中x代表一几何座标值,p代表任何选择属性值,并且w代表一齐次座标值,该逻辑电路包含 判断该点的w值是否为0的逻辑电路; 当w值为0,不对x值或p值除以w值但是设定一旗标的逻辑电路;以及 当w值不为0,对x值与p值除以w值的逻辑电路。
其中还包含执行一属性设定运算的属性逻辑电路,该属性逻辑电路是用以检查该旗标的状态,并且基于该旗标的该状态执行两种不同的属性设定运算。
其中上述的两种不同的属性设定运算的第一种是假设该属性p被除以w时被执行,并且该两种不同的属性设定运算的第二种是假设该属性p未被除以w时被执行。
其中还包含可以执行边设定运算的逻辑电路,用以检查该旗标的状态并且基于该旗标的该状态执行两种不同的属性设定运算的逻辑电路。
本发明一绘图系统,其特征在于,包含 对一给定的被转换点判断是否w等于0的逻辑电路,其中w代表一齐次座标值; 转换在该给定点上相关于一三角形设定运算的转换的逻辑电路,该转换是在该w被判断为非0时被转换; 设置一指示并且跳过在该给定点上执行该转换的逻辑电路,该指示是在该w被判断为0时设置;以及 在三角形设定运算之后执行后续运算的逻辑电路,该在三角形设定运算之后进行后续运算的逻辑电路是用来检查该指示的状态,并且在该指示的状态是表示该w为0时计算该给定点在齐次座标中的一相关属性。
其中上述的指示是一旗标。
其中还包含在对该属性运算之后运算的一逻辑电路,该逻辑电路是用以在该指示的该状态表示相应于该给定点的该w为0时转换该给定点至屏幕座标。



本发明在此所探讨的方向为一种在绘图系统中执行除以w的运算的装置与方法。为了能彻底地了解本发明,将在下列的描述中提出详尽的结构。显然地,本发明的施行并未限定于熟知相关技艺者所熟习的特殊细节。另一方面,众所周知的组成或制程步骤并未描述于细节中,以避免造成本发明不必要的限制。本发明的较佳实施例会详细描述如下,然而除了这些详细描述之外,本发明还可以广泛地施行在其他的实施例中,且本发明的范围不受限定,其以之后的申请专利范围为准。
图1是为本发明的一具体实施例中一绘图管线架构下的某些元件的功能区块示意图; 图2是为本发明的一具体实施例中位于图1的三角形设定的某些元件的功能区块示意图; 图3是在比较一几何座标时对任意属性的斜率计算的示意图,此斜率计算是被用于本发明的一具体实施例中; 图4是为本发明的一具体实施例中某些逻辑电路元件的功能区块示意图;以及 图5是为本发明的一具体实施例以一多工器来选择对某些运算的逻辑处理的示意图。

具体实施例方式 如先前所述,本发明是揭露一种在w(一齐次座标值)为0时处理转换计算的方法与系统。在讨论各具体实施例的细节的前,请先参照图1,该图是举例了在绘图管线(graphics pipeline)中的某些元件,这些元件将在本发明的具体实施例中,或被本发明的具体实施例所运用。图1中所示的管线元件是一几何程序(geometry process)110、三角形设定(triangle setup)逻辑电路120、色砖产生器(tile generator)130、属性设定区块140与一像素遮影器(pixel shader)150,这些元件的功能与运算是熟悉该项技术者所熟知,因此其细节不需在此讨论。然而几何程序110可以是一运算于主机电脑的程序,该程序是用以产生图形资料(如几何资料),图形资料会被提供给绘图管线以用来描绘(rendering)与显示于一电脑显示器(未示于图示)上。几何程序110所产生的几何资料与其他图形资料是被传递给逻辑电路120,以用来执行三角形设定的运算。三角形设定的特定功能与实施细节会随实施方式不同而改变,一般而言,有关三角形图元(primitives)的顶点资讯会被送至三角形设定逻辑电路120,并且会被执行于许多运算。如图2所示,在其他运算中,某些几何转换可能会在三角形设定逻辑电路120中被执行。
如图示,对每一个顶点而言,像是x,y,z与w资讯的几何资料会被提供(其中x,y与z是几何座标,并且w是齐次座标)。就已知技术者所知悉,许多转换会由此产生,如模型空间(model space)至自然空间(world space)至眼空间(eye space)、至投影空间(projection space)、至齐次空间(homogeneous space)、至规格化设备座标(nomalized devicecoordinates;NDC)以及最后至屏幕空间(screen space)(由一视角(viewport)转换来执行)。
同样地,这些各种转换是已知该项技术者所熟知,因此不需在此描述。在此考量下,如已知技术者所已知,由齐次座标至规格化设备座标的转换会包含除以w的运算,该运算是在w为不等于0时情形下进行。然而,在w等于0时会发生除以0(违规运算)的问题。本发明的一具体实施例以设置旗标并跳过除法运算的方式来处理这个问题,在这情况下,几何运算被留在齐次座标空间。
之后(或下游)的逻辑电路区块在执行某些运算前会检查这个旗标的状态,以此方式,旗标的值或状态是表示目前的资料是在何种座标系中,如此适当且准确的运算与转换才能达成。
在本发明的一具体实施例中,逻辑电路125是用于执行此运算(如判断w是否为0,如果是,送出一适当的旗标),此运算被并为三角形设定逻辑电路120的一部份。理所当然地,在其他具体实施例中,逻辑电路125亦可以在三角形设定逻辑电路120之外被施行。成对的逻辑电路135与145被提供于三角形设定逻辑电路120之后,以此用来判断代表w为0的旗标是否被设置,亦即当相关资料被运算于后续的逻辑电路时,这些元件能查明资料是维持在齐次座标中,或者已经执行了至规格化设备座标与/或屏幕座标(screen coordinates)的转换。此判断可采评估逻辑电路125所设置的旗标来达成,其中一个这样的检查或比较可以是在属性设定逻辑电路140中被完成。如已知,各种属性(如材质、涂雾、透明等等)会与各绘元与像素相关,某些逻辑电路140所做的属性设定运算会先于像素遮影器的运算(其判断图元内像素的颜色资讯,图元内像素是被用来显示于显示器)。因为像素属性与相应于像素的几何资料有关,系统在相关像素的运算偏好以相关座标系统的知识来运算,该知识取决于旗标被设定与否。在本发明的一具体实施例中,相似逻辑电路135可被施行于扫瞄与色砖产生器的逻辑电路130中。
参考图2,其举例了本发明的一具体实施例中施行于三角形设定逻辑电路120中的某些逻辑电路元件。界面逻辑电路115可被提供来做为三角形设定逻辑电路125与几何程序110的中介,某些在三角形设定逻辑电路120内的传统逻辑电路元件包含用来执行除以w运算的逻辑电路122、用来执行视角转换的逻辑电路123、用来执行三角形组合的逻辑电路124、与用来执行图元的零散拒绝(trivialrejections)的逻辑电路126。根据本发明的一具体实施例,除以w逻辑电路122可包含用来判断是否目前w值是否为0的逻辑电路127。若不为0,则逻辑电路128会执行传统的除以w运算。然而如果w被判断为0,则逻辑电路129会设定一旗标并且执行不除以w的运算,在这种情形下,用于相关图元的视角转换逻辑电路123会被跳过。
所举例的具体实施例的主要目的是旗标的设定与识别(当w等于0时),使得之后的元件在对相关像素或其他几何资料的属性执行运算时能采取适当的行动。在此考量下,参照图3,此图示是用以帮助说明在w等于0时处理属性设定的示意图。为简化起见,该图仅举例一几何维度(x),不过其也可以轻易被扩充其他维度。下列所提供的虚拟码(pseudo-code)是与图3相关,其中举例了一个用来处理属性计算的方法,该方法能调适除以w的状况。在下列虚拟码片段,“//”表示为非运算的注解。
  //Divide by w stage  //P is attribute<!-- SIPO <DP n="10"> --><dp n="d10"/>   //Q is attribute in screen space(P divide by w)if(w==0)   //don’t do divide,but set a flag   set flag WZEROelse   Q=P/W//do normal divide,and keep WZERO flag cleared//Attribute setup stage//Suppose W0 !=0,W1==0if(WZERO)   data=P1/X1   //if WZERO flag was previously set,calculate″delta″(slope of attribute line)by computing P1/X1 in homogenouscoordinate spaceelsedelta=dQ/dX=(Q1-Q0)/(X1-X0)   //if WZERO flag was not previously set,calculate″delta″as the change in Q over the change in X,as the conversion to screenspace was previously performed//Interpolation stageQ=Q0+(X-X0)*delta w是否为0或非0可被轻易地检验,属性最终会被以屏幕空间来运算。此外,所举例方法中所执行的插入法(interpolation)是一致的,并且可以被避免在w等于0时因减去一非0值以取代W所引起的不正确。另外,被用于本发明的一具体实施例中的一旗标是一单位元旗标,是用以提供一简便方法或机制来递送相关资讯给后续的处理区块。在此考量下,在一些具体实施例中,数个后续的区块需要知道这些资讯,这些后续的区块可以是包含一三角形判断计算(a triangle determinantcalculation(DET))、被扫描与色砖产生器所执行的边计算、与属性设定运算。在许多系统中w值可以是传送给属性设定区块,通常不是送给三角形判断计算或边计算。不过单位元值易于管理,可轻易成为送给这些区块的资讯的一外加部份。
在本具体实施例所描述的领域与精神中,旗标一词是为广义的,可以是提供一二进位或真(true)/伪(false)的指示(如是否w=0)的一机制。并且在实施上,以旗标是否被设置(set)或清除(cleared)来表示w=0的状况并不是绝对的。
参考图4,其举例了本发明的一具体实施例的某些元件,在图4的具体实施例中,一绘图管线包含绘图管线逻辑电路200。除了数个标准或传统逻辑电路元件,此绘图管线逻辑电路200并且包含用来执行除以w运算的逻辑电路210。在逻辑电路210的一部份提供了一逻辑电路215,当w被判断为0时,逻辑电路215被用来设置一旗标,并且对绘图元件的除以0运算将会被省略。协同的逻辑电路被用于执行在后续绘图元件上的的各种运算,这些运算可以是包含有几何或属性设定运算。逻辑电路225被提供来为特定绘图元件判断表示w等于0旗标是否被设置,如果没有,该元件上的运算会被进行,该运算是于屏幕空间内被处理,在此之前转至屏幕空间的转换已预先于绘图管线逻辑电路200中被执行。否则,绘图元件的处理是在齐次座标内,此时尚未执行转至屏幕空间的转换。
在图5中举例了一种施行后者功能的机制,其中所使用的旗标值可以被用来发出信号给多工器250的选择线路。在此考量下,逻辑电路252可以被提供来处理齐次座标中的几何或属性,而其他逻辑电路254可以被提供来处理在屏幕座标中的几何与属性资讯。表示w等于0的旗标的状态可以用来判断哪个逻辑电路对之后管线运算是可以用的或有效的。从图5的例子中可以推知上述并非仅仅意指于一个实体或电路的运算,更确切地说是一种功能运算的呈现,此功能运算是有关于如何将单位元旗标运用在处理除以w的运算。
显然地,依照上面实施例中的描述,本发明可能有许多的修正与差异。因此需要在其附加的权利要求项的范围内加以理解,除了上述详细的描述外,本发明还可以广泛地在其他的实施例中施行。上述仅为本发明的较佳实施例而已,并非用以限定本发明的申请专利范围;凡其它未脱离本发明所揭示的精神下所完成的等效改变或修饰,均应包含在下述申请专利范围内。
权利要求
1.一种从齐次座标呈现转换复数个点的方法,该复数个点是以x、p与w值来定义,其中x代表一几何座标值,p代表任何选择属性值,并且w代表一齐次座标值,其特征在于,该从齐次座标呈现转换复数个点的方法包含
对每一点;
判断该点的w值是否为0
在w值为0时,不对x值或p值除以w值,但设置一旗标;以及
在w值不为0时,对x值与p值除以w值。
2.在一种电脑图形描绘程序中的方法,其特征在于,包含
从齐次座标呈现转换复数个点的方法,该复数个点是以x、p与w值来定义,其中x代表一几何座标值,p代表任何选择属性值,并且w代表一齐次座标值,其中对每一个点
判断该点的w值是否为0;
在w值为0时,不对x值或p值除以w值,但设置一旗标;以及
在w值不为0时,对x值与p值除以w值。
3.如权利要求2所述的电脑图形描绘程序中的方法,其特征在于,还包含在该转换后被执行的一后续运算中判断该旗标是否被设置,并且在该旗标被设置时,对该转换的除以w运算执行一减法运算。
4.一绘图系统,其特征在于,包含
用来从齐次座标呈现中转换复数个点的逻辑电路,该复数个点是以x、p与w值来定义,其中x代表一几何座标值,p代表任何选择属性值,并且w代表一齐次座标值,该逻辑电路包含
判断该点的w值是否为0的逻辑电路;
当w值为0,不对x值或p值除以w值但是设定一旗标的逻辑电路;以及
当w值不为0,对x值与p值除以w值的逻辑电路。
5.如权利要求4所述的绘图系统,其特征在于,其中还包含执行一属性设定运算的属性逻辑电路,该属性逻辑电路是用以检查该旗标的状态,并且基于该旗标的该状态执行两种不同的属性设定运算。
6.如权利要求4所述的绘图系统,其特征在于,其中上述的两种不同的属性设定运算的第一种是假设该属性p被除以w时被执行,并且该两种不同的属性设定运算的第二种是假设该属性p未被除以w时被执行。
7.如权利要求4所述的绘图系统,其特征在于,其中还包含可以执行边设定运算的逻辑电路,用以检查该旗标的状态并且基于该旗标的该状态执行两种不同的属性设定运算的逻辑电路。
8.一绘图系统,其特征在于,包含
对一给定的被转换点判断是否w等于0的逻辑电路,其中w代表一齐次座标值;
转换在该给定点上相关于一三角形设定运算的转换的逻辑电路,该转换是在该w被判断为非0时被转换;
设置一指示并且跳过在该给定点上执行该转换的逻辑电路,该指示是在该w被判断为0时设置;以及
在三角形设定运算之后执行后续运算的逻辑电路,该在三角形设定运算之后进行后续运算的逻辑电路是用来检查该指示的状态,并且在该指示的状态是表示该w为0时计算该给定点在齐次座标中的一相关属性。
9.如权利要求8所述的绘图系统,其特征在于,其中上述的指示是一旗标。
10.如权利要求8所述的绘图系统,其特征在于,其中还包含在对该属性运算之后运算的一逻辑电路,该逻辑电路是用以在该指示的该状态表示相应于该给定点的该w为0时转换该给定点至屏幕座标。
全文摘要
本发明揭示一种在一齐次座标表现中转换复数个点的系统与方法,这些点是被以x、p与w来定义,其中x是代表一几何座标值,p代表任何选择属性(arbitrary attribute)值,并且w代表一齐次座标值。在一具体实施例中,该方法包含对每一个点(1)判断该点的w值是否为0,(2)在w为0时跳过对x值或p值除以w的运算并且设定一旗标,以及(3)在w不为0时对x值与p值除以w。本发明也提供具有数种逻辑电路元件的绘图系统,其可以施行上述的运算。
文档编号G06T15/20GK1661632SQ20051006733
公开日2005年8月31日 申请日期2005年4月20日 优先权日2004年4月20日
发明者陈翎 申请人:威盛电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1