适用于非均质纹理的单层缩小过滤理论的制作方法

文档序号:6382761阅读:389来源:国知局
专利名称:适用于非均质纹理的单层缩小过滤理论的制作方法
技术领域
本发明涉及一种适用于非均质纹理的单层缩小过滤理论(SINGLE LEVELMIP FILTERING ALGORITHM FOR ANISOTROPIC TEXTURING)。本发明是有关于一种纹理贴图(texture mapping),且特别是有关于一种设计来降低图型失真效应(aliasing effects)的非均质纹理映像方法。
背景技术
存取在绘图系统中的像素缓冲器(pixel buffers)的技术开启了处理图形影像新方法的大门。举例而言,存取在绘图系统中的像素缓冲器可不用在绘图系统的几何引擎(geometry engines)中执行这些效果,而允许直接对像素执行修改,藉以达到如对表面做纹理贴图(texturing a surface)的特定效果。在前进方向中,对表面做纹理贴图一般包含将在一个二度(2D)的纹理空间(texture space)中的一给定点(a given point),映像至在目标空间(object space)中的一个三度空间(3D)的表面。此步骤称为参数化(parameterization)。接下来,在一个称为投射转换(projectivetransformation)的步骤中,该对象会被投射(projected)至位于屏幕空间(screen space)中的一个二度空间显示屏幕,其中该显示屏幕的分辨率是受限于用来建立显示影像的像素缓冲器。纹理贴图也可用相反方向执行,该法称为反向贴图(inverse mapping)。在反向贴图中,对在屏幕空间中的每一像素而言,必须找到其在纹理空间中的该像素的一预影像(pre-image)。一般而言,一个方形像素(square pixel)会具有一个曲线四边形(curvilinearquadrilateral)的预影像。
当所执行的纹理贴图为失真(aliasing)时,就会产生一种问题。这是因为用来显示的像素缓冲器的有限分辨率与持有二度空间纹理的纹理数组(texture array)的有限容量所导致。用来显示的像素缓冲器的有限分辨率具有一固有空间取样频率(spatial sampling frequency),而且纹理贴图的有限分辨率具有一固有空间频率(spatial frequency)。如果纹理贴图的空间频率大于在用于显示的像素缓冲器中的固有空间取样频率,就会发生图型失真的现象。
会发生纹理贴图的空间频率大于在用于显示的像素缓冲器中的固有空间取样频率的情形需要满足数个条件。其中一条件为即将做纹理贴图的对象(object)是一遥远对象(distant object),或是以透视方法所看到的对象,因此相较于在屏幕空间中的该对象的一实际大小(full-size)的正视图(orthographic view)而言,可将该对象降低至较少数目的像素。另一条件为在显示空间(display space)中的该对象可经由一尺寸很小的窗口见到。在其中任一情形中,都会发生图型失真的现象。所以必须解决纹理扭曲(distorting texture)与推翻现实(upsetting the realism)的问题。因此,在这些情况或其它类似情况之下,必须尽量避免发生图型失真。
缩小贴图(mip-mapping)是一种用来避免发生纹理贴型失真的著名技术。该技术是提供一个纹理数组串行(series of texture arrays),在此系列中最高层的纹理数组具有最高分辨率,此系列中最低层的纹理数组具有最低分辨率,而中间层的纹理数组则具有中级分辨率。每一个较低阶(lower dimension)的纹理贴图都是下一个较高阶(higher dimension)的纹理数组的一个过滤版本,藉此使得纹理数组串行中的各层间可平顺转换。该技术的一主要问题在于决定应该选择该纹理数组串行中的哪一个纹理数组来做为提供纹理的来源。如果所选的层太高,则会发生图型失真的现象,而如果所选的层太低,则将无法清楚的显现纹理。其中,用来描述所选层的参数称为LOD(详细程度)。
过滤(filtering)较低详细程度的纹理数组的动作包括覆盖区(footprint)或支持区的观念。这是在其上使用平均或某些其它过滤函数(filtering function)以下一个较高详细程度为计算标准所计算的一区。覆盖区的其中一种常见形式为一个圆(circle),这意味着其为在一个2阶的纹理数组的每一阶中都使用相同过滤函数的一区。另一种常见的覆盖区的形式为一个椭圆(ellipse),因为主轴(major axis)与次轴(minoraxis)不同,所以这意味着其具有非均质性(anisotropy)。
如在美国专利第6,219,064号(Kamen等人)中所叙述,非均质性的数量可以下列比值公式量化,max||∂u∂s,∂v∂s||min||∂u∂s,∂v∂s||,]]>其中(u,v)为在2阶纹理空间中的坐标,(x,y)为在显示空间中的坐标,s=(cosα,sinα),而且∂u∂s=∂u∂xcosα+∂u∂ysinα.]]>做为一标准数学方法,在一像素上的纹理贴图的覆盖区可由Jacobian矩阵J=∂u∂x∂u∂y∂v∂x∂v∂y]]>求得。该覆盖区是为其中两轴分别为du/dx,dv/dx与du/dy,dv/dy方向的椭圆。而且覆盖区面积与形状是由该些轴的大小决定。
在均质过滤(isotropic filtering)中,会忽略轴间的差异,而且最大轴会被用来计算详细程度(LOD)。LOD是以d=log2(长轴大小)计算而得。当两轴的比值很大时,这种方法会产生品质很差的影像。
在非均质过滤(anisotropic filtering)中,会考虑轴间的差异。对长轴取样的绘点(texels)会比对短轴取样的绘点还多,而且LOD是以d=log2(短轴大小)计算而得。因此,藉由经过适当过滤,从多个绘点所得的纹理可忠实地表现像素颜色(pixel color)。如果沿着短轴,覆盖区刚好只覆盖一个在对应缩小贴图层(level)的绘点,则只有该缩小贴图层需要过滤。然而,如果在短轴方向的覆盖区覆盖多于一绘点,则沿着短轴就有较多样本(samples)需要适当过滤。目前技术可在目前缩小贴图层与下一个较低分辨率的缩小贴图层之间执行内插(interpolate),藉以得到像素的最终颜色。然而,这种方法需要存取复数个缩小贴图层,而且会损失相当性能。存取第二层的缩小贴图通常会花费额外的总线交易周期(bus transactioncycles),因此会减慢纹理过滤处理的速度。在一种可在一周期完成一层过滤的有效的快取(cache)设计中,用于第二层处理的额外内存周期,会降低一半的非均质过滤处理的性能。当非均质性的程度愈高时,这个问题也就愈加严重。因此,需要一种在高非均质性程度之下,不会降低性能,而且能产生高品质纹理影像的方法。

