用于在纹理映射中适应性重新取样的系统的制作方法

文档序号:6490558阅读:316来源:国知局
专利名称:用于在纹理映射中适应性重新取样的系统的制作方法
技术领域
本发明涉及用于将图元从纹理空间重新取样到屏幕空间的装置和用于将图元从纹理空间重新取样到屏幕空间的方法。
背景技术
绘制三维图形的一个重要元素是纹理映射。在计算机生成对象的表面映射纹理是能够大大改善所述对象外观真实性的技术。二维或者三维对象典型地利用图元(通常是三角形)而建模。纹理可以是诸如照片或者计算机生成图像之类的二维画片。例如,墙的二维图像(的一部分)可以被投射到计算机游戏中的墙的三维表示上。术语“纹理元素(texel)”(纹理元素)是指纹理的图片元素(像素)。
一般而言,存在几种已知的用于将纹理图映射到屏幕网格上的方法。大多数常规的计算机制图系统使用所谓的反向纹理映射方法。在这种方法中,在光栅化(rasterization)处理期间,屏幕的像素是被顺序地和逐个地处理的,确定纹理上屏幕像素的投影(产生像素的“轨迹”)并通常利用加权平均的形式计算最接近正确的像素颜色的平均值。一种备选方法是所谓的向前纹理映射方法。这种方法通过检查(traverse)由纹理图(纹理空间)定义的坐标系中的纹理元素的方式执行。图形系统的顶点着色器接收图元的顶点作为输入并使用顶点着色程序改变或者增加这些顶点的每一个的属性。当插入这些属性时光栅化器则检查纹理空间中的图元。光栅化器计算将被投影到三角形的每个纹理元素的纹理坐标(u,v)。对所访问的纹理的每个网格位置(u,v)而言,在由纹理空间重新取样器将纹理图重新取样到纹理元素网格之后,纹理元素着色器从所存储的纹理图中接收属性。纹理元素着色器根据这些属性计算图元表面的局部颜色。最后,所获取的纹理元素数据被屏幕空间重新取样器重新取样到屏幕像素位置。所述映射(包括重新取样)是二维的。最初的重新取样技术即是所谓的一次转换(one-pass)二维映射,其中在图元的一次转换中像素/纹理元素数据是被双向重新取样的。另外的一种技术即是所谓的二次转换向前映射方法,其中二维图像的映射被分解为两个一维映射。首先,所述图像被映射到一个方向上,典型地是扫描行方向,也就是水平方向,从而产生中间图像。中间图像被映射到另一个方向以产生最终图像。一维重新取样可以利用通常用于视频缩放的重新取样器来实现。

