用于渲染图形的图形管道的制作方法

文档序号:6656355阅读:214来源:国知局
专利名称:用于渲染图形的图形管道的制作方法
技术领域
本发明涉及一种用于渲染(render)图形的图形管道(graphicspipeline),该图形管道包括输入、光栅化器(rasterizer)和映射器,该输入用于接收纹理数据和顶点数据,该纹理数据定义了纹理空间上的纹理映射,每个纹理映射包括与纹理空间网格坐标相关联的纹理元(texel),该顶点数据包括输入多边形的纹理空间输入坐标与输出多边形的屏幕空间输入坐标,每个输入多边形都与一个对应的输出多边形相关联,该光栅化器用于接收输入多边形的纹理空间输入坐标和提供该输入多边形内部纹理元的纹理空间网格坐标,而该映射器用于将输入多边形内部的纹理元映射到输出多边形,该映射通过由输入矩形内部纹理元的纹理空间网格坐标计算出屏幕空间输出坐标来执行。在这里,一个纹理元是一个纹理元素。
本发明进一步涉及到一种用于渲染要在显示器上显示的图形的方法、计算机和显示图形的设备。
背景技术
纹理映射是目前3D图形系统的一种核心技术。这样的图形系统被用于在个人电脑或者诸如Nintendo Game Cube,the Sony Playstation和Microsoft Xbox之类的游戏操纵台上的、类似3D计算机游戏的图形应用。通过纹理映射而为3D物体的2D表示的几何图形提供纹理。因此,屏幕上图形的形状以及颜色可以逼真地类似于该3D物体。对于纹理映射经常使用两种技术反向纹理映射(ITM)和正向纹理映射(FTM)。对于ITM,在屏幕空间中像素被遍历(traverse),且映射器将像素网格坐标映射为纹理元坐标。被映射的纹理元坐标强度,通过对存储在纹理存储器中且出现在纹理元坐标周围纹理元网格位置处的纹理元强度加权来确定。对于FTM,屏幕空间位置由纹理网格坐标计算得到。屏幕空间位置处的强度被分布在屏幕空间网格位置的周围,且屏幕空间网格位置处被分布的亮度被存储在一个图像缓冲器中。按照本发明的图形管道是基于FTM技术的。
一个典型的3D FTM图形管道包括一个用于接收纹理数据与图形数据的输入、一个存储纹理数据的纹理存储器、一个光栅化纹理空间中的输入多边形的光栅化器以及一个将纹理映射到屏幕上的映射器。纹理数据定义了纹理映射,每个纹理映射包含一系列纹理元,每个纹理元都与纹理空间网格坐标以及一个纹理颜色相关联。顶点数据包括定义输入多边形顶点的纹理空间输入坐标以及定义输出多边形顶点的屏幕空间输入坐标。输出多边形组成了3D物体的2D表示的一个几何图形。每个输入多边形与一个对应的输出多边形相关联。2D表示用于在显示屏幕上进行显示并且表示从某一个视点看的该3D物体的透视图。纹理存储器存储了纹理数据。光栅化器接收输入多边形的纹理空间输入坐标并且提供输入多边形内部纹理元的纹理空间网格坐标。输入多边形顶点的纹理空间输入坐标不必安置在网格位置上。映射器将纹理元的颜色和坐标映射到输出多边形上。映射通过由纹理空间网格坐标计算出屏幕空间输出坐标来执行。屏幕空间输出坐标一般不在屏幕空间中的像素网格位置上。经常使用一个屏幕空间重采样器来将映射的纹理空间网格坐标的颜色泼溅(splat)到屏幕空间输出坐标周围的像素网格位置上。
已知的FTM图形系统使用透视映射将纹理空间中的多边形映射到屏幕空间中的多边形。