发明内容
本发明的目的在于,提供一种只使用一层的缩小贴图执行过滤,而不管在纹理上的像素的覆盖区的覆盖量为何。此则藉由从做为非均质性过滤目的的目前贴图层中得到下一个较低分辨率的缩小贴图层所完成。使用一个贴图层而不用两个贴图层的原因是可避免将下一个贴图层的纹理加载快取,因此可节省额外的内存周期。此外,因为目前贴图层的纹理具有本地位置参考(locality of reference)的优势,所以可以改善快取的命中率(hitrate)。
本发明的目的及解决其技术问题是采用以下技术方案来实现的。依据本发明提出的一种执行非均质缩小贴图(mip-mapping)的方法,其包括以下步骤将一目标像素所需的纹理,映像至在一较高分辨率纹理数组中的一或多绘点,在该较高分辨率纹理数组中的一支持区是由一般是为一椭圆的一长轴与一短轴所定义,而且其中一详细程度(LOD)是由该短轴计算而得;以及使用来自该较高分辨率纹理数组中的该些绘点,沿着一轴执行一过滤函数,藉以仿真使用来自该较高分辨率纹理数组与具有一较低分辨率的一第二绘点数组的该些绘点的一过滤效果。
本发明的目的及解决其技术问题还可采用以下技术措施进一步实现。
前述的执行非均质缩小贴图的方法,其中执行过滤函数的步骤包括使用来自该较高分辨率纹理数组的该些绘点,推导出该较低分辨率纹理数组的该些绘点;内插该较高分辨率纹理数组的该些绘点,以成形一第一混合绘点;内插该较低分辨率纹理数组的该些绘点,以成形一第二混合绘点;以及内插该第一混合绘点与该第二混合绘点,以产生一用于该目标像素的纹理。
前述的执行非均质缩小贴图的方法,其中使用来自该较高分辨率纹理数组的该些绘点,推导出该较低分辨率纹理数组的该些绘点的该步骤包括根据在该较高分辨率纹理数组中的该目标像素的该映像位置,过滤在该较高分辨率纹理数组中的复数个邻近绘点,以推导出在该较低分辨率纹理数组中的该些绘点。
前述的执行非均质缩小贴图的方法,其中是使用在该较高分辨率纹理数组中的四邻近绘点,来推导出在该较低分辨率纹理数组中的两邻近绘点。
前述的执行非均质缩小贴图的方法,其中在该较高分辨率纹理数组中的一对邻近绘点会被过滤,藉以提供一在该较低分辨率纹理数组中的单一绘点。
前述的执行非均质缩小贴图的方法,其中使用来自该较高分辨率纹理数组的该些绘点,推导出该较低分辨率纹理数组的该些绘点的该步骤包括根据在该较高分辨率纹理数组中的该目标像素的该映像位置,对在该较高分辨率纹理数组中的该些邻近绘点取平均值,以推导出在该较低分辨率纹理数组中的该些绘点。
前述的执行非均质缩小贴图的方法,其中内插该较高分辨率纹理数组的该些绘点,以成形一第一混合绘点的该步骤包括根据在该较高分辨率纹理数组中的该目标像素的该映像位置,双线性地(bilinearly)内插该些邻近绘点。
前述的执行非均质缩小贴图的方法,其中是根据在一选定绘点中的该目标像素的该位置,内插该目标像素所映像至之该选定绘点与一邻近绘点。
前述的执行非均质缩小贴图的方法,其中内插该较高分辨率纹理数组的该些绘点,以成形一第一混合绘点的该步骤包括成形一第一乘积Uf*TB与一第二乘积(1-Uf)TC之和,其中Uf代表在该较高分辨率纹理数组中的该目标像素的一坐标位置,且TB与TC是为在该较高分辨率纹理数组中的该些邻近绘点。
前述的执行非均质缩小贴图的方法,其中内插该较低分辨率纹理数组的该些绘点,以成形一第二混合绘点的该步骤包括根据在该较低分辨率纹理数组中的该目标像素的该映像位置,双线性地内插该些邻近绘点。
前述的执行非均质缩小贴图的方法,其中是根据在一选定绘点中的该目标像素的该位置,内插该目标像素所映像至之该选定绘点与一邻近绘点。
前述的执行非均质缩小贴图的方法,其中所述的其中内插该较低分辨率纹理数组的该些绘点,以成形一第二混合绘点的该步骤包括成形一第一乘积m*TAB与一第二乘积(1-m)TCD之和,其中m=1/2Uf+1/4,]]>是代表在该较低分辨率纹理数组中的该目标像素的一坐标位置,且TAB与TCD是为在该较低分辨率纹理数组中的该些邻近绘点。
前述的执行非均质缩小贴图的方法,其中内插该第一混合绘点与该第二混合绘点,以产生一用于该目标像素的纹理的该步骤包括根据用来指示在包含该高分辨率纹理数组与该较低分辨率纹理数组的该些绘点的间的该详细程度的一参数,双线性地内插该第一混合绘点与该第二混合绘点。
前述的执行非均质缩小贴图的方法,其中内插该第一混合绘点与该第二混合绘点,以产生一用于该目标像素的纹理的该步骤包括成形一第一乘积(Df)*该第一混合绘点与一第二乘积(1-Df)*该第二混合绘点之和,其中Df是为指示该详细程度的该参数,当Df为0时,该详细程度是对应至该较低分辨率纹理数组,而当Df为1时,该详细程度是对应至该较高分辨率纹理数组。
前述的执行非均质缩小贴图的方法,其中会在该较高分辨率纹理数组中的一第一方向,取样一第一个数的绘点,并且在该较高分辨率纹理数组中的一第二方向,取样一第二个数的绘点,藉以在该第一方向成形该些第一混合像素,与在该第二方向成形该些第一混合像素,以及在该第一方向成形该些第二混合像素,与在该第二方向成形该些第二混合像素,其中该第一个数是与该第二个数不同。
前述的执行非均质缩小贴图的方法,其中所述的目标像素颜色是根据下列公式所混合,目标像素颜色=∑WSi*ColorSi,其中i为从1到该些样本的个数,∑WSi=1代表i的值从1到该些样本的个数,WSi为一第i个样本的一加权函数,而且ColorSi为该第i个样本的该混合颜色。
前述的执行非均质缩小贴图的方法,其中所述的第i个样本的该混合颜色ColorSi是根据下列公式所混合,ColorSi=∑Wuv*Color(u,v),对该第i个样本而言,u为从0到3,且v为从0到3,其中Color(u,v)为在该相同缩小贴图层上对应于Wuv的一颜色,∑Wuv=1,u为从0到3,且v为从0到3,且Wuv为该颜色的一加权系数。
前述的执行非均质缩小贴图的方法,其中所述的该些加权系数是为如下所示的一加权系数数组的元素,
Wuv=0.25Df(1-Uf)(1-Vf)(1-0.75Df)(1-Uf)(1-Vf)(1-0.75Df)Uf(1-Vf)0.25DfUf(1-Vf)(1-0.75Df)(1-Uf)(1-Vf)(1-0.75Df)(1-Uf)(1-Vf)(1-0.75Df)Uf(1-Vf)(1-0.75Df)Uf(1-Vf)(1-0.75Dv)(1-Uf)Vf(1-0.75Df)(1-Uf)Vf(1-0.75Df)UfVf(1-0.75Df)UfVf0.25Df(1-Uf)Vf(1-0.75Df)(1-Uf)Vf(1-0.75Df)UfVf0.25DfUfVf]]>其中Uf,Vf分别为在方向u与v上的位置参数,且Df为该详细程度的一部分值。
本发明与现有技术相比具有明显的优点和有益效果。由以上技术方案可知,为了达到前述发明目的,本发明提供一种执行非均质缩小贴图的方法。该方法包括将一个纹理所需的目标像素,映像至在一个较高分辨率的纹理数组中的一或多个绘点,其中在较高分辨率的纹理数组中的支持区是由一个一般是为椭圆的长轴与短轴所定义,而且其详细程度(LOD)是从短轴计算而得。该方法更加包括使用来自较高分辨率的纹理数组中的绘点,沿着一轴执行过滤函数,藉以仿真使用来自较高分辨率的纹理数组与使用来自较低分辨率的一个第二纹理数组的绘点的过滤效果。在本发明的一实施例中,执行过滤函数的步骤更加包括使用来自较高分辨率的纹理数组中的绘点,推导出较低分辨率的纹理数组的绘点;内插来自较高分辨率的纹理数组中的绘点,以成形一个第一混合(blended)绘点;内插来自较低分辨率的纹理数组中的绘点,以成形一个第二混合绘点;以及内插第一混合绘点与第二混合绘点,以求得一个目标像素的纹理。
经由上述可知,本发明为一种执行非均质纹理缩小贴图的方法。该方法包括决定用于将被贴图影像的一组目标像素的支持区,并且将支持区映像至通常为椭圆的一纹理贴图区。决定对椭圆每一轴的取样个数,并且在该些样本上执行过滤函数,藉以求得最终颜色值。对四个绘点而言,该过滤函数为每个绘点颜色值的加权总和,其中加权值是根据部分的详细程度(LOD)与部分的U或V坐标所决定。
借由上述技术方案,本发明适用于非均质纹理的单层缩小过滤理论至少具有下列优点本发明的其中一优点为执行多贴图层过滤函数所需的快取纹理读取动作较少。
本发明的另一优点为可在处理像素时,执行多贴图层过滤函数,这是因为其中并无性能衰减之故。
综上所述,本发明提供一种只使用一层的缩小贴图执行过滤,而不管在纹理上的像素的覆盖区的覆盖量为何。此则藉由从做为非均质性过滤目的的目前贴图层中得到下一个较低分辨率的缩小贴图层所完成。使用一个贴图层而不用两个贴图层的原因是可避免将下一个贴图层的纹理加载快取,因此可节省额外的内存周期。此外,因为目前贴图层的纹理具有本地位置参考(locality of reference)的优势,所以可以改善快取的命中率(hitrate)。其具有上述诸多的优点及其实用价值,并在同类方法中未见有类似的设计公开发表或使用而确属创新,且在技术上有较大的进步,从而更加适于实用,而具有产业的广泛利用价值,诚为一新颖、进步、实用的新设计。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,并可依照说明书的内容予以实施,以下以本发明的较佳实施例并配合附图详细说明如后。