发明内容
本发明的目的是提供一种用于将纹理映射到图元的改善的装置和方法,其能够在品质和性能之间保持很好的平衡。
为了实现本发明的目的,一种用于将三维图像模型图元从纹理空间映射到屏幕空间的装置,所述装置包括用于存储纹理图的纹理存储器;以及可操作地用于将每个图元的数据从与图元对应的纹理图重新取样到对应的像素数据的重新取样器,其中所述像素数据用于定义与图元对应的显示图像的一部分;所述重新取样器可操作用于从至少包含两个不同的重新取样算法的一个独立组中选择用于执行重新取样的重新取样算法;所述选择取决于图元的大小。
传统上,在图形或者视频处理系统的设计期间,在向前或者反向映射之间进行选择。反向映射系统传统上使用一次转换二维重新取样。对向前映射而言,根据二次转换一维重新取样或者一次转换二维重新取样来选择一个固定的采样算法。在根据本发明的装置中,重新取样器可以在至少两个重新取样算法中作出选择,并且不作出固定的选择。相反,根据图元的大小动态地为每个图元在算法之间作出选择。这就使得对图元采用最优的重新取样算法,其中可以在重新取样的质量和诸如可用处理循环和存储容量之类的系统限制之间作出平衡选择。所述装置可以是根据反向映射或者向前映射技术的。重新取样可以由一个重新取样器或者多个重新取样器来执行。例如,向前纹理映射系统可以使用纹理空间重新取样器和屏幕空间重新取样器。所述其中一种重新取样器或者两种重新取样器都可以应用重新取样算法的动态选择。
根据从属权利要求2所述的手段,可用算法之间的选择是通过比较图元的大小与预定阈值的方式实现的。对于在两种算法间进行的选择,可以使用一个阈值,其中为小图元选择第一个算法,而为大图元选择第二个算法。对于多于两种算法的情况,需要几个阈值来进行核对。
根据从属权利要求3所述的手段,所述重新取样器与用于累加重新取样的数据的缓存器有关。所述缓存器具有预定缓存器大小。所述阈值取决于缓存器的预定大小。对于小的图元而言,可以使用需要更多缓冲区空间(图元的每个像素)的重新取样算法。可以根据该算法的有利特征来选择该算法,诸如高质量或者处理速度。对于大的图元而言,可以选择需要较少累加缓冲区空间(图元的每个像素)的重新取样算法。这可能导致某种代价,诸如处理循环的增加。处理循环的可能的增加可以利用在处理更大的图元中更有效的算法来抵消(例如,每个图元具有相对苛求的初始化的算法,但是有效处理像素)。
根据从属权利要求4所述的手段,图元的大小取决于在图元边界内的纹理元素或者像素的数目。纹理元素的数目可以确切的计算,也可以估算。
根据从属权利要求5所述的手段,为小图元选择一次转换二维重新取样算法,为大图元使用二次转换一维重新取样算法。所述一次转换二维重新取样算法提供了高质量的重新取样,每个图元耗费较低的初始化成本,但是需要相对大的累加缓存器(也就是二维缓存器)。这使得二维重新取样最适合于小的图元。另一方面,所述二次转换一维重新取样算法需要较小的缓冲区空间(也就是一维缓存器),但是每个图元耗费较高的初始化成本。这使得一维重新取样更适合于大的图元。优选地选择这样的阈值,使得具有大小小于阈值的图元的累加数据仅适合使用二维重新取样的缓存器。
为了实现本发明的目的,一种用于将三维图像模型的图元从纹理空间映射到屏幕空间的方法包括在纹理空间中对于每个图元将数据从与图元对应的纹理图重新取样到与图元有关的纹理元素的纹理数据;以及在屏幕空间中对于每个图元将纹理数据重新取样到用于定义与图元对应的显示图像的一部分的对应像素数据;以及从有至少两个不同的重新取样算法的一个单独组中,为纹理空间重新取样和/或屏幕空间重新取样选择重新取样算法;所述选择取决于图元的大小。
将参照在下文中描述的实施方式来描述本发明的这些和其他方面,并且通过在下文中描述的实施方式本发明的这些和其他方面将变得十分明显。
附图简述在所述附图中