图1中显示了透视映射的一个例子。屏幕空间5中显示了一个棱锥的透视投影。在现实世界中,棱锥由一个正方形底座上的四个三角形来形成,在屏幕空间5中,从限定2D表示的视点只能看到三个三角形。纹理空间4包括在屏幕空间表示中可见的三个三角形1,2,3的纹理。2D纹理空间4中的三角形1,2,3等价于在3D自然空间(未显示)中从一个垂直于该三角形的视向所见的三角形。纹理空间4中的每个三角形,根据其在自然空间中相对于观看平面(=屏幕空间5)的取向,都经历了不同的变形(transform)。在这种情况下,自然空间中平行于观看平面5的一个三角形2的形状,以及这个三角形2的纹理形状在2D表示中得到了保留。棱锥到屏幕空间5的透视投影导致两个三角形1和3被变形为不同形状的三角形。这两个三角形1和3上的纹理也被变形了,因为三角形1和3内部所有的纹理元都随着三角形1、3本身一起变形。图1所示的透视投影结果是纹理空间中的多边形被变形为相同三角形的2D表示,正如从某一非垂直于观看平面5的视向所看到的。
3D图形中所使用的透视映射的一般形式为xchychwch=ABCDEFGHIugvg1---(1)]]>其中h表示这些是齐次坐标(homogeneous coordinate),它们仍必须被第三坐标(Wch)去除才能得到实际屏幕空间输出坐标xc和yc。ug和vg是要被映射的纹理元的纹理空间网格坐标。
齐次坐标用于将非线性的透视投影分成容易实现的线性运算和一次除法。映射器首先使用输入多边形的纹理空间输入坐标与输出多边形的屏幕空间输入坐标来计算映射系数A-I。因为自然空间中的所有多边形都有相对于观看平面5的不同取向,所以映射系数会随多边形的不同而不同。当映射系数已知时,多边形内所有的纹理元都被映射到输出多边形上。
上述图形系统的一个缺点是光栅化器的复杂性和昂贵性。例如,输入多边形可能是由其顶点的纹理空间坐标限定的三角形、四边形或五边形。为了确定哪些纹理元在多边形内部,光栅化器首先必须确定多边形的边缘。然后才能确定哪些纹理元在多边形内部并需要进一步处理。为了计算边缘,需要有一个复杂并且昂贵的光栅化器。因此,这样一个光栅化器不适合于低预算的图形系统。希望有这种低预算图形系统来将3D图形技术加到例如电视或蜂窝电话上。
发明概述本发明的一个目的是提供用于渲染要在显示器上进行显示的图形的系统,该系统包括一个低复杂度和不太昂贵的光栅化器。
本发明在独立权利要求中限定。从属权利要求限定了有利的实施方案。
为了实现本发明的目的,提供了一种只必须对与轴对准的(axis-aligned)矩形进行光栅化的光栅化器。与轴对准的矩形可以只由两个坐标对来限定。光栅化这些与轴对准的矩形并不需要进行复杂的边缘计算。在与轴对准的矩形内部的纹理元可以很容易地被处理,例如使用下面的示例代码而逐行地进行处理
Fori=vr1to vr2Forj=ur1to ur2Process (j,i)j=j+1End Fori=i+1End For其中ur1和vr1是定义与轴对准的矩形的第一个坐标对中的坐标,而ur2和vr2是定义与轴对准的矩形的第二个坐标对中的坐标。
在根据本发明的图形管道中,映射器通过由纹理元的纹理空间网格坐标计算屏幕空间输出坐标来将输入矩形内部的纹理元映射到输出四边形。屏幕空间输出坐标是使用一个映射函数而计算得到的,该映射函数包括输入矩形内部纹理元的纹理空间网格坐标的至少一种线性组合,以及输入矩形内部纹理元的纹理空间网格坐标的实数幂(realpower)的至少一个乘积。
由根据本发明的图形管道中的映射器所采用的映射函数不仅包括常数或仅线性依赖于某一输入坐标的项,还必须包括非线性或双线性的项。非线性或双线性项的引入使之能够将与轴对准的输入矩形以及其中的纹理元变形为屏幕空间5中具有逼真地变形的纹理元的任意形状输出四边形。通过透视映射,纹理空间4中的与轴对准的矩形仅能被变形为从另一个角度观看该矩形时被观察到的四边形。仅仅使用矩形来对所有3D物体建立模型是不可能的。根据本发明的图形管道使之能够将纹理空间4中的与轴对准的矩形变形为屏幕空间5中从任意选择的视角观察的任意形状的四边形,而并不需要复杂且昂贵的光栅化器。
为了引入额外的项,方程式1中的映射就必须进行扩展。采用矩阵形式,被扩展的映射可例如是xchychwch=ABCDEFGHIJKLugvgugnvgm1---(3)]]>其中n,m∈R。当计算屏幕空间坐标的函数包括纹理空间网格坐标实数幂的至少一个乘积时,系数C,G和K中至少有一个系数不等于0。此外,n和m不能同时等于0,并且当n或m等于0时,另一个不能同时等于一。
要注意到,大多数现代电视机都包含视频缩放器(video scaler),用于从不同视频格式转换视频图像以及将视频图像转换为不同的视频格式,例如4∶3或16∶9。类似于根据本发明的图形管道的光栅化器,这种视频缩放器仅接受矩形输入(通常是整幅图像)并且将矩形输入映射到屏幕空间。这种视频缩放器可执行下面形式的映射X=Du|u|+Au+C(2)方程式(2)用于全景模式(当D≠0时)或者用于简单的水平放大或缩小(当D=0时)。这种已知的视频缩放器不适合用来渲染3D图形,因为它们无法将输入矩形映射为任意形状的四边形。
在本发明的一个优选实施方案中,从自然空间到纹理空间的映射是一个以下形式的双线性映射(n=m=1)X(u,v)=a0+a1u+a2v+a3uv (4)一些物体,例如球体,无法仅使用矩形来建立模型,但这样的物体可以用任意形状的四边形或梯形来建立模型。使用双线性映射,纹理空间中的平面矩形以及对应的纹理可以被变形为屏幕空间中任意形状的四边形。因此,双线性映射可以用来对球形3D物体逼真地建立模型。
使用双线性映射的另一个优点是纹理空间中的矩形和对应的纹理可以被变形为屏幕空间中的非平面四边形,从而得到非平面3D物体的高度逼真的模型。
附图简述在附图中图1显示了在现有技术的3D图形管道中从纹理空间到屏幕空间的透视映射,图2显示了按照本发明的图形管道实施方案的一个框图,图3显示了可能有益地采用按照本发明的图形管道的图形系统实施方案的一个框图,图4A-4C示意性地显示了光栅化纹理空间中的一个输入矩形以及将其纹理映射到屏幕空间,图5A和5B显示了按照本发明的3D图形管道从纹理空间到屏幕空间的一个映射,以及图6A和6B显示了由按照本发明的图形管道获得的、一球体的2D表示。
优选实施方案详述图2显示了按照本发明的图形管道20的一种实施方案的框图。管道20包括接收纹理数据22和顶点数据23的一个输入21。顶点数据23包括输入矩形的纹理空间输入坐标(ur,vr)24和输出四边形的屏幕空间输入坐标(xhr,yhr,whr)25。这些坐标以及其它坐标将会在此之后参考图4来进一步被详细说明。纹理数据22存储在纹理存储器26中。光栅化器27接收输入矩形的纹理空间输入坐标(ur,vr)24,并提供输入矩形内部纹理元的纹理空间网格坐标(ug,vg)。光栅化器27的操作将会在此之后参考图4来进一步被详细说明。映射器28将输入矩形内部的纹理元映射到输出四边形上。映射通过由纹理空间网格坐标(ug,vg)计算出屏幕空间输出坐标(xc,yc)29来执行。映射器的操作将会在此之后参考图5来进一步被详细说明。
图形管道中的所有元件有可能以硬件实现,例如,作为PC的视频图形卡中单独的元件,或作为图形处理器单元(GPU)的一部分。图形管道也有可能以视频图形卡的驱动软件来实现。作为选择,图形管道也可能以计算机显示器、电视机、移动电话、个人数字助理(PDA)以及其它包含显示器的消费电子产品的硬件或软件元素来实现。
图3显示了可能有益地采用按照本发明的图形管道20的图形系统示例的框图。该系统包括图形管道20、屏幕空间重采样器31、帧缓冲器32和显示屏幕33。重采样器31将每个纹理元的颜色泼溅到屏幕空间输出坐标(xc,yc)29周围的像素位置上,该屏幕空间输出坐标(xc,yc)29由相应纹理元的纹理空间网格坐标(ug,vg)计算得到。由映射器计算得到的屏幕空间输出坐标(xc,yc)29不必与屏幕空间中的像素位置相一致。对于每个纹理元,屏幕空间重采样器31根据屏幕空间输出坐标(xc,yc)和相应的颜色来计算出对屏幕空间5中像素位置颜色值的贡献。整个图像的颜色值被存储在帧缓冲器32中。当一幅图像中的所有像素的颜色值都被写入帧缓冲器32时,图像可能被发送至例如显示屏幕33或投影机(beamer)来进行显示。
图4A-C示意性地显示了光栅化纹理空间4中的一个输入矩形41以及将其纹理映射到屏幕空间5。图4A显示了图形管道20的输入21所接收到的、纹理空间4中的与轴对准的输入矩形41。与轴对准的矩形可以仅用两个坐标对((ur1,vr1),(ur1,vr2))42来定义。图4B示范了光栅化该与轴对准的矩形41。矩形41被置于一个网格之上。每个网格位置43可能包括一个纹理元素(纹理元),该纹理元素是纹理数据22的一部分,被存储在纹理存储器26中。每个纹理元都与纹理空间网格坐标(ug,vg)以及一个纹理颜色相关联。网格位置43的一部分在矩形41的外部。其它网格位置在矩形41的内部,并包括要被映射的纹理元44。光栅化器确定哪些纹理元44位于矩形41的内部。
经过光栅化后,矩形41被映射器28映射到屏幕空间5的一个输出四边形。图4C显示屏幕空间5的一个经过映射的四边形45。映射器28首先使用输入矩形41的纹理空间输入坐标(ur,vr)42与输出四边形45的屏幕空间输入坐标(xhr,yhr,whr)47来计算映射系数A-L(参见方程式(3))。当映射系数已知后,输入矩形41内所有纹理元44都被映射到输出四边形45。被映射纹理元46的屏幕空间输出坐标(xc,yc)采用类似方程式(3)中的映射函数而计算得到。首先计算齐次坐标xhc,该齐次坐标xhc仍必须被第三坐标(Wch)去除才能得到实际的屏幕空间输出坐标xc。然后,yc由计算得到的输出坐标xc和输入坐标vg计算得到。在本发明的一个优选实施方案中,从纹理空间到屏幕空间的映射是一个双线性映射(n=m=1)。如果映射是双线性映射,则xc和yc采用如下方程式计算xc=xhcwhc=Aug+Bvg+Cugvg+DIug+Jvg+Kugvg+L---(5)]]>yc=p0(vg)+p1(vg)xcp2(vg)---(6)]]>其中p0(vg)=(AH-DE)+(AF-BE+CH-DG)vg+(CF-BG)vg2p1(vg)=(EL-HI)+(EJ-FI-+GL-HK)vg+(GJ-FK)vg2(7)p2(vg)=(AL-DI)+(AJ-BI+CL-DK)vg+(CJ-BK)vg2经过映射的纹理元46的颜色值被从纹理存储器26中取回。
图5A和5B显示了在按照本发明的3D图形管道中从纹理空间到屏幕空间的一个映射。图5A显示了纹理空间4中的一个物体。该物体的纹理由三个与轴对准的矩形51、52、53组成。映射器将矩形51、52、53映射为屏幕空间5中任意形状的四边形54、55、56(图5B)。图5B所示的3D物体是一个扭曲的立方体。四边形54、55、56是3D世界中非矩形四边形的一种2D表示,正如从某一视点观察到的。每个四边形被从一个不同的视角观察,因为每个四边形都具有相对该视点的不同取向。
图6A和6B显示了由按照本发明的图形管道获得的3D球体的一种2D表示。图6A显示了屏幕空间中的2D表示61。屏幕空间中的输出四边形由映射纹理空间中的与轴对准的输入矩形而产生。在图6B中,输出四边形有一个白色的边界,以便使之能够区分各个四边形。
值得指出的是,上述实施方案是为了举例说明而不是限制本发明,本领域技术人员在不脱离所附权利要求范围的情况下将能够设计出多种替代实施方案。在权利要求中,任何置于圆括号间的参考符号都不应解释为限制权利要求。动词“包括”及其变化形式的使用并不排除权利要求中记载之外的元件和步骤的存在。一种元素的前置冠词“一”或“一个”并不排除多个这种元件的存在。本发明可能借助包含几个不同元件的硬件以及借助一个合适编程的计算机来实现。在枚举了几个装置的设备权利要求中,其中的几个装置可以采用同一个硬件项来具体化。仅仅是某些措施在一些互不相同的从属权利要求中记载的事实并不表示不能使用这些措施的组合来获益。
权利要求
1.一种用于渲染图形的图形管道(20),该管道包括用于接收纹理数据(22)和顶点数据(23)的输入(21),该纹理数据(22)定义了纹理空间(4)上的纹理映射(51,52,53),每个纹理映射(51,52,53)包括与纹理空间网格坐标(ug,vg)相关联的纹理元(44),该顶点数据(23)包括输入矩形(41)的纹理空间输入坐标(ur,vr)(24,42)和输出四边形(45)的屏幕空间输入坐标(xhr,yhr,whr)(25,47),该输入矩形(41)在纹理空间(4)中是与轴对准的,每个输入矩形(41)都与某一对应的输出四边形(45)相关联,光栅化器(27),用于接收输入矩形(41)的纹理空间输入坐标(ur,vr)(24,42),并用于提供该输入矩形内部的纹理元(44)的纹理空间网格坐标(ug,vg),以及映射器(28),用于将该输入矩形(41)内部的纹理元(44)映射到该输出四边形(45)上,该映射通过以下方式来执行,即使用一个映射函数,由纹理元(44)的纹理空间网格坐标(ug,vg)和输出四边形(45)的屏幕空间输入坐标(xhr,yhr,whr)(25,47)计算出屏幕空间输出坐标(xc,yc)(46),该映射函数包括-输入矩形(41)内部纹理元(44)的纹理空间网格坐标(ug,vg)的至少一个线性组合,-输入矩形(41)内部纹理元(44)的纹理空间网格坐标(ug,vg)的实数幂(ugnvgmn,m∈R)的至少一个乘积。
2.权利要求1要求的图形管道(20),其中实数幂是自然数幂(ugnvgmn,m∈N)。
3.权利要求2要求的图形管道(20),其中该自然数幂等于一(ugvg)。
4.权利要求1要求的图形管道(20),进一步包括屏幕空间重采样器(31),用于将每个纹理元(44)的颜色泼溅到屏幕空间输出坐标(xc,yc)(46)周围的像素位置上,该屏幕空间输出坐标(xc,yc)(46)由相应纹理元(44)的纹理空间网格坐标(ug,vg)计算得到。
5.一种用于渲染要在显示器(33)上显示的图形的方法,该方法包括接收纹理数据(22)和顶点数据(23),该纹理数据(22)定义了纹理空间(4)上的纹理映射(51,52,53),每个纹理映射(51,52,53)包括与纹理空间网格坐标(ug,vg)相关联的纹理元(24,44),该顶点数据(23)包括输入矩形(41)的纹理空间输入坐标(ur,vr)(42)和输出四边形(45)的屏幕空间输入坐标(xhr,yhr,whr)(25,47),该输入矩形(41)在纹理空间(4)中是与轴对准的,每个输入矩形(41)都与某一对应的输出四边形(45)相关联,从输入矩形(41)的纹理空间输入坐标(ur,vr)(24,42)提供输入矩形(41)内部纹理元(44)的纹理空间网格坐标(ug,vg),以及将该输入矩形(41)内部的纹理元(44)映射到该输出四边形(45),该映射通过以下方式来执行,即使用一个映射函数,由纹理元(44)的纹理空间网格坐标(ug,vg)和输出四边形(45)的屏幕空间输入坐标(xhr,yhr,whr)(25,47)计算出屏幕空间输出坐标(xc,yc)(46),该映射函数包括-输入矩形(41)内部纹理元(44)的纹理空间网格坐标(ug,vg)的至少一个线性组合,以及-输入矩形(41)内部纹理元(44)的纹理空间网格坐标(ug,vg)的实数幂(ugnvgmn,m∈R)的至少一个乘积。
6.一种包括如权利要求1要求的图形管道的计算机。
7.一种用于显示图形的设备,该设备包括如权利要求1要求的图形管道,以及用于显示由该管道渲染的图形的显示器(33)。
全文摘要
一种用于渲染图形的图形管道(20)接收纹理数据(22)和顶点数据(23)。该纹理数据(22)定义了纹理空间上与轴对准的矩形的纹理映射(24)。顶点数据(23)描述了屏幕空间上的输出四边形(25)。光栅化器(27)通过确定哪些纹理元在输入矩形(24)内部来光栅化该输入矩形(24)。映射器(28)将输入矩形(24)内部的纹理元映射到输出四边形(25)。该映射通过由纹理元的纹理空间网格坐标计算出屏幕空间输出坐标来执行。为了计算,采用的方程包括输入矩形(24)内部纹理元的纹理空间网格坐标的至少一种线性组合,以及输入矩形(24)内部纹理元的纹理空间网格坐标的实数幂的至少一个乘积。
文档编号G06T15/04GK1981306SQ200580022419
公开日2007年6月13日 申请日期2005年4月29日 优先权日2004年5月3日
发明者B·G·B·巴伦布鲁格 申请人:皇家飞利浦电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1