图1是绘示一个现有习知的纹理贴图。
图2是绘示一个根据本发明的纹理贴图。
图3A是绘示在习知技艺中读取一条快取线的单一样本范例(最佳状况)。
图3B是绘示在本发明中读取一条快取线的单一样本范例(最佳状况)。
图4A是绘示在习知技艺中读取一条快取线的单一样本范例(最差状况)。
图4B是绘示在本发明中读取一条快取线的单一样本范例(最差状况)。
图5A是绘示在习知技艺中读取一条快取线的双样本范例(最佳状况)。
图5B是绘示在本发明中读取一条快取线的双样本范例(最佳状况)。
图6A是绘示在习知技艺中读取一条快取线的双样本范例(最差状况)。
图6B是绘示在本发明中读取一条快取线的双样本范例(最差状况)。
图7A是绘示在习知技艺中读取一条快取线的八样本范例。
图7B是绘示在本发明中读取一条快取线的八样本范例。
图8是绘示一个用来说明本发明所有步骤的流程图。
图9A是绘示在根据本发明的一阶范例中所用的参数。
图9B是绘示在根据本发明的二阶范例中所用的参数。
图10是绘示用来实现本发明一实施例的一绘图系统的方块图。
图11是详细绘示纹理快取与纹理贴图引擎的较佳实施例的方块图。
800系统 802纹理内存804纹理快取 806纹理贴图引擎808像素处理模块 810基本要素内存812画框缓冲存储器814显示装置1202第一层产生器 1204内插器1206样本产生器 1208第二层产生器
具体实施例方式
以下结合附图及较佳实施例,对依据本发明提出的适用于非均质纹理的单层缩小过滤理论其具体方法、步骤、特征及其功效,详细说明如后。
图1是绘示在美国专利第6,304,268号(Iourcha)中所叙述,而且让与S3 Graphics有限公司的一种习知的纹理贴图。因此该专利会合并参考于本发明规格中。其中,阶层(level)n1具有两个样本(samples)A1与A2,而且阶层n2具有两个样本B1与B2。A1与B1会混合在一起,以产生C1,而且A2与B2也会混合在一起,以产生C2。接下来,C1与C2会以加权方式(weights)相加,以产生最终颜色。
图2是绘示一个根据本发明的纹理贴图。在图2中,会以加权方式将在一阶层中的所有八个样本相加,以产生最终颜色,而且并未用到两层缩小贴图。
图3A是绘示在习知技艺中读取一条快取线(cache line)的单一样本范例(最佳状况)。在图3A中,撷取两条快取线,以读取缩小贴图所需的两层缩小贴图。
图3B是绘示在本发明中读取一条快取线的单一样本的范例(最佳状况)。在图3B中,撷取一条快取线,以读取缩小贴图所需的单层缩小贴图。
图4A是绘示在习知技艺中读取一条快取线的单一样本范例(最差状况)。在图4A中,撷取三条快取线,以读取缩小贴图所需的两层缩小贴图。
图4B是绘示在本发明中读取一条快取线的单一样本的范例(最差状况)。在图4B中,撷取两条快取线,以读取缩小贴图所需的单层缩小贴图。
图5A是绘示在习知技艺中读取一条快取线的双样本的范例(最佳状况)。在图5A中,撷取两条快取线,对每一层读取一条快取线。
图5B是绘示在本发明中读取一条快取线的双样本范例(最佳状况)。在图5B中,撷取一条快取线,以读取缩小贴图所需的单层缩小贴图。
图6A是绘示在习知技艺中读取一条快取线的双样本的范例(最差状况)。撷取三条快取线,以读取缩小贴图所需的多层缩小贴图。
图6B是绘示在本发明中读取一条快取线的双样本范例(最差状况)。在图6B中,撷取两条快取线,以读取缩小贴图所需的单层缩小贴图。
图7A是绘示在习知技艺中读取一条快取线的八样本的范例。在图7A中,撷取五条快取线,以得到八个样本。
图7B是绘示在本发明中读取一条快取线的八样本范例。在图7B中,撷取三条快取线,以得到八个样本。
图8是绘示一个用来说明本发明所有步骤的流程图。如果使用两层缩小贴图,则会使用快取定位方案1(cache addressing scheme 1),并且使用一较高分辨率的缩小贴图层,来仿真两层的缩小贴图。如果并未使用两层缩小贴图,则会使用快取定位方案2。
在本发明中,在一阶(one dimension)中用来过滤4个绘点的公式为最终颜色=Wa*ColorA+Wb*ColorB+Wc*ColorC+Wd*ColorD,其中Wa,Wb,Wc及Wd为4个绘点的每一个颜色ColorA,ColorB,ColorC,及ColorD的过滤加权值(filter weights)。该些过滤加权值为Wa=1/8(1-Df)(1+2Uf),Wb=Uf*Df+Wa,Wc=(1-Uf)*Df+Wd,且Wd=1/8(1-Df)(3-2Uf),其中Uf为U纹理坐标的部分(faction),且Df为LOD的部分。对V坐标而言,Uf会由Vf取代。
图9A是绘示在根据本发明的一阶范例中所用的参数。阶层n+1为一个较高分辨率的绘点层,且阶层n为一个较低分辨率的绘点层。各层之间的距离为1。一个任意像素(arbitrary pixel)P会出现在阶层n+1与阶层n之间的某层上。像素P距离较低分辨率层的位置是由参数Df所控制,且像素P距离较高分辨率层的位置为1-Df。像素P映像至在阶层n+1上的位置Pn+1与在阶层n上的位置Pn。
参数Uf代表从绘点C(TC)中心到位置Pn+1的距离,且1-Uf代表从绘点B(TB)中心到位置Pn+1的距离,其中Uf为U纹理坐标的部分,而且假设绘点中心之间的距离为1。参数h代表从TB的边缘到位置Pn+1的距离。
参数m代表从绘点CD(TCD)中心到位置Pn的距离,且n=(1-m)=(1-(k+1/2))代表从绘点AB(TAB)中心到位置Pn的距离。参数k代表从TCD的边缘到位置Pn的距离。
根据上述设定与根据位置参数Uf,在点Pn+1上的颜色是为TB与TC颜色的线性内插值(linear interpolation)。
TPn+1=UfTB+(1-Uf)TC根据位置参数m,在点Pn上的颜色是为TAB与TCD颜色的线性内插值。
TPn=mTAB+(1-m)TCD根据在各层之间的位置参数q,在点P上的颜色TP是为TPn与TPn+1的线性内插值。
TP=(1-q)TPn+1+qTPn接下来,将TPn与TPn+1表示式代入TP,可得TP=(1-q)UfTB+(1-q)(1-Uf)TC+qmTAB+q(1-m)TCD因为在储存阶层n+1的快取中只有储存颜色TA,TB,TC及TD,所以可从该些颜色中导出阶层n的颜色,以公式表示如下
TAB=(TA+TB)/2TCD=(TC+TD)/2因此,TP=(1-q)UfTB+(1-q)(1-Uf)TC+qm(TA+TB)/2+q(1-m)(TC+TD)/2经过整理可得TP=TA(qm/2)+TB((1-q)Uf+qm/2)+TC(1-q)(1-Uf)+q(1-m)/2)+TD(q(1-m)/2)其中,加权值为Wa=1/8·(1-Df)(1+2Uf)Wb=DfUf+Wa,Wc=Df(1-Uf)+Wd,且Wd=1/8·(1-Df)(3-2Uf)其中使用等式k=h/2,m=(h+1)/2,h=Uf-1/2,且n=1-m。
值得注意的是,ΣiWi=DfUf+2Wa+Df(1-Uf)+2Wd=Df+2(Wa+Wd).]]>因此,ΣiWi=Df+14(1-Df)(4)=1]]>图9B是绘示在根据本发明的二阶(2-dimension)范例中所用的参数。V阶使用与U阶类似的几何结构。其中,Vf代表在较高分辨率绘点贴图中的绘点的位置。在二阶(two dimension)的范例中,V方向具有四个样本,所以U阶与V阶两者一起形成一个绘点2D数组Wuv。在4×4绘点中的每一个绘点都具有一个从Wuv数组中取得的对应加权系数(weighting factor)。该加权总和接下来会被当成非均质样本的最终颜色。实际上,可根据Df,Uf,及Vf与想要的过滤函数,将加权数组(weight array)列表。当假设其为方型过滤(box filtering)(与上述的一阶范例类似)时,可得下式Wuv=Duv*Uuv*Vuv,u=0,1,2,3,v=0,1,2,3Duv=0.25*Df,如果u=0或3,或v=0,或3,(1-0.75)*Df,否则Uuv=(1-Uf),如果u=0或u=1,Uuv=Uf,如果u=2或u=3,Vuv=1-Vf,如果v=0或v=1,且Vuv=Vf,如果v=2或v=3.
Wuv数组的详细公式如下
Wuv=0.25Df(1-Uf)(1-Vf)(1-0.75Df)(1-Uf)(1-Vf)(1-0.75Df)Uf(1-Vf)0.25DfUf(1-Vf)(1-0.75Df)(1-Uf)(1-Vf)(1-0.75Df)(1-Uf)(1-Vf)(1-0.75Df)Uf(1-Vf)(1-0.75Df)Uf(1-Vf)(1-0.75Dv)(1-Uf)Vf(1-0.75Df)(1-Uf)Vf(1-0.75Df)UfVf(1-0.75Df)UfVf0.25Df(1-Uf)Vf(1-0.75Df)(1-Uf)Vf(1-0.75Df)UfVf0.25DfUfVf]]>最终颜色=∑(Wuv*Color(u,v)),其中u与v各为从0到3之值,而且Color(u,v)为对应所读取的缩小贴图层上的Wuv的颜色(绘点)。此外,∑Wuv=1,其中u=0,1,2,3且v=0,1,2,3。
在多重非均质样本(multiple anisotropic samples)的范例中,每一个样本的加权值都是由非均质比值(anisotropic ratio)与该非均质范例所选择的过滤函数所决定。举例而言,如果该比值为3.5,则会选择4个样本。假设其为方型过滤函数,则每一个非均质样本的加权值为0.25。假设使用高斯(Gassian)过滤函数,则每一个样本的加权值是由函数exp(-((x-x0)(x-x0)/比值*比值)所决定,其中x0为N个样本的丛集中心点(cluster center),且x为样本位置。样本加权值必须正规化(normalize)为1。此外,样本的取样点是横跨在长轴上的非均质形状区域。
一般而言,用于非均质过滤的公式可以下列公式描述 其中,i为从1到样本个数的值,∑WSi=1代表i的值从1到样本个数,WSi为第i个样本的加权函数,而且ColorSi为第i个样本的混合颜色。所选择的样本个数愈多,影像的品质会愈佳,但性能也会衰减。因为只有高分辨率的缩小贴图层被取样,所以在品质与性能之间必须取得折衷(tradeoff)。
一般而言,在一阶范例中,在较低分辨率的缩小贴图层的一个单一绘点,是从在较高分辨率的缩小贴图层的两个邻近的绘点所导出,而且在较低分辨率的缩小贴图层的两个邻近的绘点,是从在较高分辨率的缩小贴图层的四个邻近的绘点所导出。根据本发明,因为在两个缩小贴图层之间具有一个LOD的像素,是藉由混合较低分辨率的缩小贴图层的两个邻近的绘点与在较高分辨率的缩小贴图层的两个邻近的绘点所得,以使得藉由混合在较高分辨率的缩小贴图层的四个邻近的绘点可得一像素。请参考第9图与上列公式,其中使用相同缩小贴图层的四个邻近的绘点。
在二阶范例中,在较低分辨率的缩小贴图层的一个单一绘点,是从在较高分辨率的缩小贴图层的一个2×2区块(block)中的四个邻近的绘点所导出,而且在较低分辨率的缩小贴图层中的一个2×2区块的四个邻近的绘点,是从在较高分辨率的缩小贴图层的一个4×4区块的16个邻近的绘点所导出。根据本发明,因为在两个缩小贴图层之间具有一个LOD的像素,是藉由混合较低分辨率的缩小贴图层中的一个2×2区块的四个邻近的绘点与在较高分辨率的缩小贴图层中的一个2×2区块的四个邻近的绘点所得,以使得藉由混合在较高分辨率的缩小贴图层的一个4×4区块的16个邻近的绘点可得一像素。藉由参考其中指示如何使用相同缩小贴图层的16个绘点的上述加权数组Wuv,可轻易了解以上方法。
图10是绘示用来实现本发明一实施例的一绘图系统的方块图。系统800包括一个纹理内存(texture memory)802、一个纹理快取(texturecache)804、一个纹理贴图引擎(texture mapping engine)806、一个像素处理模块(pixel processing module)808、一个基本要素内存(primitivesmemory)810、一个画框缓冲存储器(frame buffer memory)812、以及一个显示装置(display device)814。纹理贴图引擎、纹理快取、及像素处理模块通常会包含在一个绘图加速芯片中。纹理内存802是用来储存即将被映像至基本要素(primitives)的两阶纹理代表。本发明较偏好储存一层的纹理。纹理快取804是用来暂时储存纹理内存802的部分内容。较偏好将其中包含用来描述图型组件的尺寸与外形的基本要素,例如将显示的三角形或其它多边形,储存在基本要素内存810中。纹理贴图引擎806对储存在基本要素内存810中的基本要素,执行将储存在纹理内存802中的纹理贴于其上的贴图动作。纹理贴图引擎806的输出连接至像素处理模块808的输入。像素处理模块808执行深度缓冲(z-buffering)、纹理打光(texturelighting)、模糊雾化(fogging)、alpha-blending、及其它像素运算,并且将所产生的结果影像,写入画框缓冲存储器812。在画框缓冲器中的影像,接下来会被传送至如阴极射线管(CRT)或是液晶显示(LCD)面板的显示装置。
图11是详细绘示纹理快取与纹理贴图引擎的较佳实施例的方块图。纹理贴图引擎806包括一个第一层产生器(first level generator)1202、一个内插器(interpolator)1204一个样本产生器(sample producer)1206、以及一个第二层产生器(second level generator)1208。第一层产生器连接至纹理快取804,用来产生一个第一详细程度(LOD)n+1。第一层产生器1202的输出连接至内插器1204的一第一输入端,以提供一个混合过的较高分辨率绘点。样本产生器1206连接至纹理快取,用来接收所储存的绘点,并且产生下一层n的详细程度(LOD)。样本产生器1206的输出连接至第二层产生器1208的输入。第二层产生器1208使用较低分辨率的绘点产生混合过的分辨率绘点。内插器1204根据详细程度(LOD)参数,从混合过的较高分辨率绘点与混合过的较低分辨率绘点,产生最终纹理值。
以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明,任何熟悉本专业的技术人员,在不脱离本发明技术方案范围内,当可利用上述揭示的方法及技术内容作出些许的更动或修饰为等同变化的等效实施例,但是凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属于本发明技术方案的范围内。
权利要求
1.一种执行非均质缩小贴图(mip-mapping)的方法,其特征在于其包括以下步骤将一目标像素所需的纹理,映像至在一较高分辨率纹理数组中的一或多绘点,在该较高分辨率纹理数组中的一支持区是由一般是为一椭圆的一长轴与一短轴所定义,而且其中一详细程度(LOD)是由该短轴计算而得;以及使用来自该较高分辨率纹理数组中的该些绘点,沿着一轴执行一过滤函数,藉以仿真使用来自该较高分辨率纹理数组与具有一较低分辨率的一第二绘点数组的该些绘点的一过滤效果。
2.根据权利要求1所述的执行非均质缩小贴图的方法,其特征在于其中执行过滤函数的步骤包括使用来自该较高分辨率纹理数组的该些绘点,推导出该较低分辨率纹理数组的该些绘点;内插该较高分辨率纹理数组的该些绘点,以成形一第一混合绘点;内插该较低分辨率纹理数组的该些绘点,以成形一第二混合绘点;以及内插该第一混合绘点与该第二混合绘点,以产生一用于该目标像素的纹理。
3.根据权利要求2所述的执行非均质缩小贴图的方法,其特征在于其中使用来自该较高分辨率纹理数组的该些绘点,推导出该较低分辨率纹理数组的该些绘点的该步骤包括根据在该较高分辨率纹理数组中的该目标像素的该映像位置,过滤在该较高分辨率纹理数组中的复数个邻近绘点,以推导出在该较低分辨率纹理数组中的该些绘点。
4.根据权利要求3所述的执行非均质缩小贴图的方法,其特征在于其中是使用在该较高分辨率纹理数组中的四邻近绘点,来推导出在该较低分辨率纹理数组中的两邻近绘点。
5.根据权利要求4所述的执行非均质缩小贴图的方法,其特征在于其中在该较高分辨率纹理数组中的一对邻近绘点会被过滤,藉以提供一在该较低分辨率纹理数组中的单一绘点。
6.根据权利要求2所述的执行非均质缩小贴图的方法,其特征在于其中使用来自该较高分辨率纹理数组的该些绘点,推导出该较低分辨率纹理数组的该些绘点的该步骤包括根据在该较高分辨率纹理数组中的该目标像素的该映像位置,对在该较高分辨率纹理数组中的该些邻近绘点取平均值,以推导出在该较低分辨率纹理数组中的该些绘点。
7.根据权利要求2所述的执行非均质缩小贴图的方法,其特征在于其中内插该较高分辨率纹理数组的该些绘点,以成形一第一混合绘点的该步骤包括根据在该较高分辨率纹理数组中的该目标像素的该映像位置,双线性地(bilinearly)内插该些邻近绘点。
8.根据权利要求7所述的执行非均质缩小贴图的方法,其特征在于其中是根据在一选定绘点中的该目标像素的该位置,内插该目标像素所映像至之该选定绘点与一邻近绘点。
9.根据权利要求2所述的执行非均质缩小贴图的方法,其特征在于其中内插该较高分辨率纹理数组的该些绘点,以成形一第一混合绘点的该步骤包括成形一第一乘积Uf*TB与一第二乘积(1-Uf)TC之和,其中Uf代表在该较高分辨率纹理数组中的该目标像素的一坐标位置,且TB与TC是为在该较高分辨率纹理数组中的该些邻近绘点。
10.根据权利要求2所述的执行非均质缩小贴图的方法,其特征在于其中内插该较低分辨率纹理数组的该些绘点,以成形一第二混合绘点的该步骤包括根据在该较低分辨率纹理数组中的该目标像素的该映像位置,双线性地内插该些邻近绘点。
11.根据权利要求9所述的执行非均质缩小贴图的方法,其特征在于其中是根据在一选定绘点中的该目标像素的该位置,内插该目标像素所映像至之该选定绘点与一邻近绘点。
12.根据权利要求2所述的执行非均质缩小贴图的方法,其特征在于其中内插该较低分辨率纹理数组的该些绘点,以成形一第二混合绘点的该步骤包括成形一第一乘积m*TAB与一第二乘积(1-m)TCD之和,其中m=Uf+,是代表在该较低分辨率纹理数组中的该目标像素的一坐标位置,且TAB与TCD是为在该较低分辨率纹理数组中的该些邻近绘点。
13.根据权利要求2所述的执行非均质缩小贴图的方法,其特征在于其中内插该第一混合绘点与该第二混合绘点,以产生一用于该目标像素的纹理的该步骤包括根据用来指示在包含该高分辨率纹理数组与该较低分辨率纹理数组的该些绘点的间的该详细程度的一参数,双线性地内插该第一混合绘点与该第二混合绘点。
14.根据权利要求2所述的执行非均质缩小贴图的方法,其特征在于其中内插该第一混合绘点与该第二混合绘点,以产生一用于该目标像素的纹理的该步骤包括成形一第一乘积(Df)*该第一混合绘点与一第二乘积(1-Df)*该第二混合绘点之和,其中Df是为指示该详细程度的该参数,当Df为0时,该详细程度是对应至该较低分辨率纹理数组,而当Df为1时,该详细程度是对应至该较高分辨率纹理数组。
15.根据权利要求2所述的执行非均质缩小贴图的方法,其特征在于其中会在该较高分辨率纹理数组中的一第一方向,取样一第一个数的绘点,并且在该较高分辨率纹理数组中的一第二方向,取样一第二个数的绘点,藉以在该第一方向成形该些第一混合像素,与在该第二方向成形该些第一混合像素,以及在该第一方向成形该些第二混合像素,与在该第二方向成形该些第二混合像素,其中该第一个数是与该第二个数不同。
16.根据权利要求2所述的执行非均质缩小贴图的方法,其特征在于其中所述的目标像素颜色是根据下列公式所混合,目标像素颜色-∑WSi*ColorSi,其中i为从1到该些样本的个数,∑WSi=1代表i的值从1到该些样本的个数,WSi为一第i个样本的一加权函数,而且ColorSi为该第i个样本的该混合颜色。
17.根据权利要求16所述的执行非均质缩小贴图的方法,其特征在于其中所述的第i个样本的该混合颜色ColorSi是根据下列公式所混合,ColorSi=∑Wuv*Color(u,v),对该第i个样本而言,u为从0到3,且v为从0到3,其中Color(u,v)为在该相同缩小贴图层上对应于Wuv的一颜色,∑Wuv=1,u为从0到3,且v为从0到3,且Wuv为该颜色的一加权系数。
18.根据权利要求17所述的执行非均质缩小贴图的方法,其特征在于其中所述的该些加权系数是为如下所示的一加权系数数组的元素,Wuv=0.25Df(1-Uf)(1-Vf)(1-0.75Df)(1-Uf)(1-Vf)(1-0.75Df)Uf(1-Vf)0.25DfUf(1-Vf)(1-0.75Df)(1-Uf)(1-Vf)(1-0.75Df)(1-Uf)(1-Vf)(1-0.75Df)Uf(1-Vf)(1-0.75Df)Uf(1-Vf)(1-0.75Df)(1-Uf)Vf(1-0.75Df)(1-Uf)Vf(1-0.75Df)UfVf(1-0.75Df)UfVf0.25Df(1-Uf)Vf(1-0.75Df)(1-Uf)Vf(1-0.75Df)UfVf0.25DfUfVf]]>其中Uf,Vf分别为在方向u与v上的位置参数,且Df为该详细程度的一部分值。
全文摘要
本发明是关于一种适用于非均质纹理的单层缩小过滤理论。本发明为一种执行非均质纹理缩小贴图的方法。该方法包括决定用于将被贴图影像的一组目标像素的支持区,并且将支持区映像至通常为椭圆的一纹理贴图区。决定对椭圆每一轴的取样个数,并且在该些样本上执行过滤函数,藉以求得最终颜色值。对四个绘点而言,该过滤函数为每个绘点颜色值的加权总和,其中加权值是根据部分的详细程度(LOD)与部分的U或V坐标所决定。
文档编号G06T15/20GK1624723SQ20041000464
公开日2005年6月8日 申请日期2004年2月20日 优先权日2003年2月21日
发明者廖群峰, 洪洲 申请人:威盛电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1