图1显示了向前纹理映射系统的图形流水线;图2显示了四维分级细化映射(mipmap)结构;图3举例说明了重建过滤;图4举例说明了屏幕空间预过滤;图5显示了向前纹理映射系统的图形流水线;图6举例说明了一次转换和二次转换重新取样;图7显示了瓶颈问题;图8显示了剪切(shear)问题;图9显示了包括根据本发明的图形系统的计算机的方框图;以及图10显示了包括根据本发明的图形系统的计算机的方框图。
发明详述系统概述在向前纹理映射系统中或者反向纹理映射系统中可以使用重新取样算法的动态选择。所述系统可以包括一个或多个重新取样器。那些重新取样器的任一个都可以使用动态选择。参照图1将描述具有两个重新取样器的向前纹理映射系统。参照图2将描述具有一个重新取样器的反向纹理映射系统。
图1显示了其中可以利用本发明的向前纹理映射系统的图形流水线的最后级的示例性结构。在该描述中假定利用三角形作为图元来描述所设想的模型。所属技术领域的专业人员可以容易地将相同的技术应用到其他的图元,诸如其他的多边形或四边形或者诸如贝塞尔曲面之类的曲面。流水线的输入是由诸如计算机游戏以及图形流水线的前一级之类的图形程序通过其顶点所指定的图元。在屏幕空间中图元的坐标被设定为(x,y),在纹理元素空间中图元的坐标被设定为(u,v)。流水线包括顶点着色器110、纹理空间光栅化器120、具有纹理空间重新取样器132和纹理存储器134的纹理元素着色器130、屏幕空间重新取样器140和边缘抗锯齿和隐面移去单元(Edge Anti-Aliasing andHidden Surface Removal,EAA & HSR)150。输出像素被存储在帧缓冲器160中以用于显示,例如利用诸如RAM DAC之类的数模变换器来生成模拟输出。如果还如此要求,那么诸如DVI之类的数字接口可用于向显示器提供像素数据。所述显示器可以是包括CRT、LCD、等离子体显示器在内的任何类型。或者,所绘制的图片还可以被用作后续图元的纹理图。现在将详细描述图1所示的图形流水线的功能以举例说明采用了本发明的示例性的系统。应当理解的是本发明还可以被应用到诸如电视之类的视频处理装置中,其中例如广播视频信号与由图元建模的图形信息相结合。
图1的顶点着色器110接收三角形(图元)的顶点作为输入,并利用顶点着色程序改变或者增加这些顶点的每一个的属性。由顶点着色器提供的数据通常包括诸如散射和/或反射颜色、纹理坐标、(同类的)屏幕坐标之类的属性,并且有时还包括象表面法线这样的额外数据或者着色处理所需的其他数据。顶点着色器可以是传统的变换和加亮单元。由顶点着色器生成的属性被提供给光栅化器。
图1的光栅化器120在表面空间(所谓的向前纹理映射系统)操作。所述光栅化器例如通过选择纹理坐标(而不是屏幕坐标)作为光栅化处理的驱动变量而检查图元表面(而不是屏幕上的投影)的参数化。光栅化器检查整个“表面网格”的图元。与纹理图有关的网格提供了这样一种表面网格,并且优选地将与纹理图有关的网格用作表面网格(因为获取纹理网格上的纹理样品不需要重新取样)。当不存在纹理图时,或者当纹理例如是一维或者三维时,可以选择另一个网格。在纹理空间中利用u(‘水平’方向)和v(‘垂直’方向)作为坐标。应当理解的是说明书中的‘水平’和‘垂直’仅是相对的。例如,所述屏幕可以旋转,使得图形处理不受影响但是屏幕上的输出旋转了。因为纹理网格常常用作表面网格,因此注释“纹理网格”(和“纹理空间”和“纹理元素”)将要用于表示这种一般的网格(和相关的空间和取样)。当光栅化器检查网格的纹理元素位置时,将在每个顶点设定的全部属性内插到网格中(除纹理元素被投影其上的屏幕坐标以外,典型地是线性地,而纹理元素被投影的屏幕坐标是透视地插入的)。而后在每个纹理元素位置的属性都是可用的,其中纹理元素着色器130可以使用所述属性。当检查基本网格的u和v纹理坐标时,所述光栅化器还保持相应的屏幕坐标(x,y)(或者对反向映射系统而言反之亦然)。通过 和 的线性插值法保持所述对应,其中^表示齐次坐标。这种坐标在本领域是公知的,所以这里将不会进一步描述。屏幕坐标能因此利用透视除法x=x^w^]]>和y=y^w^]]>来计算。如下面将要详细解释的那样,利用根据二次通过一维重新取样的屏幕空间重新取样,屏幕y坐标仅用于分级细化映射判定目的。利用一次转换二维屏幕空间重新取样器,y坐标还可以用作到重新取样器的输入。对计算真实颜色而言,光栅化器可以内插散射颜色(RGBA)、反射颜色(RGB)和额外的纹理坐标对(考虑到多种纹理)。同时可以内插其他的属性(诸如表面法线)。优选地,纹理空间光栅化器检查与四维分级细化映射相关的网格的纹理图。下面将更详细地描述四维分级细化映射。
纹理元素着色器130为每个纹理元素计算局部表面颜色。纹理元素着色器操作表面网格中的网格位置上的属性,并且如果存在与图元有关的任何次级纹理,那么就使用具有纹理空间重新取样器132的反向映射以从中获取颜色。当需要纹理数据时,所述纹理空间重新取样器用于获取设定了纹理坐标的纹理样品。这些纹理坐标是由纹理元素着色器根据从光栅化器接收的内插坐标和来自先前的纹理获取(所谓的从属纹理)和/或计算的任何结果生成的。所述纹理过滤操作通常根据附近纹理元素的双线性插值法(bi-linear interpolation)或者三线性插值法(tri-linear interpolation)或者这种纹理检测的组合来近似各向异性的(透视地变换)过滤轨迹。
纹理图典型地是诸如照片或者计算机生成图像之类的二维图片。例如,墙的二维图像(的一部分)可以被投影到计算机游戏中墙的三维表示上。大多数三维对象仅覆盖屏幕的一小部分,常常导致纹理图的缩小(其具有足够的分辨率以便当靠近地从上面观看(view up close)时还能够提供合理的外观)。通常,在纹理映射期间,例如如果墙是可以远离的,那么二维图片将被显著缩小。原则上,纹理映射能因此通过显著缩小原始图像的方式来执行。为了减少读取较高分辨率的二维图片所需的带宽,优选地执行一预处理步骤,在所述预处理步骤中创建二维图片的几个缩小的版本。在纹理映射期间,仅仅与屏幕图像的分辨率最好地匹配的较小的部分缩小图片被读取并被映射到屏幕上。原始二维图片连同它的缩小版本一起被称为分级细化映射。在1986年11月的IEEE Computer Graphics and Applications期刊第56-67页中由Paul S.Heckbert撰写的“Survey of Texture Mapping”一文和U.S.6,236,405B1中均具体描述了纹理映射以及分级细化映射。在三维分级细化映射中,原始图像被表示为0级。在1级,每个条目(entry)保持例如2×2的纹理元素的平均值。这可以一直延续直到到达最高级为止,所述最高级仅具有保持有全部纹理的平均颜色的一个条目。因此,在正方形的分级细化映射中,n级具有n-1级的四分之一大小。已知了几种类型的分级细化映射,其中仅在存储缩小图像的方面有所不同。在所描述的三维分级细化映射中,利用相同的因数在双向进行缩小,而在四维分级细化映射中分别两个维度上独立缩小原始图像。四维分级细化映射由水平分级细化映射级mmlu和垂直分级细化映射级mmlv来表示。图2显示了给出16个分级细化映射级别(0,0)、(1,0)、…(3,3)的四维分级细化映射。灰色的(0,0)、(1,1)、(2,2)和(3,3)所表示的分级细化映射级别分别构成了原始三维分级细化映射级别0、1、2和3。与三维分级细化映射相比,四维分级细化映射配置需要大量存储器用于存储。因此,诸如游戏之类的计算机图形学程序常常使用三维分级细化映射结构。在一个优选实施方式中,纹理存储器134存储三维分级细化映射结构的纹理图。在这个实施方式中,如代理人案号为PHNL010924EPP的未预先公开欧洲专利申请所描述的那样,纹理空间重新取样器132优选地被设置用于从三维分级细化映射即时(on-the-fly)重建所需要的四维分级细化映射。则纹理取指令就等于(amount to)从存储在纹理存储器134中的三维分级细化映射数据中重建四维分级细化映射。优选地,纹理空间光栅化器检查与四维分级细化映射对应的网格上的纹理图。所述光栅化器为每个纹理元素(u,v)提供对应的四维分级细化映射级(mmlu,mmlv)到纹理元素着色器130。在图2所述的实例中,通过向下采样(downsample)三维分级细化映射级别0来重建四维分级细化映射(3,0)。所获取的纹理元素可以同内插的散射颜色和/或反射颜色相结合从而产生与屏幕坐标相关的表面的色彩样品,其中屏幕坐标表明该纹理样品(通常非整数)被映射到屏幕上的位置。纹理空间重新取样器例如经由标准双线性插值的方式从次级纹理图获取纹理样品。如果如此要求,那么这可以被扩展至三线性或者各向异性过滤法,并且还可以增加一维和三维纹理获取的支持(一旦已经进行了此添加,由光栅化器进行的纹理坐标内插就还需要被归纳以支持可能的第三坐标)。
屏幕空间重新取样器140将映射的纹理元素泼溅(splat)到整数的屏幕位置,从而提供屏幕上图元的图像。屏幕空间重新取样包括以下操作-重建纹理元素网格中颜色信息为连续信号,-将连续信号从纹理空间映射到屏幕空间,-在屏幕空间中预过滤所映射的连续信号,以及-在屏幕空间中采样预过滤信号。
应当理解的是首先可以执行从纹理空间到屏幕空间的映射,然后重建所映射的信号。图3利用方框作为重建过滤器的轨迹举例说明了所述映射和重建过滤。诸如高阶过滤器之类的其他的过滤器也可以被使用。所述附图显示了像素的网格。每一个像素被显示为像素的无限小的(dimensionless)位置周围的矩形。实心点举例说明了在变换(映射)之后无限小的输入纹理元素坐标的位置。原始纹理元素的轨迹被抓取并被投影在屏幕上。在图3中将变换后的纹理元素的轨迹的大小和位置显示为具有虚线的矩形。
如图4中所举例说明的那样,接下来,每个映射的纹理元素然后被泼溅(也就是散布)到屏幕空间的像素上,其中在所述屏幕空间中的预过滤轨迹与屏幕空间中的重建方框重叠(也就是在将纹理元素映射到屏幕空间之后)。纹理元素400的重建方框被显示为具有高亮度显示的矩形410。所述预过滤轨迹可以在几个像素上延伸。所述过滤可以仅水平地延伸,但是也可以垂直地延伸。在图4所述的实例中,使用在水平和垂直方向上都有三个像素范围的过滤器,以其包括的像素为中心并覆盖两个相邻的像素。在这种情况下,十二个输出像素都可以接收到影响。对那些输出像素的每一个而言,可以利用其各自预过滤器的形状来确定所述影响以衡量输入纹理元素的值。
来自屏幕空间重新取样器的像素片段(fragment)然后在图1的边缘防锯齿处理和隐面移去(EAA&HSR)单元150中组合,所述边缘防锯齿处理和隐面移去单元150可以使用片段缓存器160。像素片段被深度分类(depth sort)到该缓存器中以解决隐藏表面问题。在已经绘制了所有的图元之后,每个像素的全部看得见的片段被组合(因为已经通过预过滤器衡量了屏幕空间重新取样器发出的颜色,因此其基本上等于简单的总和)并被发送给帧缓冲器。由于结合边缘附近的由屏幕空间光栅化器所产生的部分影响而引起边缘防锯齿处理,从而产生最后的像素颜色,所述最后的像素颜色是来自不同图元的颜色的组合。
图5显示了反向纹理映射系统的图形流水线的最后级的示例性结构。图5的顶点着色器510执行与图1中的顶点着色器110相同的角色。在所谓的反向纹理映射系统中,图2的光栅化器520在屏幕空间中运行,也就是将像素从屏幕空间映射到纹理空间中的纹理而不是将纹理投影到屏幕的像素上。这种光栅化器通过从顶点属性选择屏幕坐标作为光栅化处理的驱动变量,从而利用扫描线算法检查位于屏幕上的图元的投影内的像素。光栅化器因此检查整个“屏幕网格”上的图元。在屏幕空间中利用x(用于‘水平’方向)和y(用于‘垂直’方向)作为坐标。至于其他,光栅化器520以类似于图1的光栅化器120的方式运行。同样地,图5的像素着色器530以类似于图1的纹理元素着色器130的方式运行;纹理存储器534以类似于纹理存储器134的方式运行;纹理空间重新取样器532以类似于纹理空间重新取样器132的方式运行;EAA&HSR单元550以类似于EAA&HSR单元150的方式运行,片段缓存器560以类似于片段缓存器160的方式运行。图1的屏幕空间重新取样器140和图5的纹理空间重新取样器532负责将从纹理存储器(134,534)获取的纹理数据映射到定义所述显示图像的相应像素数据。该映射功能被统称为纹理映射。尽管在向前纹理映射系统中该功能是分配在纹理空间重新取样器132和屏幕空间重新取样器140中的,但是如在图5的反向映射系统中所看到的那样,该功能因此与纹理空间重新取样相结合并被置于像素着色器530之前。
重新取样算法的动态选择根据本发明,对由纹理空间重新取样器132/532和/或屏幕空间重新取样器140所执行的重新取样而言,在至少两个不同的重新取样算法之间进行选择。所述算法可以是常规算法。所述重新取样器将输入网格中指定位置处的多个输入纹理元素/像素集映射(重新取样)到输出网格中位置处的对应多个输出纹理元素/像素集。典型地,相应的网格中的位置是不同的发生了变换。所述变换可以是简单的移动、旋转、放大/缩小,但是也可以是透视变换。所述输入和输出网格可以是相同的,但是也可以在位置和/或分辨率方面有所不同。所包括的像素/纹理元素的集合典型地是与用于模拟对象(的一部分)的对象或者图元对应的那些像素/纹理元素。因为纹理和屏幕通常是二维的,所以重新取样器原则上也是二维的。相同的原则同样适用于绘制三维图像的图形或者视频处理。对三维绘制而言,典型地也在二维图像上执行所述基本处理。如何利用二维技术创建三维图像是公知的,诸如将两个不同的二维图像投影在观看者的各只眼睛上。其余的将集中在二维处理上。图6A显示了一次转换二维重新取样的实例。在图6的实例中,由规律间隔的点所表示的输入网格640与输出网格630相同。所述水平和垂直间隔也是相同的。应当理解的是所述网格并非必需是相同的,而且所述水平和垂直分辨率也可以是不同的。图6显示了由纹理元素坐标u、v表示的纹理空间中的重新取样。相同的规则也同样适用于屏幕空间(典型地由x和y坐标表示)中的重新取样。在图6A的一次转换重新取样中,位于图元(或者全部对象)660内的纹理元素被从位于纹理图的区域640内的对应纹理元素重新取样。在u、v两个方向上均存在变换。在图元的纹理元素的一次转换过程中,在双方向上存在重新取样。图6B举例说明了同样的变换,但是现在使用二次转换重新取样。在每次转换过程中仅在一个方向上存在重新取样。在图6B的实例中,在在水平方向u上第一次转换重新取样所述输入,从而产生了中间图片,其中所述输入区域640被映射到区域650中。中间图像的网格是用620表示的。在所述第二次转换中,仅在剩余的方向上(在该实例中也就是垂直方向)将中间图像的区域650重新取样到输出图像中的最后的区域660。
在重新取样期间,对输出的每个像素/纹理元素累加值(例如衡量一个或多个输入像素/纹理元素的影响)。这些中间结果被缓存在累加缓存器中。对一次转换重新取样而言,输出图元660的全部像素/纹理元素都需要累加缓存器(实际上是‘二维’缓存器)。对二次转换重新取样而言,因为有可能以每行(用于图6B的第一次转换的水平线和第二次转换的垂直线)的方式执行重新取样,所以一维的缓存器就足够了。在已经完全地重新取样一行之后,在缓存器中所累加的结果被移到完整图像输出缓存器中(例如在帧缓冲器中),并且所述累加缓存器能被用于下一行的重新取样。原则上,一维重新取样器仅需要少数寄存器来作为累加缓存器(寄存器的数目是由过滤器的分接(taps)的数目,也就是宽度,来确定的)。然而,对两次转换而言需要存储中间图像。通过交织水平和垂直的转换,就可以取决于过滤器宽度将存储器需求降低为满足几行存储器的程度。因此,用于二次转换重新取样的累加缓存器显著地小于用于同一尺寸图元的一次转换重新取样的累加缓存器。另一方面,一次转换重新取样的设置较慢。对一次转换重新取样而言,为整个图元仅初始化重新取样器一次。对二次转换重新取样而言,设置操作需要两个重新取样步骤。此外,在没有预防措施的情况下,二次转换重新取样容易受到所谓的瓶颈和剪切问题的影响。在图7中举例说明了所述瓶颈问题,其中相对于输入图像710和输出图像730,中间图像720的区域变得非常小。它发生接近于90度的旋转,并在第二次转换的方向上导致过量的模糊(因为第二次转换要再次放大损坏的(collapsed)中间图像)。在图8中举例说明了所述剪切问题,其中显示了纹理图和中间图像的两行(利用为像素重建的方框)。纹理图具有黑色的垂直线,透视图的剪切是这样的,使得第二行上的黑色像素比第一行上的黑色像素多向右移动了五个像素。水平过滤转换阻止了水平锯齿,但是不能阻止垂直锯齿。剪切在一行上的黑色像素和下一行的白色像素之间产生相当急剧的变化。同样,中间图像中的行由分离的部分组成,其是由行没有影响的(例如对x=3的情况)列所分隔的。剪切问题的解决方案是在更精细的分辨率下光栅化,从而使得生成额外的中间行,以中间位置的黑色像素填充空位。由在四个重新取样选项之间作出抉择的方式可以避免所述瓶颈问题,通过决定下面内容进行所述四个重新取样选项选择1)立刻生成输出图像,或者生成转置形式并转置所生成的图像,以及2)首先执行水平转换,或者首先执行垂直转换。
导致选择的标准优选地被作为设置的一部分进行检查,从而增加了二次转换重新取样器的设置时间。适当的选择将减少瓶颈问题和剪切问题这两个问题。
应当理解的是图元重新取样的设置通常需要整个重新取样(也就是设置加实际的重新取样)所需的处理循环数目中相当多的一部分。随着图元减少,相对的设置开销增加。
根据本发明,重新取样器从包括至少两个不同的重新取样算法的组中选择用于执行重新取样的重新取样算法。其根据图元的大小选择所述重新取样算法。可以以任何适当的方式给定、计算或者估计所述大小。特别地,图元的大小取决于图元边界内的纹理元素的数目,例如位于三角形内的纹理元素的数目[或者输出像素的数目]。如何计算图元边界内的纹理元素的数目是公知的。本领域的技术人员可以选择是忽略还是考虑下述这种纹理元素,所述纹理元素并未完全落入纹理元素的指定过滤轨迹的边界内但是与该边界相重叠。如果如此要求,可以估计所述大小(例如根据宽度和高度的最大值)。
优选地,重新取样器可以通过对图元大小和预定阈值进行比较的方式选择算法。例如,如果所述大小低于所述阈值,那么选择一次转换重新取样。如果大小高于所述阈值,那么选择二次转换重新取样。如果在多于两个重新取样算法之间存在选择,那么可以使用多个阈值。例如,不同的一次转换重新取样算法可以用于不同大小的图元,其中算法在减少瓶颈和/或剪切问题的方式方面有所不同。
如上所指出的那样,所述装置包括与用于累加重新取样数据的重新取样器有关的缓存器。所述缓存器具有预定的缓冲器大小。然后优选地选择所述阈值,以便对为具有低于阈值的大小的图元所选择的算法而言,该图元的累加的数据完全适合于缓存器,对于较大图元则超出该缓存器。优选地,为具有低于阈值大小的图元选择一次转换二维重新取样算法,并且为具有高于阈值大小的图元选择二次转换一维重新取样算法。
图9显示了根据本发明的计算机900方框图,所述计算机900包括中央处理单元910、存储器920、显示器930和根据本发明的计算机图形系统940。所述计算机可以是诸如个人计算机、游戏控制台或者工作站之类的常规计算机。可以利用图形处理器实现所述计算机图形系统。这种图形处理器可以是在用于促使所述图形处理器执行根据本发明的方法的程序的控制之下运行的。所述程序可以是固定嵌入的(例如在ROM中),但是也可以是从后台存储器加载的。就后一种情况来说,所述程序可以被配置在任何适合的诸如CD-ROM之类的记录载体或者诸如因特网之类的有线或无线的通信装置中。计算机图形系统940执行参照图1所描述的一个或多个功能。特别是,计算机图形系统940可以包括或者附加有如上所述的累加缓存器944。每个重新取样器可以与各自的累加缓存器有关。优选地,所述累加缓存器可以被集成到同用于执行图形处理系统的主图形处理器一样的IC中。所述累加缓存器优选地是高速缓冲存储器的一部分。计算机图形系统940还可以包括帧缓冲器或者同帧缓冲器相连接,所述帧缓冲器包括将要在显示器930上显示的全部图像。
图10显示了根据本发明的诸如电视之类的视频处理系统1000的方框图,所述视频处理系统1000包括中央处理单元1010、存储器1020、显示器1030和根据本发明的视频子系统1040。所述视频子系统1040可以利用图形或者视频处理器实现。这种处理器可以在用于促使处理器执行根据本发明的方法的程序的控制之下运行。所述程序可以是固定嵌入的(例如在ROM中),但是还可以是从后台存储器加载的。就后一种情况来说,所述程序可以被配置在任何适合的诸如CD-ROM之类的记录载体或者诸如因特网之类的有线或无线的通信装置中。所述视频子系统1040执行参照图1所描述的一个或多个功能。在如图9所述的方式中,视频子系统1040可以包括或者附加有累加缓存器1044,或者附加有包括在显示器1030上显示的全部图像的帧缓冲器。典型地,所述视频子系统1040还经由视频输入1046接收视频信息流。所述信息流可以通过内部调谐器接收,或者可以以任何其他适当的方式提供,例如经由视频连接或者数字网从VCR、DVD播放器、机顶盒等等提供。所述视频子系统1040可以将视频流与图形信息相结合,所述图形信息通常是在主处理器1010的控制之下提供的。
应当注意的是,以上实施方式仅是举例说明而不是限制本发明的,并且本领域的技术人员将能够在不脱离所附权利要求的范围的情况下设计许多替换的实施方式。在权利要求中,任何置于括号内的附图标记不应该被看作是限制权利要求的。动词“包括”和它的动词的词形变化的使用不排除在权利要求中所表述的元素或者步骤以外的元素或者步骤的存在。元素前的冠词“一”或者“一个”不排除多个这种元素的存在。本发明可以通过包括几个不同元件的硬件实现,也可以通过适当编程的计算机实现。在枚举了几个装置的产品权利要求中,这些装置中的几个可以是由一个和同样项目的硬件实现的。在相互不同的从属权利要求中列举某些手段的事实并不表明不能利用这些手段的组合。
权利要求
1.一种用于将三维图形模型的图元从纹理空间映射到屏幕空间的装置;所述装置包括用于存储纹理图的纹理存储器(134);以及可用于对每个图元将数据从与该图元对应的纹理图重新取样到对应的像素数据的重新取样器(132,140),其中所述像素数据用于定义与该图元对应的显示图像的一部分;所述重新取样器可用于从至少两个不同重新取样算法的一个单独组中选择用于执行该重新取样的重新取样算法;所述选择取决于该图元的大小。
2.根据权利要求1所述的装置,其中所述重新取样器可用于通过将该图元的大小与预定阈值相比较来执行该选择。
3.根据权利要求2所述的装置,其中所述装置包括与该重新取样器相关的缓存器,用于收集重新取样的数据;所述缓存器具有预定缓冲器大小;所述阈值取决于该预定缓冲器大小。
4.根据权利要求1所述的方法,其中该图元的大小取决于在该图元的边界内的纹理元素或者像素的数目。
5.根据权利要求2或3所述的装置,其中该重新取样算法的第一个是一次转换二维重新取样算法,该重新取样算法的第二个是二次转换一维重新取样算法;该第一个算法被选择为用于具有小于该阈值的大小的图元,该第二个算法被选择为用于具有大于该阈值的大小的图元。
6.一种用于将三维图形模型的图元从纹理空间映射到屏幕空间的方法;所述方法包括在纹理空间中对每个图元将数据从与该图元对应的纹理图重新取样到与该图元相关的纹理元素的纹理数据;以及在屏幕空间中对每个图元将该纹理数据重新取样到用于定义与该图元对应的显示图像的一部分的对应像素数据;以及从至少两个不同重新取样算法的一个单独组中为该纹理空间重新取样和/或该屏幕空间重新取样选择重新取样算法;所述选择取决于该图元的大小。
7.一种计算机程序,所述计算机程序可使处理器执行如权利要求6所述的方法。
全文摘要
一种用于将三维图形模型的图元从纹理空间映射到屏幕空间的装置。所述装置包括用于存储纹理图的纹理存储器(134)。重新取样器(132,140)对于每个图元将数据从与图元对应的纹理图重新取样到对应的像素数据,其中所述像素数据用于定义与图元对应的显示图像的一部分。所述纹理空间重新取样器(132)和/或屏幕空间重新取样器(140)可用于从至少两个不同的重新取样算法的一个单独组中选择用于执行重新取样的重新取样算法。所述选择取决于图元的大小。
文档编号G06T15/04GK1830007SQ200480021830
公开日2006年9月6日 申请日期2004年7月21日 优先权日2003年7月30日
发明者巴尔特·G·B·巴伦布吕格, 科内利斯·梅德斯 申请人:皇家飞利浦电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1