一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

图形纹理映射的制作方法

2022-07-22 22:39:57 来源:中国专利 TAG:


1.本发明涉及用于在图形处理系统中执行纹理映射的方法和设备。


背景技术:

2.在图形处理系统中通过将所谓的纹理或纹理数据应用于待绘制的表面来生成用于在渲染输出(例如待显示的图像)中采样位置的颜色(和其它数据)的图形处理系统中。
3.计算机图形纹理通常将被配置为纹理数据元素(纹素)的阵列,每个纹理数据元素具有存储于其的对应质地数据集(如颜色、亮度和/或轻/阴影等)。然后将应用纹理的渲染输出中的采样位置映射到纹理中的对应位置和使用适当的过滤过程(如双线性过滤过程)在该位置处采样的纹理,以确定要用于渲染输出中的采样位置的纹理数据。
4.在图形处理中的纹理映射产生的问题是,在图形处理中要施加纹理的表面相对于视点(相机)处于斜视视角,如在这种情况下,从视点到表面上看到的采样位置的“投影”(以及因此被采样的纹理)(使得采样点投影为圆形的假设)将不是圆形的形式(如果表面垂直于视图方向),但是将是椭圆形的形式(其中椭圆形的尺寸由表面相对于视图方向的角度确定)。
5.图1示出了这一点并且示出了示例性渲染输出1,其对应于将要显示的图像的屏幕的平面,并且包括多个采样位置(像素)2(假定为圆形)并且例如将需要采取相应纹理样本以使像素适当地渲染。(图1简单地示出了渲染输出1的像素2的一个小部分。应当理解,渲染输出1的整个区域将包括适当的像素阵列。)
6.图1还示出了对应于渲染渲染输出的视点的“相机”3。
7.如图1所示,对于将采样与来自相机3的视图方向成斜角的3d表面5的示例性像素4,将从相机位置3投射通过渲染输出(屏幕)1中的(圆形)像素4的视图“锥”6的有效投影与视图方向成斜角的3d表面5将为椭圆7。
8.在这种情况下,简单地从要施加到表面的纹理中采取“圆形”双线性样本将导致误差,例如,就表面上的再现纹理而言,可能会使表面模糊和/或存在有利。
9.为了解决这种情况,使用被称为“各向异性过滤”的纹理采样技术,其中沿着纹理中的线(通常被称为各向异性方向)拍摄多个(例如,双线性)样本,所述线(各向异性方向)旨在对应于“椭圆”(椭圆形占地面积)的长轴,所述长轴对应于采样点到表面上的投影以将施加到所述表面上。沿线(各向异性方向)拍摄的多个样本以待采样的纹理坐标为中心(其将是椭圆的中心)。
10.然后,例如使用加权平均值,例如基于其沿着各向异性方向从投影“椭圆”的中心(从纹理坐标采样)的距离,将复数(例如双线性)、沿各向异性方向拍摄的样本适当地组合,以提供返回并用于所讨论的采样点的整体输出采样纹理值。
11.已知以“mipmap”的形式存储和使用图形纹理,即作为纹理的逐渐降低的分辨率(较不详细)版本的序列(链),其中每个mipmap级别是例如一半的分辨率(如详细描述的一半)。
12.mipmap旨在增加渲染速度并减少同步伪影。较高分辨率mipmap将用于高密度样本,例如靠近视点的物体(相机),其中较低分辨率mipmap用于进一步远离的对象。
13.当使用mipmap(通常是所需的细节级别(lod)时)将被定义(例如,基于纹理从视点(相机)施加纹理的表面的距离(相机)),并且纹理采样操作将随后对最接近的mipmap进行采样到细节级别,或者对这两个mipmap级别进行采样,所述两个mipmap级别落入期望的细节级别的任一侧,并且然后适当地组合来自两个mipmap级别的样本(例如,基于其相对“距离”)。后者可以使用三线性采样过程来完成,其中使用双线性过滤来自每个mipmap级别,并且然后将两个样本、来自每个mipmap级别的一个样本适当地组合(例如,使用基于mipmap的细节级别与要采样的实际细节级别之间的差异的加权平均值),以提供输出的采样纹理值。
14.例如,当使用分辨率为40
×
40采样位置的图像的纹理时,可以使用例如128
×
128、64
×
64和32
×
32纹素的mipmap、64
×
64和32
×
32mipmap(具有三线性内插)的插值。
15.当使用mipmap执行各向异性过滤时,将沿着各向异性方向拍摄适当数量的多个三线性样本(并且然后适当地组合以提供要使用的输出采样纹理值)。因此,在这种情况下,将双线性样本沿各向异性方向取得每个mipmap级别,并且然后将来自每个mipmap级别的双线性样本组合以提供适当的三线性样本值,然后将这些三线性样本值适当地组合以提供整体输出采样的纹理值。
16.图2示出了这一点并且示出了沿着对应于“椭圆”22的长轴的各向异性方向21的复数(在此情况下为六个)纹理样本20,对应于在适当的一对mipmap级别中的采样位置到表面上(如上文所论述)的投影,包括更加详细的mipmap级别23和较不详细的mipmap级别24。然后以成对方式将来自每个mipmap级别的样本适当地组合以提供沿着各向异性方向的多个三线性样本的集合,然后将所述三线性样本相应地适当地合并以得到最终输出采样的纹理值。
17.当使用mipmap执行各向异性过滤时,因此必须确定用于三线性样本的细节的mipmap级别(lod),样本将在mipmap中采取的各向异性方向(线)以及沿各向异性方向采取的样本的数量。
18.当执行各向异性过滤时,通常通过找到在投影到要施加纹理的表面上时近似于采样位置的形状的椭圆来确定这些参数。然后使用投影椭圆的短轴来找到对纹理进行采样的细节级别,椭圆的长轴的(方向)指示纹理内的线的方向,以采样纹理(各向异性方向),并且长轴与投影椭圆的短轴的比率用于确定(as)要沿着纹理中的线(各向异性方向)拍摄的样本的数量。
19.虽然可以为在执行各向异性滤波时对高度准确度进行各向异性过滤的目的来确定投影的椭圆和对应的椭圆参数,但是这在硬件中实施的相对昂贵的情况下,在用于执行各向异性过滤的一般方法中,当确定椭圆参数时趋于使用近似值,例如尝试在给定各向异性过滤操作中找到与一组参考各向异性方向的最佳匹配,而不是确定实际各向异性方向本身。然而,申请人已经认识到,使用用于各向异性滤波的此类近似值可能导致视觉伪影,并且具体地,可以为椭圆的长轴的角度给出错误的结果,此外,所述错误还可以表现出一定角度依赖性(即,对于某些角度,比其它角度更大)。
20.申请人相信,仍然存在用于使用图形处理器执行光线追踪的改进技术的范围。


技术实现要素:

21.根据本发明的第一方面,提供了一种在采样纹理时执行各向异性过滤以提供输出采样纹理值以在图形处理系统中渲染输出时使用的方法,所述方法包括:
22.当使用各向异性滤波采样纹理时,为所述纹理中的位置x、y提供输出采样纹理值:
23.确定用于沿着各向异性方向对所述纹理进行采样的位置数量,沿着所述各向异性方向,所述样本将在所述纹理中进行通过以下操作:
24.确定具有形式ax2 bxy cy2=f的椭圆的系数f的平方根,所述椭圆对应于所述纹理被采样的采样点到所述纹理要应用于的表面上的投影,其中x和y是所述纹理中的所述位置的坐标,针对所述位置的所述输出采样纹理值将被提供;以及
25.使用所述椭圆系数f的所确定的平方根来确定应在所述纹理中沿着所述各向异性方向获取样本的位置数量;
26.所述方法还包括:
27.基于所确定的位置数量,在所述纹理中沿着所述各向异性方向获取一个或多个样本;以及
28.使用在所述纹理中沿着所述各向异性方向获取的所述一个或多个样本来提供针对所述纹理中被采样的所述位置的输出采样纹理值,以供使用。
29.根据本发明的第二方面,提供了一种用于在采样纹理时执行各向异性过滤以提供用于在图形处理系统中渲染输出时使用的输出采样纹理值的设备,所述设备包括:
30.要采样的位置数量确定电路,所述要采样的位置数量确定电路被配置为:当使用各向异性过滤采样纹理以提供针对所述纹理中的位置x、y的输出采样纹理值时:
31.通过以下方式来确定要沿着将在所述纹理中沿着来获取样本的各向异性方向采样所述纹理的位置数量:
32.确定具有形式ax2 bxy cy2=f的椭圆的系数f的平方根,所述椭圆对应于所述纹理被采样的采样点到所述纹理要应用于的表面上的投影,其中x和y是所述纹理中的所述位置的坐标,针对所述位置的所述输出采样纹理值将被提供;以及
33.使用所述椭圆系数f的所确定的平方根来确定应在所述纹理中沿着各向异性方向获取样本的位置数量;
34.所述设备还包括:
35.纹理采样电路,所述纹理采样电路被配置为:基于所确定的位置数量,在所述纹理中沿着所述各向异性方向获取一个或多个样本;和
36.样本组合电路,所述样本组合电路被配置为使用在所述纹理中沿着所述各向异性方向获取的所述一个或多个样本来提供针对所述纹理中被采样的位置的输出采样纹理值,以供使用。
37.在这些方面中,本发明涉及在执行各向异性过滤时确定纹理中的样本的位置数量(即确定各向异性度)。
38.在本发明的这些方面中,使用来自椭圆函数的系数f的平方根来确定纹理中的样本的位置数量(各向异性度),所述椭圆函数限定了作为采样位置的投影的椭圆,其中纹理值将被使用到所施加的纹理的表面上。
39.如下文将进一步讨论的,这简化了需要进行以确定对样本的位置数量(各向异性
度)的计算,从而使得操作更有效且有效实施在硬件中。特别地,在这方面,申请人已经认识到,当使用所述过程的椭圆系数f的平方根执行各向异性过滤时,可以确定各向异性度,并且然后允许在硬件中更简单且有效地执行各向异性度确定。
40.在本发明中采样的纹理可以是可以用于图形处理和用于图形处理的任何合适和期望的纹理,并且可以表示和存储纹理可以用于在图形处理和图形处理系统中表示的任何合适和期望的数据。因此,纹理可以表示例如适当的颜色值(例如,rgbα值)(并且在一个实施方案中,为该情况),但也可以表示可以使用纹理表示的其它图形处理参数和数据,如亮度值、轻/阴影值、深度值等。无论纹理被采样的实际数据如何,本发明都是适用的。
41.对应地,正在采样的纹理应该并且优选地包括适当(例如2d)的纹理数据元素阵列(纹素),每个质地数据元素具有相关联数据(例如颜色)值。期望样本的纹理值将相应地通过指示要采样纹理的纹理(纹理坐标)内的适当位置或位置来指示,以提供所讨论的图形处理纹理化操作所需的输出采样纹理值。
42.被采样的纹理优选地作为多个mipmap(mipmap级别)提供,其中每个mipmap级别比先前级别逐渐减少。质地的mipmap集合可以仅包括两个mipmap级别,但优选地包括多于两个mipmap级别,例如从最详细的mipmap级别延伸通过逐渐减少的mipmap级别到至少详细的mipmap级别,例如包括单个纹理。通常,纹理的mipmap级别可以根据需要布置和配置,例如,并且优选地根据纹理被组织并且被配置为图形处理器和图形处理系统的mipmap级别和/或需要图形处理的应用的方式。
43.本发明涉及正在各向异性地采样纹理的情况。在这种情况下,如上所述,将沿着各向异性方向拍摄(复数)样本,并且适当地使用(组合)以提供输出的采样纹理值。
44.在这些方面中,本发明通过假设将使用纹理值的采样位置(点)将作为椭圆投影到正在施加纹理的表面上来确定样本的位置数量(采用多个样本)的位置数量。
45.因此,各向异性过滤过程被配置为并且操作以基于纹理内的估计椭圆形覆盖区域进行样本,所述估计的椭圆形覆盖区域旨在对应于采样点到正在施加纹理的表面上的投影。
46.为了促进这一点,本发明包括(并且纹理取样设备包括被配置为)确定椭圆的一个或多个参数的一个或多个参数,所述椭圆被估计且旨在对应于所述纹理被采样到所述纹理被采样到所述表面上的所述采样位置(点)的投影,并且具体地,所述椭圆的适当参数可用于适当地控制所述各向异性过滤过程。
47.更具体地,在这些方面中的本发明假设采样位置在所述表面上施加到所述表面上的投影将是以下形式的椭圆:
48.ax2 bxy cy2=f
49.其中a、b、c和f是椭圆系数,并且x、y是纹理中被“采样”的位置的纹理(在纹理空间中)的坐标。
50.本发明确定,尤其所述椭圆系数f的平方根,并且当确定在执行所述各向异性滤波时在所述纹理中采样的位置数量时,使用所述椭圆系数f的平方根。
51.椭圆系数f的平方根可以以任何合适的和期望的方式确定。
52.例如,可以通过首先确定椭圆系数f,然后确定所确定的系数f的平方根来确定椭圆系数f。在这种情况下,椭圆系数f可以根据纹理坐标的衍生物确定,但是优选地由椭圆系
数a、c和b确定(而不是直接从纹理坐标的衍生物确定其),并且优选地从椭圆系数a、b和c确定如下:
53.f=a*c-(b^2)/4
54.在特别优选的实施方案中,直接确定系数f的平方根(不首先(并且优选地,所有)确定系数f)。
55.在这种情况下,在特别优选的实施方案中,椭圆系数f的平方根由在其中生成渲染输出的x和y方向上的纹理坐标的衍生物确定。这些衍生物优选地根据纹理坐标空间表达,使得其指示屏幕空间中一个采样位置的纹理坐标与在x和y方向上分别在屏幕空间中的下一采样位置的纹理坐标之间的纹理坐标(纹理数)的差异。
56.因此,在优选实施方案中,确定“x”纹理坐标导数dtdx和“y”纹理坐标导数dtd,并且然后用于确定椭圆系数f的平方根(并且设备包括被配置为确定这些衍生物的电路或电路)。
57.屏幕空间的x方向和y方向上的纹理坐标导数可以以任何合适的和期望的方式确定。这优选地通过在屏幕空间中分别确定x和y方向上相邻采样位置的纹理坐标的衍生物来完成。
58.纹理坐标导数可以用于以任何合适的和期望的方式确定椭圆系数f。在优选实施方案中,如下从纹理坐标导数确定椭圆系数f(f_sqrt)的平方根:
59.f_sqrt=abs(dtdx.y*dtdy.x-dtdx.x*dtdy.y)
60.其中x、y是所述纹理中需要输出采样纹理值的位置。
61.在特别优选的实施方案中,以及确定椭圆系数f的平方根,也确定椭圆系数a、b和c。如下文将进一步讨论的,优选地,然后使用椭圆系数a、b和c,尤其以及所述椭圆系数f的平方根,以确定(当确定)在执行所述各向异性滤波时在所述纹理中要采样的位置的数量。
62.因此,本发明优选地还确定椭圆系数a、b和c,并且使用那些系数来确定(当确定)在执行各向异性滤波时要采样的位置数量(何时确定)。
63.椭圆系数a、b和c可以以任何合适的和期望的方式确定。在特别优选的实施方案中,它们由在其中生成渲染输出的x和y方向上的纹理坐标的衍生物确定。
64.纹理坐标导数可以用于以任何合适的和期望的方式确定椭圆系数a、b和c。在优选实施方案中,如下从纹理坐标导数确定椭圆系数a、b和c:
65.a=dtdx.y2 dtdy.y266.b=-2*(dtdx.x*dtdx.y dtdy.x*dtdy.y)
67.c=dtdx.x2 dtdy.x268.其中x、y是所述纹理中需要输出采样纹理值的位置。
69.椭圆系数f的平方根可以以任何合适的和期望的方式确定对样本的位置数量(各向异性度)。
70.在特别优选的实施方案中,椭圆系数f的平方根在确定要采样的位置数量(各向异性度)时用作缩放因子,即,使得通过将值(“被除数”)除以椭圆系数f的平方根来确定被采样的位置数量(各向异性度)。最优选地,在确定和要确定要采样的位置数量(各向异性度)时使用对应于椭圆系数f的平方根的两倍的缩放因子(除数),即,使得:
71.aniso_degree=分端/(2.0*f_sqrt)
72.其中分端是确定的值,然后如上文所阐述,使用椭圆系数f(f_sqrt)的平方根进行缩放;并且
73.aniso_degree是各向异性度(即,被采样的纹理中的确定位置数)。
74.在这些布置中,使用椭圆系数f(“分端”)的平方根缩放的值可以以任何合适的和期望的方式确定。在特别优选的实施方案中,使用椭圆系数a、b和c确定其。
75.椭圆系数a、b和c可以用于通过f的平方根确定要划分(缩放)的值(按比例缩放)以以任何合适和期望的方式确定对样本的位置数量(各向异性度)。
76.在特别优选的实施方案中,椭圆系数a、b和c用于通过f的平方根确定要划分(缩放)的值(按比例缩放)以确定样本的位置数量(各向异性度)如下:
77.root=sqrt((a-c)^2 b^2)
78.dividend=a c root
79.其中a、b和c是椭圆的椭圆系数,所述椭圆是屏幕空间采样位置到要施加纹理的表面上的投影(如上所述);并且
80.分端是通过f的平方根划分(缩放)的值,以确定样本的位置数(各向异性度)。
81.因此,在特别优选的实施方案中,椭圆系数a、b和c以及椭圆系数f的平方根用于确定样本的位置数量(各向异性度)如下:
82.aniso_degree=(a c root)/(2.0*f_sqrt)
83.其中a、b和c是椭圆的椭圆系数,所述椭圆是屏幕空间采样位置到要施加纹理的表面上的投影(如上所述);
84.f_sqrt是椭圆的椭圆系数f的平方根,所述椭圆是屏幕空间采样位置对要施加纹理的表面上的投影(如上所述);
85.root=sqrt((a-c)^2 b^2)
86.并且
87.aniso_degree是各向异性度(即,被采样的纹理中的确定位置数)。
88.申请人特别地发现,可以以这种方式正确和足够精确地确定各向异性度,并且从椭圆系数f的平方根以及椭圆系数f的平方根确定各向异性度,并且这提供了用于在硬件中确定各向异性度的更有效的机制和过程。
89.在优选实施方案中,如果(当)出于任何原因,所述确定的各向异性度不是有效数字,则各向异性度优选地设定(夹持)为“1”。因此,在优选实施方案中:
90.if(isnan(aniso_degree))aniso_degree=1
91.此外,在特别优选的实施方案中,针对各向异性度(样本数量)设置特定的优选地选择的、优选地预定的最大值,并且根据椭圆系数确定的各向异性度被设置(夹持)到设置最大值,如果其超过最大值,即:
92.if(aniso_degree》max_aniso)aniso_degree=max_aniso
93.其中max_aniso是设置最大允许各向异性度。
94.将确定的各向异性度限制为不大于设定的最大各向异性度集,实际上,在采样纹理时将采样的位置数量上的帽盖,并且由此当执行各向异性滤波时在纹理取样成本上的帽盖上进行采样。
95.可以以任何合适和期望的方式以及系统的任何合适和期望的元件或分量为此目
的设置可以在执行各向异性过滤时采样的最大集合(允许)数量的位置。
96.例如,可能存在所讨论支持的图形处理器纹理映射电路(硬件)(被允许进行样本)的最大(支持)各向异性度(即,可以沿着各向异性方向在执行各向异性过滤时采样的最大位置数量)。
97.在这方面支持的最大各向异性度可以以任何合适和期望的方式以及系统的任何合适和期望的元件或分量来设置和选择。它通常将被设置(固定)以及所讨论的处理器的硬件(因为其将由硬件能够处理的最大精度来确定,所述最大精度能够针对所讨论的计算进行处理,这将针对硬件固定)。示例性合适的最大支撑各向异性度是16。当然,其他布置将是可能的。
98.在这种情况下,可以在执行各向异性过滤时采样的设置最大允许数量的位置可以例如简单地是支持的最大各向异性度,如上所述(并且在优选的实施方案中,最大支持的各向异性度用作在执行各向异性过滤时可以采取的默认最大允许数量的样本,当执行各向异性过滤时可以采样所述位置的任何较小最大允许数量时可以采取所述样本数量)。
99.在特别优选的实施方案中,还或替代地,还可能对于可以在执行各向异性过滤时采样的最大允许数量的位置也是可能的,所述各向异性滤波不同于所支持的(旨在被设置)的最大各向异性度。
100.在优选的此类实施方案中,需要图形处理的应用程序(以及因此尤其,纹理映射)能够设置要使用的最大各向异性度(为此目的)。还可以或替代地,对于图形处理器的驱动器将可以使用的最大各向异性度设置。例如,还可以存在例如由驾驶员设置的默认最大值,但是如果需要,应用程序能够为使用中的各向异性度设置较低或更高的最大值(但不高于最大支持的各向异性度)。
101.在特别优选的实施方案中,采用的样本数量(各向异性度)确定还被配置为确保将采取至少一个样本,即,如果确定的样本数量(确定的各向异性度)小于1,则确定的各向异性度将设置为1,即:
102.if(aniso_degree《1.0)aniso_degree=1.0。
103.一旦已经确定了用于样本纹理的位置数量(各向异性度),则应该基于所确定的位置数量沿着纹理中的各向异性方向,并且优选地沿着各向异性方向拍摄样本。如下文将进一步讨论的,这可以包括在纹理中沿着各向异性方向获取所确定的位置数量的样本(并且在一个优选的实施方案中,在这种情况下,其可以包括在纹理中沿着各向异性方向获取样本,所述位置与确定的位置数量不同(不同于)所确定的位置数量),但其基于确定的位置数量(例如,使用确定的位置数量确定)(以及在其它实施方案中,这是情况)。
104.可能仅存在用于各向异性过滤操作的要采样的纹理(例如,mipmap级别)的单个“版本”。在这种情况下,基于确定的位置数量(例如,并且优选地等于确定的位置数量)的纹理(mipmap)中的位置数量应以适当的方式采样。
105.然而,在特别优选的实施方案中,被采样的纹理被提供为两个或更多个mipmap,并且纹理的采样包括对所述质地的适当的一个或多个mipmap进行采样(根据要采样的定位的确定数量)。
106.因此,在特别优选的实施方案中,被采样的纹理被提供为两个或更多个mipmap,并且方法包括:
107.确定一对mipmap级别,包括第一更加详细的mipmap级别和第二较详细的mipmap级别,所述第二较详细的mipmap级别从所述模拟图级别和所述较不详细的mipmap级别从所述一对mipmap级别获取样本以提供所述输出的采样纹理值(并且优选地,在所述更加详细的mipmap级别中沿着所述各向异性方向获取样本,并且将沿着所述各向异性方向拍摄的所述样本在所述更加详细的mipmap级别中并且在所述较详细的mipmap级别中组合以提供用于使用的输出采样纹理值)。
108.对应地,本发明的设备优选地包括:
109.mipmap级别选择电路,所述mipmap级别选择电路被配置为当使用各向异性滤波来采样以提供两个或更多个mipmap的纹理时,以提供输出采样纹理值,确定一对mipmap级别,包括第一更加详细的mipmap级别,以及第二较详细的mipmap级别,从而获得样本以提供输出的采样纹理值;
110.并且纹理采样电路被配置为在更加详细的mipmap级别中,以及在较详细的mipmap级别中沿着各向异性方向对一个或多个(且优选多个)位置进行样本;
111.并且所述样本组合电路被配置为将沿着所述各向异性方向拍摄的所述样本在更加详细的mipmap级别和较不详细的mipmap级别中组合以提供用于使用的输出采样纹理值。
112.在本发明的这些实施方案中,当执行各向异性滤波时,对两个纹理mipmap级别进行采样。一个mipmap级别更加详细(即,包括所讨论的纹理的更高分辨率(更加详细的)版本),并且两个的另一个mipmap级别包括被采样的纹理的更少详细(较低分辨率)版本。可以选择用于采集样本的任何两个mipmap级别。
113.在优选实施方案中,采集纹理样本的两个mipmap级别(直接)包括mipmap层级结构中的相邻级别。
114.可以根据任何合适和期望的标准和条件选择和确定来自样本的两个mipmap级别。在优选实施方案中,基于要采样纹理的细节级别(lod)来确定它们。
115.优选地,从期望的细节级别的任一侧的mipmap级别被选择并从其采样。因此,优选地选择更加详细的mipmap级别,即最接近所需细节级别的mipmap级别(但比所需细节级别更加详细),并且优选地选择最接近所需细节级别的较详细的mipmap级别(但比所需细节级别更低)作为样本的mipmap级别。
116.可以相应地以任何合适的和期望的方式确定要采样的纹理的细节级别。在优选实施方案中,至少基于表面上的采样位置的投影椭圆来确定纹理被施加到其上。
117.可以至少部分地基于所讨论的采样点的投影椭圆的短轴的确定长度来确定细节级别。可以以任何合适的和期望的方式确定所讨论的采样点的投影椭圆的短轴的长度。在特别优选的实施方案中,用于采样点的投影椭圆的短轴的确定长度指示采样点的投影椭圆的短轴的半径,并且最优选地是采样点的投影椭圆的短轴的半径。因此,在优选实施方案中,至少部分地基于所讨论的采样点的投影椭圆的短轴的确定半径来确定细节级别。
118.然而,在特别优选的实施方案中,确定细节级别而不特别确定(并且不需要特定地确定)所讨论的采样点的投影椭圆的短轴的长度(例如,其半径)。
119.最优选地,细节级别被确定为所讨论的采样点的投影椭圆的短轴的长度的log2,并且优选地为所讨论的投影椭圆的短轴的log2,并且优选地通过在椭圆系数上使用一个或多个且优选复数的log2操作来确定。
120.在特别优选的实施方案中,使用以下确定细节级别:尤其,对椭圆系数f的(确定的)平方根进行log2操作。
121.在特别优选的此类实施方案中,待使用的细节级别被确定为:
122.lod=0.5*(2.0*log 2(f_sqrt)1.0-log2(a c root))
123.其中:
124.lod是确定的细节级别;
125.a和c是椭圆系数,优选地如上所述确定;
126.f_sqrt是如上文所定义的椭圆系数f的平方根;并且
127.根部是如上确定的参数“根”(即,root=sqrt((a-c)^2 b^2))。
128.在这方面,申请人已经认识到,细节值将不是(并且不需要)非常高的精度,并且因此可以使用如上文所阐述的基底-2对数来令人满意地确定,并且使用如上所阐述的基底-2对数来确定可以令人满意地确定。此外,此形式的log2操作可以相对便宜以在硬件中实施(例如,与划分操作相比)。因此,使用多个log2操作来确定细节级别使得能够在硬件中相对低廉地确定细节级别。
129.因此,申请人相信,确定在执行各向异性过滤时对纹理进行采样的细节级别(从而以这种方式选择用于在采样纹理时使用的mipmap级别)可以是新的且本发明的本身可以是新的且本发明的,并且不仅在以上文所论述的方式确定纹理中的样本的位置数量。
130.因此,根据本发明的第三方面,提供了一种在采样纹理时执行各向异性过滤以提供用于在图形处理系统中渲染输出时使用的输出采样纹理值的方法,所述方法包括:
131.当采样被提供为两个或更多个mipmap的纹理时,使用各向异性滤
132.波来提供所述纹理中的位置x、y的输出采样纹理值:
133.通过以下方式来确定要采样所述纹理的细节级别:
134.确定具有形式ax2 bxy cy2=f的椭圆的系数f的平方根,所述椭圆对应于所述纹理被采样的采样点到所述纹理要应用于的表面上的投影,其中x和y是所述纹理中的所述位置的坐标,针对所述位置的所述输出采样纹理值将被提供;以及
135.对所述椭圆系数f的所确定的平方根使用log2运算来确定要采样所述纹理的所述细节级别(并且优选通过通过以下方式确定所述纹理的细节级别:
136.确定具有形式ax2 bxy cy2=f的椭圆的系数a、b、c和所述系数f的平方根对应于所述纹理被采样所述采样点的到所述纹理要应用于的所述表面上的所述投影,其中x和y是要提供所述输出采样纹理值的所述纹理中的所述位置的坐标;以及
137.在所述确定的椭圆系数a、b、c和f的平方根上使用一个或多个log 2操作来确定在所述所确定的椭圆系数a、b、c和所述平方根处进行样本的细节级别,所述细节级别在所述质谱处进行采样(并且优选通过确定所述纹理的样本的细节级别为:
138.lod=0.5*(2.0*log 2(f_sqrt) 1.0-log2(a c root))
139.其中:
140.lod是确定的细节级别;
141.f_sqrt是椭圆系数f的平方根;并且
142.root=sqrt((a-c)^2 b^2)))
143.所述方法还包括:
144.使用所述确定的细节级别来选择所述质地的所述mipmap级别中的一个或多个,从而获取样本以提供所述输出的采样纹理值;
145.在所述选择的一个或多个mipmap级别中沿所述纹理中的各向异性方向对一个或多个位置进行样本或样本;并且
146.使用沿着所述一个或多个mipmap级别中的所述各向异性方向拍摄的所述样本或样本以提供用于所述纹理中被采样的所述位置的输出采样纹理值。
147.根据本发明的第四方面,提供了一种用于在采样纹理时执行各向异性过滤以提供用于在图形处理系统中渲染输出时使用的输出采样纹理值的设备,所述设备包括:
148.细节级别确定电路,所述细节级别确定电路被配置为:当使用各向异性过滤采样被作为两个或更多个mipmap提供的纹理以提供针对所述纹理中的位置x、y的输出采样纹理值时:
149.通过以下方式来确定要采样所述纹理的细节级别:
150.确定具有形式ax2 bxy cy2=f的椭圆的系数f的平方根,所述椭圆对应于所述纹理被采样的采样点到所述纹理要应用于的表面上的投影,其中x和y是所述纹理中的所述位置的坐标,针对所述位置的所述输出采样纹理值将被提供;以及
151.对所述椭圆系数f的所确定的平方根使用log2运算来确定要采样所述纹理的所述细节级别(并且优选通过通过以下方式确定所述纹理的细节级别:
152.确定具有形式ax2 bxy cy2=f的椭圆的系数a、b、c和所述系数f的平方根对应于所述纹理被采样所述采样点的到所述纹理要应用于的所述表面上的所述投影,其中x和y是要提供所述输出采样纹理值的所述纹理中的所述位置的坐标;以及
153.在所述确定的椭圆系数a、b、c和f的平方根上使用一个或多个log2操作来确定在所述所确定的椭圆系数a、b、c和所述平方根处进行样本的细节级别,所述细节级别在所述质谱处进行采样(并且优选通过确定所述纹理的样本的细节级别为:
154.lod=0.5*(2.0*log 2(f_sqrt) 1.0-log2(a c root))
155.其中:
156.lod是确定的细节级别;
157.f_sqrt是椭圆系数f的平方根;并且
158.root=sqrt((a-c)^2 b^2)))
159.所述设备还包括:
160.mipmap选择电路,所述mipmap选择电路被配置为使用所述确定的细节级别来选择用于从所述质地进行样本以提供输出采样的纹理值的纹理的一个或多个mipmap级别;
161.纹理采样电路,所述纹理采样电路被配置为在所述选择的一个或多个mipmap级别中沿着各向异性方向对一个或多个位置进行样本或样本;和
162.样本组合电路,所述样本组合电路被配置为在所述一个或多个mipmap级别中使用沿着所述各向异性方向拍摄的所述样本或样本,以提供用于所述纹理中被采样的位置的输出采样纹理值。
163.本领域技术人员将了解,本发明的这些方面可并且优选地包括本文描述的本发明的任选的和优选的特征中的任何一个或多个或所有特征。
164.例如,优选根据上文讨论的本发明的较早方面和实施方案确定在选定的mipmap或
mipmap中沿各向异性方向采样的位置数量。
165.在本发明的这些方面和实施方案中,尽管过程可以基于细节的级别从仅选择单个mipmap级别来产生仅选择单个mipmap级别(并且这将进一步论述),更典型地,细节级别将用于识别和选择对样本的纹理的两个mipmap级别。
166.因此,在特别优选的实施方案中,所确定的细节级别用于选择(确定)一对mipmap级别,包括第一更加详细的mipmap级别,以及第二较详细的mipmap级别,从其采取样本以提供输出采样的纹理值(并且该方法将包括(并且设备将配置为)沿着各向异性方向进行一个或多个,并且优选地复数),在更加详细的mipmap级别中沿着各向异性方向进行样本;在较不详细的mipmap级别中沿着各向异性方向进行一个或多个,并且优选多个样本;以及将沿着各向异性方向拍摄的样本或样本在更加详细的mipmap级别和样本或样本中组合,所述样本或样本在较不详细的mipmap级别中沿着各向异性方向拍摄以提供用于使用的输出采样纹理值)。
167.在这些方面和实施方案中,如上文所论述,优选地根据纹理坐标的衍生物确定f的椭圆系数a、b和c以及平方根(并且优选地,那些值被确定一次和重复使用)。
168.在本发明的这些方面和实施方案中(并且其它方面),在优选实施方案中,在系数f的平方根为零的情况下,将细节值的级别设置为(指示)“不是数字”(nan)。
169.对应地,用于确定到样本的mipmap级别的细节值的级别优选地设置为无穷大,如果确定为“不是数字”(nan)(是否因为f的平方根为零或以其它方式),即:
170.lod=isnan(lod)?输注:lod
171.在特别优选的实施方案中,如上所述,可以将位置数量(各向异性度)夹持到最大值,然后在所确定的各向异性度被夹持的情况下,修改细节计算级别以便触发(确定)使用较不详细的mipmap。这将有助于避免混叠。
172.因此,在优选实施方案中,当夹持各向异性度(如上文所论述)时,使用比根据“标准”细节计算级别使用的较详细的mipmap级别(即修改细节的级别,以便触发使用较不详细的mipmap级别(比通常确定))。
173.最优选地,在这种情况下,使用长轴半径除以最大各向异性度(而不是使用短轴半径)确定细节的级别。因此,在这种情况下,当已夹持各向异性度时,细节确定的级别优选如下:
174.if(aniso_degree_was_clamped)lod=0.5*(log2(a c root)

1.0)-log2(max_aniso)
175.其中max_aniso是设置最大允许各向异性度(如上所述)。
176.在各向异性度未夹持到最大设定各向异性度的情况下,可以简单地确定基于短轴半径的细节级别(如上所述),或者当被夹持各向异性度时基于长轴半径确定细节级别。
177.然而,在特别优选的实施方案中,无论各向异性度是否被夹持,使用“未夹持”和“夹持”过程(优选如上所述)确定细节值的级别,并且然后选择所述确定的细节值级别中的一个(并且优选地所述确定的细节值的更大)作为使用的细节级别(例如,并且优选地,用于确定用于纹理的样本的mipmap)。
178.在这方面,申请人已经认识到,特别是在各向异性度接近最大(夹持)值的情况下,接着取决于选择哪个过程以确定使用的细节级别,这可以导致由于例如不同细节确定级别
的任何相对有限的精确度而确定的不同级别值。然后,这可以引起伪影(噪声),特别是在各向异性度接近最大(夹持)值的情况下,因为确定的细节级别可以接着在那些情况下取决于使用哪个细节级别(并且不同的细节确定级别可能导致不同的细节级别,即使其应产生相同的结果)也是如此。
179.始终确定“两个”细节值并采取这些值的更大有助于确保使用的细节级别的一致性,特别是在各向异性度接近最大允许值(夹持值)的情况下,特别是在各向异性度接近最大允许值(夹持值)的情况下,并且具体地可以减少或消除由于在各向异性度接近最大(夹持)值时在细节确定级别中可能发生的噪声。
180.此外,至少在使用log2操作确定细节确定级别的情况下,执行两次细节确定的级别(实际上)仍然相对廉价,并且因此可以在没有对过程的整体操作的任何显著不利影响的情况下进行,并且提供更好的总体结果。
181.因此,在特别优选的实施方案中,所述方法包括(并且所述设备相应地支持并且被配置为使用两个不同的细节计算级别来确定用于所述各向异性过滤的所述细节级别,其中所述各向异性度尚未被夹持到最大值的其中所述各向异性度尚未被夹持到最大值的一个),并且然后在所述各向异性度被夹持到最大允许值的情况下使用,并且然后选择所述两个确定的细节值中的一个,并且优选地为所述两个确定的细节值级别中的一个,并且优选地为所述两个确定的细节值的所述级别中的一个,并且优选地为所述两个确定的细节值的所述级别。
182.申请人相应地认为,确定在执行各向异性过滤时对纹理进行采样的细节级别(从而以这种方式选择用于在采样纹理时使用的mipmap级别)可以是新的且本发明的本身可以是新的且本发明的,并且不仅在以上文所论述的方式确定纹理中的样本的位置数量。
183.因此,根据本发明的另一方面,提供了一种在采样纹理时执行各向异性过滤以提供输出采样纹理值的方法,所述输出采样纹理值当呈现图形处理系统中的输出时使用,所述方法包括:
184.当采样被提供为两个或更多个mipmap的纹理时,使用各向异性滤波来提供所述纹理中的位置x、y的输出采样纹理值:
185.通过以下方式来确定要采样所述纹理的细节级别:
186.使用第一细节级别确定过程来确定要采样所述纹理的第一细节级别;
187.使用第二不同的细节级别确定过程来确定要采样所述纹理的第二细节级别;
188.以及
189.选择所述第一确定的细节级别和所述第二确定的细节级别中的一者作为要采样所述纹理的所述细节级别;
190.所述方法还包括:
191.使用所选择的细节级别来选择所述纹理的所述mipmap级别中从中获取样本的一个或多个mipmap级别,以提供所述输出采样纹理值;
192.在所述纹理中在所选择的一个或多个mipmap级别中沿着各向异性方向针对一个或多个位置获取一个或多个样本;以及
193.使用在所述一个或多个mipmap级别中沿着所述各向异性方向获取的所述一个或多个样本来提供针对所述纹理中被采样的所述位置的输出采样纹理值,以供使用。
194.根据本发明的另一方面,提供了一种用于在采样纹理时执行各向异性过滤以提供输出采样纹理值以在图形处理系统中渲染输出时使用的设备,所述设备包括:
195.细节级别确定电路,所述细节级别确定电路被配置为:当使用各向异性过滤采样被作为两个或更多个mipmap提供的纹理以提供针对所述纹理中的位置x、y的输出采样纹理值时:
196.通过以下方式来确定要采样所述纹理的细节级别:
197.使用第一细节级别确定过程来确定要采样所述纹理的第一细节级别;
198.使用第二不同的细节级别确定过程来确定要采样所述纹理的第二细节级别;
199.以及
200.选择所述第一确定的细节级别和所述第二确定的细节级别中的一者作为要采样所述纹理的所述细节级别;
201.所述设备还包括:
202.mipmap选择电路,所述mipmap选择电路被配置为使用所述选择的细节级别来选择用于从所述质地进行样本以提供输出采样的纹理值的纹理的一个或多个mipmap级别;
203.纹理采样电路,所述纹理采样电路被配置为在所述选择的一个或多个mipmap级别中沿着各向异性方向对一个或多个位置进行样本或样本;并且
204.样本组合电路,所述样本组合电路被配置为在所述一个或多个mipmap级别中使用沿着所述各向异性方向拍摄的所述样本或样本,以提供用于所述纹理中被采样的位置的输出采样纹理值。
205.本领域技术人员将了解,本发明的这些方面可并且优选地包括本文描述的本发明的任选的和优选的特征中的任何一个或多个或所有特征。
206.因此,在特别优选的实施方案中,用于确定细节级别的两个不同的细节确定过程级别包括旨在使用的细节确定过程级别,其中各向异性度尚未被夹持到最大值,以及旨在使用的细节确定过程级别,其中各向异性度已被夹持到最大允许值。
207.类似地,选择两个这样确定的细节值级别中的一个作为对纹理进行采样的细节级别优选地包括选择两个这样的确定的细节值级别作为对质地进行采样的细节级别的更大。
208.在本发明的这些方面和实施方案的特别优选实施方案中,确定细节级别的两种方式如上所述。因此,在特别优选的实施方案中,如下确定对纹理进行采样的细节级别(并且将在确定用于纹理的样本时使用的细节级别)如下:
209.lod_clamped=0.5*(log2(a c root)

1.0)-log2(max_aniso)
210.lod_unclamped=0.5*(2.0*log2(f_sqrt) 1.0-log2(a c root))
211.lod=max(lod_clamped,lod_unclamped)
212.类似地,在优选实施方案中,在系数f的平方根为零的情况下,将细节值的级别设置为(指示指示的值)“不是数字”(nan)。(这将意味着当f_sqrt为零时将使用lod_clamped。)
213.对应地,用于确定到样本的mipmap级别的细节值的级别优选地设置为无穷大,如果确定为“不是数字”(nan)(是否因为f的平方根为零或以其它方式),即:
214.lod=isnan(lod)?输注:lod
215.同样,优选根据上文讨论的本发明的较早方面和实施方案确定在选定的mipmap或
mipmap中沿各向异性方向采样的位置数量。
216.在这些方面和实施方案中,如上文所论述,优选地根据纹理坐标的衍生物确定f的椭圆系数a、b和c以及平方根(并且优选地,那些值被确定一次和重复使用)。
217.在本发明的这些方面和实施方案中,尽管过程可以基于细节的级别从仅选择单个mipmap级别来产生仅选择单个mipmap级别(并且这将进一步论述),更典型地,细节级别将用于识别和选择对样本的纹理的两个mipmap级别。
218.因此,在特别优选的实施方案中,所确定的细节级别用于选择(确定)一对mipmap级别,包括第一更加详细的mipmap级别,以及第二较详细的mipmap级别,从其采取样本以提供输出采样的纹理值(并且该方法将包括(并且设备将配置为)沿着各向异性方向进行一个或多个,并且优选地复数),在更加详细的mipmap级别中沿着各向异性方向进行样本;在较不详细的mipmap级别中沿着各向异性方向进行一个或多个,并且优选多个样本;以及将沿着各向异性方向拍摄的样本或样本在更加详细的mipmap级别和样本或样本中组合,所述样本或样本在较不详细的mipmap级别中沿着各向异性方向拍摄以提供用于使用的输出采样纹理值)。
219.在特别优选的实施方案中,至少在使用log 2操作时,当确定各向异性过滤参数(例如要采样纹理的细节级别)时,所述过程被配置为使得(并且处理电路或电路相应地配置,使得)零的log 2返回减去无穷大的值,即log2(0)=-inf。
220.然后,这将确保例如在纹理坐标导数为零的情况下(即,在一组例如四个像素是在相同位置采样纹理的情况下),结果是一个双线性样本(aniso_degree=1)。将从最详细的mipmap级别获取(lod=0)(这在这些情况下将是优选的结果)。
221.在本发明的这些方面和实施方案中(并且以其它方式),基于使用的mipmap级别来选择的细节级别可以简单地是如上文所论述确定的初始“原始”细节级别(并且在一个实施方案中为情况)。
222.然而,在优选实施方案中,实际上用于选择要使用的mipmap级别的细节级别也可以并且优选地还考虑可以被设置和使用的其它“细节级别”参数,例如,通过需要纹理映射操作的应用。
223.例如,在有可能设置将修改最初确定的细节级别的细节“偏置”级别的情况下,优选地,当选择mipmap级别时考虑细节偏差级别,例如,并且优选地,使得当选择和选择到来自样本的mipmap级别时,使用通过细节偏差的级别修改的细节级别。
224.对应地,在可以设置高和/或低级别的细节“夹具”(以便覆盖可以被采样的最高或最低级别的细节级别),然后再次优选地在确定用于从来自样本中选择mipmap级别的细节级别时考虑任何此类细节夹持级别。
225.同样考虑到任何“细节级别”参数,如上文所论述的细节偏差级别和细节级别高和低夹具,实际上用于选择用于使用的mipmap级别的细节级别也考虑了任何(另外的)调整,并且取决于在施加任何细节偏差级别和细节高度和低夹具级别之后确定的细节级别的任何(进一步)调整。
226.举例来说,并且优选地,在进一步调整(如舍入)的情况下,应用于在任何细节偏差级别之后确定的细节级别,并且已经施加了细节高和低夹具的级别,则优选地,“调整”(例如,圆形)的细节级别实际上用于确定和选择要使用的mipmap级别。
227.因此,在特别优选的实施方案中,用于确定来自样本的哪个mipmap级别的“最终”细节级别是在已经施加了任何调整(如舍入)之后的细节级别,并且优选地根据初始确定的原始级别级别(优选地如上所述确定)、任何被设置的细节偏置和/或夹具级别以及任何被设置的调整(例如,从原始细节级别和任何细节偏差级别和被设定的细节偏置和夹具级别确定)确定。
228.在优选实施方案中,系统支持多种不同模式的“mip映射”操作(“mipmap”模式),其指定确定确定要采样的mipmap的细节的最终级别(例如,并且优选地从初始确定的细节原始级别和设定的任何细节偏差和/或夹具级别)。在这种情况下,使用的“mipmap”模式优选地可以是,并且优选地由需要图形处理的应用程序设置,和/或由例如图形处理器的驱动器(例如,除了任何指定的mipmap模式设置之外和/或无论任何应用指定的mipmap模式设置)。
229.在这种情况下,优选地存在一个“mipmap”模式,其中允许用于确定要采样的mipmap的细节级别具有,并且可以具有分数值。
230.优选地,然后存在第二模式,其中细节级别被四舍五入到整数值,优选地为最接近的整数值。
231.当然,其他布置将是可能的。例如,也可以使用其它lod“四舍五入”模式。
232.可以以任何合适的和期望的方式从“最终”lod(即在调整(舍入),如果有的话)确定用于采集样本以确定待使用的输出采样纹理值的mipmap。
233.例如,在“最终”lod值是分数值的情况下,优选地,最终lod值用于选择来自和“共混”的两个mipmap级别,例如,并且优选地使用基于细节的分数(部分)的适当插值。因此,在分数lod值的情况下,lod值将用于确定要混合在一起的两个mipmap级别,并且优选地,如何执行所述混合,例如并且优选地,在混合结果中对两个mipmap级别的加权。
234.另一方面,在“最终”lod值(即,在调整(舍入)之后)是整数值(其可以例如是mipmap模式指定将lod值接地到例如最接近的整数lod值)的整数值,然后优选使用(整数)“最终”lod值来确定来自来自样本的单个mipmap级别。
235.在本发明的这些方面和实施方案中(并且其它方面),可以根据需要确定采用所选mipmap级别或级别的样本的数量,但是如上文在特别优选实施方案中所述,根据上文所描述的本发明的第一和第二方面确定。
236.因此,在本发明中,当仅确定要采样的纹理的单个版本(例如,单个mipmap级别)时,则将在沿着各向异性方向的一个或多个位置的纹理(在所述单个mipmap级别中)采集多个样本,优选地基于(等于)确定以本发明的第一方面和第二方面的方式确定的样本的位置数量。
237.对应地,当从一对mipmap执行各向异性过滤(包括更加详细的和较不详细的mipmap级别)时,应该样本应该,并且优选地在每个mipmap级别中沿着各向异性方向进行一个或多个位置,优选以本发明的第一和第二方面的方式确定。
238.在这种情况下,在一个实施方案中,在更加详细的mipmap级别和较不详细的mipmap级别两者中沿着各向异性方向获取相同数量的位置。在另一个实施方案中,样本在较详细的mipmap级别上沿着各向异性方向的较少位置进行,比沿着更加详细的mipmap级别中的各向异性方向。
239.因此,在优选实施方案中,当从一对mipmap执行各向异性过滤(包括更加详细的和
较不详细的mipmap级别)时,在更加详细的mipmap级别中沿着各向异性方向获取样本,以及在较详细的mipmap级别中沿着各向异性方向的第二较小数量的一个或多个位置(在更加详细的mipmap级别上对沿各向异性方向采样的纹理进行采样,以及在较不详细的mipmap级别中沿着各向异性方向的第二较小数量的采样位置)。
240.对应地,然后将组合沿各向异性方向在更加详细的mipmap级别上拍摄的样本和沿着各向异性方向在较不详细的mipmap级别上拍摄的样本或样本以提供用于使用的输出采样纹理值。
241.此处应注意,如下文将进一步讨论的,在沿着各向异性方向(并且在一个实施方案中是进行的一个实施方案中)对每个位置采取单个(例如双线性)样本,但是也可以针对沿着各向异性方向的每个位置采集多个(例如双线性)样本。因此,除非上下文另外要求,否则对沿着各向异性方向进行或处于位置的样本和采样的参考包括仅使用单个(例如双线性)样本进行所讨论的位置并且获取所讨论的位置的复数(例如双线性)样本。
242.因此,在优选实施方案中,在更加详细的mipmap级别中沿着各向异性方向对样本进行两个或更多个位置,并且对于一个或多个位置(但比沿着更加详细的mipmap级别中的各向异性方向取样的位置更少)在较不详细的mipmap级别中沿着各向异性方向拍摄。因此,可以仅在较详细的mipmap级别中沿着各向异性方向取样(具有沿各向异性方向在更加详细的mipmap级别上采样多个位置)的单个位置,但在优选实施方案中,在较详细的mipmap级别中沿着各向异性级别对沿各向异性级别采样的多个位置仍然存在多个(复数)位置。
243.可以根据需要选择在这些实施方案中每个mipmap级别中采样的位置的相对数量(只要更多位置在更加详细的mipmap级别中被采样,比较不详细的mipmap级别中)。在优选实施方案中,相对于在较不详细的mipmap级别中采样的位置数量,位置与样本的数量相对于在较不详细的mipmap级别中采样的位置的数量的比率是基于并且优选地(基本上)等于较详细的mipmap级别与较不详细的mipmap级别的分辨率的比率。因此,在一个优选实施方案中,在更加详细的mipmap级别中对多个位置进行两次采样,比较不详细的mipmap级别。这可能特别适用,其中两个mipmap级别的分辨率不同于2倍。当然,其他布置将是可能的。
244.在优选实施方案中,基于确定的初始“碱基”“各向异性度”来确定用于在每个mipmap级别中采集样本的位置数量,所述“碱基”数量表示从用于各向异性过滤过程的纹理中采样的位置的“碱基”数量,然后例如基于确定的初始、碱基各向异性度(位置数)来设置位置数量,例如大于和/或小于适当的位置数量,并且以适当的方式设置。
245.在这种情况下,在这些实施方案中用于确定来自每个mipmap级别的位置数量的“碱基”各向异性度(位置数)优选基于如上文所论述确定的样本的位置数量(即,以本发明的第一和第二方面的方式),并且可以例如仅仅是如上所述确定的“原始”各向异性度(位置数)(以及在一个优选实施方案中,是基于(从/使用))“原始”各向异性度的“碱基”各向异性度。
246.在这些实施方案中,可以以任何合适的和期望的方式从基础各向异性度数量的位置确定每个mipmap级别中的样本的实际位置数量。
247.通常,可以以任何合适的和期望的方式在更加详细的mipmap级别(适当地)中的一个或两个中增加或减少相对于位置的基本数量采样的位置数量,只要在更加详细的mipmap级别中存在比在较不详细的mipmap级别中更多的位置。
248.在优选实施方案中,相对于位置的基本数量在mipmap级别中采样的位置的增加或减少至少部分地基于将采样纹理的细节级别,并且最优选地,至少部分地基于以及根据所讨论的mipmap级别从旨在采样的细节级别的距离(就其细节级别而言)。
249.在优选实施方案中,将采样纹理的细节级别来自更加详细的mipmap级别的细节级别,然后与位置的基本数量相比,在更加详细的mipmap级别中采样的位置数量的增加越大(反之亦然)。(因此,如果要采样的纹理的细节级别接近更加详细的mipmap级别的细节级别,则在更加详细的mipmap级别中采样的位置的数量优选地接近位置的基础数量。)
250.对应地,在优选实施方案中,将要对纹理进行采样的细节级别来自较不详细的mipmap级别的细节级别,然后从基本位置的较不详细的mipmap级别中采样的位置数量的减少越大(反之亦然)。(因此,如果要采样的纹理的细节级别接近较不详细的mipmap级别的细节级别,则在较不详细的mipmap级别中采样的位置的数量优选地接近位置的碱基数量。)
251.因此,虽然在实施方案中,可以简单地基于“碱基”各向异性度来确定在每个mipmap级别中采样的位置数量,所述“碱基”各向异性度是例如如上文所讨论的或优选地如上所述确定的,则纹理采样操作的细节级别也可以是并且优选地考虑和使用的,并且当选择每个mipmap级别中的样本的位置数量时。
252.当确定每个mipmap级别中的样本的位置数量时使用的细节级别可以简单地是初始的“原始”细节级别,其是例如并且优选地如上所述确定的。然而,在优选的实施方案中,用于此目的的细节级别还考虑了其它“细节级别”参数(如上文所论述),并且最优选地包括用于选择使用的mipmap级别的实际细节级别,考虑到可能已设置的任何额外的“细节级别”参数,和/或例如基于所选的mipmap模式(如上文所论述),最优选地对应于以上文所阐述的方式确定到样本的mipmap级别的“最终”细节级别(使用的细节级别)(如果在任何mipmap模式调整之后使用的细节级别)。
253.因此,在特别优选的实施方案中,基于针对样本的确定的“碱基”位置数量(即,“碱基”各向异性度)来确定每个mipmap级别中的样本的位置数量,优选地如上所述确定,以及纹理被采样的细节级别(并且最优选地,用于确定与来自样本的哪个mipmap级别的最终“最终”细节级别)。
254.在这方面,申请人进一步认识到,如上所述,采样纹理的细节级别(最终细节级别)可能不对应于初始“原始”细节级别,所述初始“原始”细节级别可以不对应于例如基于采样点的投影到要施加纹理的表面上的初始“原始”级别,但也可以受到以及取决于其它参数,例如细节偏差级别和/或高和/或低细节“夹具”和/或基于“mipmap”模式的任何应用调整(例如,四舍五入)。
255.在一个特别优选的实施方案中,确定存在正的“有效细节偏差级别”,即,在针对集合“mipmap”模式(优选地在应用任何调整(四舍五入)之后,优选地在应用基于采样点的投影所确定的)与要施加纹理的表面上的初始“原始”细节级别之比的纹理的较详细版本的情况下(并且优选地从(并且仅从)采样点的估计椭圆形投影确定)在所采样的mipmap级别上采样的位置的数量(沿各向异性方向采样的位置数)(沿各向异性方向被采样的位置的数量)减少。
256.(这假定较低的细节值级别暗示更加详细的mipmap级别,反之亦然。可以使用对应的布置,其中更高级别的细节值指示更加详细的mipmap级别。)
257.最优选地,在正有效的细节偏差级别的情况下,“碱基”各向异性度(沿着各向异性方向的位置数量)被设置为比由使得输出采样点的投影椭圆形占地面积确定的“原始”各向异性度(位置数量)所指示的位置数量更少的位置,所述“原始”各向异性度被确定为将输出采样点的投影的椭圆形占地面积所确定,那么用于对纹理进行采样的位置数量减少,然后将其用作“碱基”位置数量,然后在更多和较不详细的mipmap级别中选择沿各向异性方向采样的位置数量。
258.在存在正有效细节偏差级别的情况下确定的位置数量减少可以根据需要选择,并且基于任何合适和期望的参数。在优选的实施方案中,基于有效的细节偏差级别(即,纹理的细节级别与基于估计的椭圆形占地面积确定的“原始”细节级别之间的差异,所述原始的椭圆形占地面积是应用采样点到被采样的表面上的表面上的投影),从而提供要采样的位置的修改数量(并且例如,可以确定两个mipmap级别中的每一个中的样本的实际位置数量,例如,并且优选地以上文论述的方式中的一种或多种)。
259.如上所述,在本发明中,将基于正在采样的纹理(在mipmap级别或级别)中沿着各向异性方向确定的位置数量来采集样本。
260.因此,本发明优选地还包括确定在纹理中采取样本的各向异性方向(并且本发明的设备相应地优选地包括各向异性方向确定电路,所述各向异性方向确定电路被配置为确定沿纹理的样本的各向异性方向)(然后采取样本,然后取得沿所述确定的各向异性方向的适当位置数量)。
261.可以以任何合适和期望的方式确定取样的各向异性方向。在优选实施方案中,这通过假设将使用纹理值的采样点将作为椭圆投影到正在施加纹理的表面上来进行(如上文所论述)。
262.因此,优选地,当投影到正在施加纹理的表面上时基于采样点的估计椭圆形占地面积来选择和确定在纹理中采用样本的各向异性方向。
263.在优选实施方案中,各向异性方向基于并且优选地对应于正在施加纹理值的采样点的假定椭圆形占地面积的长轴的(方向)。因此,在优选实施方案中,各向异性方向包括对应于采样点投影到正在施加纹理的表面上的椭圆的确定的长轴方向。当然,其他布置将是可能的。
264.在各向异性方向被确定为对应于正在施加纹理的表面上的采样点投影的椭圆的长轴方向的情况下,椭圆的长轴方向可以以任何合适和期望的方式相应地确定。
265.在特别优选的实施方案中,确定椭圆的长轴方向上的归一化向量(即,具有一个“一个”(单位向量)的长度)的归一化向量,并且然后用于表示和作为沿纹理中采用样本的各向异性方向。
266.然后,该向量可以是,并且优选地用于偏移沿着各向异性方向截取的个别样本的坐标,例如,通过在每个样本之间添加anisotropy_vector*step_length。(第一样本位置应该是,并且优选地从由应用给出的纹理坐标适当地偏移,使得一组样本以应用程序给出的纹理坐标为中心。)
267.可以以任何合适的和期望的方式确定椭圆的长轴中的单元(归一化)向量的x和y分量,所述单元对应于采样点到所施加的表面上的投影。
268.例如,可以通过确定所述方向相对于纹理中的坐标轴的角度来确定长轴方向,其
中正常的(单位长度)向量的x和y分量具有所述角度,然后确定所述角度(使用该向量,然后当用于偏移样本点的坐标时乘以样本之间的步长)。
269.在特别优选的实施方案中,表示各向异性(长轴)方向的单元向量的x和y分量是通过首先确定对应于正在施加纹理的表面上的假定椭圆形投影的长轴方向的任意(任何)长度的向量的x和y分量来确定的,并且然后归一化那些分量以提供对应于所投射的采样点的长轴的长轴的方向的单位向量的x和y分量,如投影到所述表面上。
270.(对应于采样点的椭圆形投影的长轴对应于施加纹理的表面上的单位向量的所述确定的x和y分量然后优选地用于确定(并且作为)样本在纹理中获取的各向异性方向。)
271.在这方面,申请人已经认识到,可以确定采样点的椭圆形投影的长轴的方向到以这种方式施加纹理的表面上,并且然后,确切地说避免和移除用于确定所述方向的任何角度的需要(并且因此避免了在确定各向异性方向时执行任何三角形计算时)。然后,当执行各向异性过滤时,这可以减少硬件成本,以确定沿其采样纹理的各向异性方向。
272.相应地,申请人相应地相信,当以这种方式执行各向异性过滤时,确定沿着其对纹理进行采样的各向异性方向可能是新的且本发明的右侧。
273.因此,根据本发明的第五方面,提供了一种在采样纹理时执行各向异性过滤以提供用于在图形处理系统中渲染输出时使用的输出采样纹理值的方法,所述方法包括:
274.当使用各向异性滤波采样纹理时,为所述纹理中的位置x、y提供输出采样纹理值:
275.通过以下方式确定沿所述纹理中的样本的各向异性方向:
276.确定对应于所述采样点的所述假定椭圆形投影的所述长轴的方向到正在施用所述纹理的所述表面上的任意长度的向量的x和y分量;
277.将所述确定的x和y向量分量归一化以提供对应于所述采样点的所述椭圆形占据面积的所述长轴的方向的单位向量的x和y分量,如投射到所述纹理的所述表面上施加所述纹理的所述表面上;并且
278.使用对应于所述采样点的所述椭圆形投影的所述长轴的方向到所述纹理被施加到所述纹理的所述表面上的所述单位向量的所述所确定的x和y分量,所述所述所确定的x和y分量沿着所述文件中的所述各向异性方向施加所述纹理;
279.所述方法还包括:
280.在所述纹理中沿着所述确定的各向异性方向拍摄一个或多个样本;并且
281.使用沿着所述纹理中的所述各向异性方向拍摄的所述样本或样本以提供用于所述纹理中被采样的所述位置的输出采样纹理值。
282.根据本发明的第六方面,提供了一种用于在采样纹理时执行各向异性过滤以提供用于在图形处理系统中渲染输出时使用的输出采样纹理值的设备,所述设备包括:
283.各向异性方向确定电路,所述各向异性方向确定电路被配置为当使用各向异性滤波对纹理进行采样以提供所述纹理中的位置x、y的输出采样纹理值时,确定沿所述纹理以纹理进行样本的各向异性方向:
284.确定对应于所述采样点的所述假定椭圆形投影的所述长轴的方向到正在施用所述纹理的所述表面上的任意长度的向量的x和y分量;并且
285.将所述确定的x和y向量分量归一化以提供对应于所述采样点的所述椭圆形占据面积的所述长轴的方向的单位向量的x和y分量,如投射到所述纹理被施加到所述表面上的
所述纹理被用作所述各向异性方向的所述长轴的方向;
286.所述设备还包括:
287.纹理采样电路,所述纹理采样电路被配置为在纹理中沿着确定的各向异性方向拍摄样本或样本;并且
288.样本组合电路,所述样本组合电路被配置为使用沿纹理的各向异性方向拍摄的样本或样本,以提供用于在所述纹理中被采样的位置的输出采样纹理值。
289.本领域技术人员将了解,本发明的这些方面可并且优选地包括本文描述的本发明的任选的和优选的特征中的任何一个或多个或所有特征。
290.因此,例如,根据上文讨论的本发明的较早方面,优选地确定沿着各向异性方向采样的位置数量。相应地,优选根据上文所论述的本发明的较早方面和实施方案确定细节级别,并且因此用于对纹理进行采样的mipmap级别或级别。
291.在特别优选的实施方案中,使用(并且优选地仅使用)椭圆系数a、b和c确定对应于采样位置的椭圆形投影的长轴的方向的向量(任意长度)的x和y分量到正在施加纹理的表面上。在特别优选的实施方案中,使用仅椭圆系数b(并且优选地作为b或-b)来确定组分中的一个,并且使用所有系数a、b和c(并且优选地作为a-c根或a-c根(其中根部是如上确定的参数“根”)来确定其它组分)。
292.在这种情况下,优选地根据椭圆系数a是否大于椭圆系数c还是否(即,使用椭圆系数b确定x分量或y分量),优选地基于椭圆系数a大于椭圆系数c还是否来确定x和y向量分量。
293.最优选地,表示各向异性方向的任意长度的向量的x和y分量由椭圆系数a、b和c确定(并且根据椭圆系数a的值是否大于椭圆系数c的值)如下确定:
294.if(a》c)
295.{
296.aniso_vec.x=-b
297.aniso_vec.y=a-c root
298.}
299.if(a《c)
300.{
301.aniso_vec.x=a-c-root
302.aniso_vec.y=b
303.}
304.其中:
305.aniso_vec.x和aniso_vec.y分别是任意长度的向量的x和y分量,其对应于采样位置的椭圆形投影的长轴到正在施加纹理的表面上的方向;
306.a、b和c是椭圆系数,优选地如上所述确定;并且
307.根是如上确定的参数“根”(即root=sqrt((a-c)^2b^2)
308.在a=c的情况下,在a=c时,在各向异性方向上表示的任意长度的x和y组分可以根据以上针对a》c所示的方式或以上文针对a的方式从椭圆系数a、b和c确定。c,即,使得:
309.if(a》c)
310.{
311.aniso_vec.x=-b
312.aniso_vec.y=a-c root
313.}
314.else
315.{
316.aniso_vec.x=a-c-root
317.aniso_vec.y=b
318.}
319.或者
320.if(a》=c)
321.{
322.aniso_vec.x=-b
323.aniso_vec.y=a-c root
324.}
325.else
326.{
327.aniso_vec.x=a-c-root
328.aniso_vec.y=b
329.}在优选实施方案中,表示各向异性方向的向量任意长度的x和y分量以相同方式从椭圆系数a、b和c确定,当a大于或等于c时(即,当a小于c时以不同的方式),即:
330.if(a》=c)
331.{
332.aniso_vec.x=-b
333.aniso_vec.y=a-c root
334.}
335.else
336.{
337.aniso_vec.x=a-c-root
338.aniso_vec.y=b
339.}
340.然后,对于任意长度各向异性方向向量的所述确定的x和y分量应该是,并且优选地用于在各向异性方向上确定单位长度的向量(归一化向量)的x和y分量。这可以任何合适且期望的方式进行。
341.在优选实施方案中,这是通过从所述确定的长轴方向向量的所述确定的x和y分量确定所述任意长度向量的长度并且然后将所述确定的x和y分量除以所述向量的确定长度以在所述椭圆的长轴的方向上为正在施加所述纹理的所述表面上投影来提供单元(归一化)向量的相应x和y分量来分割所述确定的x和y分量。
342.在这种情况下,长轴向量的长度优选地确定为该载体的平方x和y组分的总和的平
方根(即,使用pythagoras定理)。最优选地,确定长轴方向向量的长度的倒数,并且然后将所述向量的x和y分量中的每一个乘以倒数(向量的长度的倒数),从而沿着长轴方向确定单元(归一化)向量的x和y分量(这将由此指示和用作各向异性方向,当采样用于各向异性滤波时用作各向异性方向)。
343.因此,在优选实施方案中,根据针对对应于椭圆的长轴的任意长度向量确定的x和y分量确定对应于各向异性方向的单位向量的x和y分量如下:
344.inv_len=1.0/sqrt(aniso_vec.x^2 aniso_vec.y^2)
345.aniso_vec.x=aniso_vec.x*inv_len
346.aniso_vec.y=aniso_vec.y*inv_len
347.其中:
348.aniso_vec.x和aniso_vec.y分别是对应于采样位置的椭圆形投影的长轴的方向到正在施加纹理的表面上的任意长度的向量的x和y分量,优选如上所述确定;
349.inv_len是该向量的长度的倒数;
350.并且
351.aniso_vec.x和aniso_vec.y分别是归一化向量(单位长度的向量)的x和y分量,其对应于采样位置的椭圆形投影的长轴到正在施加纹理的表面上的方向。
352.一旦应该采取样本的沿着各向异性方向的位置数量,就已经确定了mipmap级别或样本的平均方向,并且将采用样本的各向异性方向,然后应确定位置数量的样本应当是,并且优选地沿所讨论的mipmap级别或级别中的纹理中的各向异性方向截取。
353.采集样本的所需位置数量可以以任何合适和期望的方式沿mipmap级别沿各向异性方向布置。在特别优选的实施方案中,它们沿着各向异性方向等距间隔开,并且优选地位于确定的各向异性方向上(即,在对应于将应用质地的采样点的投影的纹理中的椭圆形占地面积的确定的长轴上)。最优选地,将样本所采集的样本的确定的位置数量定位在所确定的长轴上以采样点的椭圆形投影到要施加纹理的表面上,并且沿所述长轴的确定长度等距间隔开。样本优选地以椭圆形中心为中心(因此,如果采取两个样本,那么它们优选地放置在长轴上等距地放置在椭圆形中心的任一侧上)。
354.mipmap级别应该是,并且优选地在样本要采取的每个位置处采样。在一个实施方案中,针对沿着待采样的各向异性方向的每个位置拍摄单个样本。在这种情况下,优选地在所述位置处获取单个样本。
355.在另一个实施方案中,针对沿着待采样的各向异性方向的每个位置拍摄多个样本(并且优选地在每个位置采集相同数量的多个样本)。在这种情况下,优选地合并多个样本以提供所讨论的位置的结果采样值。多个样本优选地围绕样本所采取的位置适当地布置,例如,并且优选地在位置周围的适当“超速采样”图案中。
356.最优选地,在质地采样样本的最终细节级别的情况下,比初始、“原始”细节级别更加详细地形式的纹理与基于将应用纹理的表面上的采样点的椭圆形投影确定的细节的更加详细的版本,即其中“有效细节偏差级别”(如上所述)为负(小于0)。(再次,假设较小的细节值指示更加详细的mipmap级别),优选地通过使用将采取样本的各向异性方向获取更多样本(通过“超过”)每个位置来增加在mipmap级别中或在采样的mipmap级别中的至少一个(并且优选地两者中两者中)中采集的样本数量。
357.可以根据需要选择确定和获取的样本数量增加,其中存在负有效细节偏差级别,并且基于任何合适和期望的参数。在优选实施方案中,基于有效的细节偏差级别(即,在所述纹理被采样的细节级别与基于所估计的椭圆形占地面积确定的“原始”细节级别之间的差异,所述原始的椭圆形占地面积是采样点到将要应用的纹理的表面上的投影)。
358.在优选实施方案中,确定的有效细节偏差级别用于选择以下中的一个或多个,优选地两个,并且优选地全部:样本数量以沿着待采样的各向异性方向拍摄每个位置;那些样本的间隔(例如,围绕沿各向异性方向的位置);并且对那些样本的加权(其对“超过”输出值的相对贡献)。
359.针对沿各向异性方向的位置拍摄的每个样本可以是来自纹理的单个点样本(例如,对应于最近纹素的值)。
360.然而,在优选的实施方案中,针对mipmap级别中的位置拍摄的每个样本包括双线过滤样本(例如,并且优选地根据所讨论的图形处理系统的双线性过滤过程)。在这种情况下,将沿着各向异性方向在每个mipmap级别中针对每个位置拍摄一个(或多个)十字形过滤样本。
361.样本本身可以以任何合适的和期望的方式从纹理(和所确定的采样值)获取。这优选地根据纹理在图形处理器和所讨论的图形处理系统中以其它方式采样(例如,当执行各向异性过滤或以其它方式)来进行。
362.(本发明主要涉及选择在每个mipmap级别中采样的位置数量,确定要样本的一个或多个mipmap级别,和/或确定沿着到样本的各向异性方向。因此,在取得位置处的实际样本的情况下没有限制,或用于图形处理器和图形处理系统中的采样纹理的现有过程或过程的过程可以是,并且优选地用于在每个mipmap级别中在期望的位置数量下采集样本。)
363.从以上将理解,在本发明的优选实施方案中,至少在本发明的优选实施方案中,以本发明方式的操作可以确定应该针对两个mipmap级别中的一个或两个中的非整数位置进行样本。在这种情况下,样本的位置数量可以简单地四舍五入到整数值,例如,并且优选地,最接近的整数(或最接近的最高整数或最接近的最低整数)。替代地,在图形处理器和图形处理系统支持从纹理中采取分数样本的情况下,所述操作可以用于在所述mipmap级别或所述级别中针对期望的非整数位置进行样本。
364.一旦已经采取了mipmap级别或级别中的样本,那么那些样本用于提供由图形处理器使用的输出采样纹理值(例如,当生成所讨论的渲染输出时)。
365.可以使用mipmap级别或级别中的样本(组合)以提供由图形处理器使用的输出采样纹理值(例如,当以任何合适的和期望的方式生成所讨论的渲染输出时)。在优选实施方案中,在给定mipmap级别中沿各向异性方向拍摄的样本优选地(适当地)组合在所讨论的mipmap级别内并且用于所讨论的mipmap级别,以便给出所讨论的mipmap级别的组合采样值。因此,用于更加详细的mipmap级别的样本将被适当地组合以为所述更加详细的mipmap级别提供组合的采样值,并且相应地,将适当地组合用于较不详细的mipmap级别的样本以给出较不详细的mipmap级别的(单独)组合采样值。
366.针对两个mipmap级别中的每一个确定的(单独的)组合采样值(在存在时)优选地接着根据细节值的(分数)级别和距所讨论的mipmap级别的距离(所讨论的mipmap级别从期望在所述质地处采样的所述mipmap级别的距离)进行合并,例如,并且优选地使用根据任何
(所述)lod值的分数(一部分)的线性插值来提供最终、输出采样的纹理值。
367.可以组合沿mipmap级别沿各向异性方向拍摄的样本以以任何合适的和期望的方式提供用于mipmap级别的组合采样值。它们优选地基于样本(位置)沿着各向异性方向从投影椭圆的长轴的中心的距离组合。优选地,基于这些因素以适当加权的方式组合样本,并且最优选地确定样本的适当加权平均值。
368.在将采样整数数量的位置以mipmap级别进行采样的情况下,如上所述,那些样本优选地沿着各向异性方向等距间隔开椭圆的中心,并且优选地基于样本(位置)沿着各向异性方向从投影椭圆的长轴的中心的距离来组合(例如,并且优选地通过将样本(位置)的贡献加权到基于样本(位置)距椭圆中心的组合结果)。
369.在样本数量数量的样本的情况下,然后在样本数量介于1与2之间的情况下,当样本的数量从1增加到2时,优选地以优选地逐渐增加彼此的间隔来获取两个样本(直到当采用恰好两个样本时它们恰好是一个纹理时)。对于高于2的样本数量,然后优选地,在现有两个样本的任一侧(并且在所述两个样本之外)添加另外的(例如两个)新样本,因为样本的数量超过两个(并且优选地,间隔开的一个纹素),但是基于要采取的样本的实际数量高于两倍的内插重量是(例如,并且优选地,使得另外的样本的内插重量在实际上将开始为2的样本计数),并且随着要进行的样本的数量增加而逐渐增加(例如,对于样本计数为0.25)。(对应地,在优选的实施方案中,随着样本计数增加到2以上,初始(内部)两个样本的内插重量可以逐渐减小,以便允许额外样本在2中增加的贡献(称重),因为要进行的样本的数量增加(这将有助于提供更平滑的转变,因为样本计数高于2)。)
370.一旦已确定输出的采样纹理值,那么可以并且优选地提供用于图形处理器和图形处理管道的适当元素(例如,对片段着色器)的适当元件。
371.输出采样纹理值可以以任何合适和期望的方式使用,并且应该优选地根据正常纹理映射操作和图形处理器和图形处理系统中的纹理使用来使用。(如上所述,本发明基本上涉及确定输出的采样纹理值如何。然后可以根据需要使用输出值,并且以这种纹理值的正常方式使用。)
372.输出采样的纹理值应相应地根据和基于纹理表示的数据使用。因此,在纹理表示颜色值(例如图像)的情况下,当图形处理器渲染的渲染输出(例如,图像,例如显示的图像)中呈现采样点时,可以适当地使用输出采样纹理值。同样,其中纹理表示其它数据值,例如光或阴影值、深度值等,然后将适当地使用输出采样纹理值,例如以确定和/或设置所讨论的采样位置的照明或阴影效应。当然,其他布置将是可能的。
373.在特别优选的实施方案中,本发明在图形处理系统的图形处理器的纹理映射级(纹理映射/纹理映射电路)中实施。因此,在优选实施方案中,图形处理器包括纹理映射器(纹理映射电路),并且图形处理器的纹理映射器可操作以确定上文所论述的各种各向异性过滤参数,并且设置并选择应该采样纹理的位置数量,以样本纹理等的细节级别如上所述。
374.因此,本发明延伸到,并且优选地包括用于图形处理器的纹理映射电路,所述纹理映射电路包括本发明的任何方面的设备。
375.以及以本发明的方式执行操作所需的特定电路,纹理映射器(纹理映射电路)可以另外包含用于执行纹理映射操作的任何合适和期望的电路、单元和阶段,并以任何合适的和期望的方式执行所需的纹理映射操作。
376.因此,其可以例如并且优选地包括以下中的一个或多个或全部:纹理过滤电路,其用于执行纹理过滤操作(并且可以至少以本发明的方式执行各向异性过滤,但优选地还支持其它过滤操作,例如双线性和三线性滤波);纹理数据获取电路,所述纹理数据获取电路可操作以获取用于纹理过滤操作的纹理数据元素的数据值(例如,并且优选地,经由适当的纹理高速缓存);坐标计算电路(阶段);细节计算电路的级别(阶段);纹理选择电路(阶段);和输出结果提供电路(阶段)。
377.以本发明的方式操作可以以任何合适的和期望的方式触发。在优选实施方案中,响应于适当的纹理映射请求(对于要各向异性地采样的纹理),例如并且优选地对纹理映射阶段(纹理映射电路)做出,来执行它。可以根据需要触发此类请求,例如,并且优选地由图形处理器和图形处理管线的渲染器(例如,片段着色器),例如,响应于以及何时需要执行纹理映射操作来触发图形处理器和图形处理管线的渲染。
378.可以自动触发以本发明的方式的各向异性过滤操作,例如,每当需要各向异性过滤纹理映射操作时。另外或替代地,可以允许以本发明方式的操作由需要图形处理的应用程序控制(例如,通过将其暴露于api),使得应用程序(应用程序编程器)可以随后指定何时应以本发明的方式执行各向异性过滤。
379.当然,其他布置将是可能的。
380.尽管上面已经参考单个单独纹理映射和纹理过滤操作(例如,对于渲染输出中的给定采样位置)描述了本发明,但是实际上当生成渲染输出时,纹理映射操作将针对复数重复,使输出采样位置例如跨所呈现的原始的整个区域。因此,优选地关于多个纹理映射操作执行本发明,例如,并且优选地针对生成的渲染输出中的多个采样位置中的每一个。
381.以本发明方式的操作可以用于任何合适和期望形式的纹理化操作和图形(或其它)处理操作,所述图形(或其它)处理操作可以使用纹理执行,例如,并且优选地当生成用于显示的帧(图像)时,但也当生成其它例如非图形输出时。
382.以及本发明的纹理映射设备,图形处理器可以包括图形处理器(处理管道)可以通常包含的处理阶段、电路和元件中的任何一个或多个或全部处理阶段。因此,例如,图形处理器可以包含原始设置电路、准栅器(电路)和/或渲染器(电路)。另外或替代地,图形处理器可以能够执行光线跟踪和/或混合射线跟踪。
383.在优选实施方案中,图形处理器包括可操作以执行图形渲染操作的渲染器,并且纹理映射器可操作以响应于对来自渲染器的图形纹理化操作的请求而执行图形纹理化操作。渲染器优选地呈可编程片段着色器的形式或包括可编程片段着色器(通过使用相应的执行线程执行片段着色器程序来处理图形片段,用于由图形处理器生成的渲染输出的采样位置)。
384.图形处理器(处理管线)还可包含图形处理管线可包含的任何其他合适的和期望的处理级,诸如深度(或深度和模板)测试器、混合器、图块缓冲器、写出单元等。
385.如果需要,纹理映射器和纹理映射设备也可以是cpu的共处理器,例如(即,与执行渲染管线的cpu耦合)。
386.本发明的图形处理器和/或纹理映射设备可以是并且通常将是整体图形和/或数据处理系统的一部分。因此,本发明还扩展到具有如本文所述的图形处理器和/或纹理映射设备的数据或图形处理系统。
387.数据或图形处理系统可以包括用于存储本文所提及的数据等的存储器或存储器(存储器系统),所述数据可以在图形处理器和纹理映射设备外部。存储器或存储器可以可操作以存储,并且可以存储在纹理化操作中使用的纹理图标集合。
388.因此,如将了解,本发明的实施方案可以在包括存储器和图形处理单元(gpu)(图形处理器)的数据/图形处理系统中实施,所述图形处理单元包括如本文所述的纹理映射设备。在实施方案中,数据/图形处理系统可以进一步包括主机处理器,所述主机处理器执行可能需要由图形处理器进行数据或图形处理的应用,并且指示图形处理器相应地(例如,经由用于图形处理器的驱动器)。系统可以进一步包括适当的存储装置(例如存储器)、高速缓存等。
389.在一个实施方案中,数据或图形处理系统和/或(例如,图形)处理器还包括存储本文描述的数据和/或存储用于执行本文描述的过程的软件的一个或多个存储器和/或存储器装置和/或与该一个或多个存储器和/或存储器装置通信。数据/图形处理系统和/或图形处理器和/或纹理映射设备还可以与主机微处理器通信,和/或具有基于生成的数据显示图像的显示器。
390.在一个实施方案中,本文所述技术的各种功能在单个图形处理平台上执行,该单个图形处理平台生成和输出数据(诸如写入帧缓冲区的渲染片段数据),例如用于显示设备。
391.本发明可实施在任何合适的系统中,诸如实施在合适配置的基于微处理器的系统中。在一个实施方案中,本文所述的技术在基于计算机和/或微处理器的系统中实现。
392.可按照任何期望和合适的方式执行本发明的各种功能。例如,本发明的功能可在需要时实施在硬件或软件中。因此,例如,本发明的各种功能元件和级可包括能够操作以执行各种功能等的合适的处理器、控制器、功能单元、电路、处理逻辑、微处理器布置等,诸如适当专用的硬件元件(处理电路)和/或可被编程为按照期望的方式操作的可编程硬件元件(处理电路)。
393.在这里还应注意,如本领域技术人员将了解,可在给定的处理器上并行地重复和/或执行本发明的各种功能等。同样,如果需要,各种处理阶段可共享处理电路/电路等。
394.此外,本发明的处理级中的任何一个或多个或所有处理级可体现为例如呈一个或多个固定功能单元(硬件)(处理电路)的形式和/或呈可被编程为执行期望的操作的可编程处理电路的形式的处理级电路。同样,可将本发明的处理级和处理级电路中的任何一个或多个处理级和处理级电路作为单独的电路元件提供给其他处理级或处理级电路中的任何一个或多个处理级和处理级电路,和/或处理级和处理级电路中的任何一个或多个或所有处理级和处理级电路可至少部分地由共享的处理电路形成。
395.本领域技术人员还将了解,本发明的所有所描述的实施方案在适当时可包括本文描述的特征中的任何一个或多个或所有特征。
396.根据本发明的方法可至少部分地使用例如计算机程序的软件来实施。因此,本文所述技术的另外实施方案包括:计算机软件,该计算机软件特别适于在安装在数据处理器上时执行本文所述的方法;计算机程序元件,该计算机程序元件包括用于当该程序元件在数据处理器上运行时执行本文所述方法的计算机软件代码部分;和计算机程序,该计算机程序包括适于当该程序在数据处理系统上运行时执行本文所述的一个或多个方法的所有
步骤的代码。数据处理系统可以是微处理器、可编程fpga(现场可编程门阵列)等。
397.本发明还扩展至计算机软件载体,该计算机软件载体包括在用于操作图形处理器、渲染器或包括数据处理器的其他系统时致使与所述图形处理器、渲染器或系统联合地执行本发明的方法的步骤的此类软件。此类计算机软件载体可以是物理存储介质,诸如rom芯片、cd rom、ram、闪存存储器或磁盘,或者可以是信号,诸如通过导线的电子信号、光信号或无线电信号,诸如到卫星的信号等。
398.还将了解,不是本发明的方法的所有步骤都需要由计算机软件执行,并且因此根据更广的方面,本发明提供安装在计算机软件载体上的用于执行本文陈述的方法的步骤中的至少一个步骤的计算机软件和此类软件。
399.本发明因此可合适地体现为用于与计算机系统一起使用的计算机程序产品。此类具体实施可包括固定在有形非暂态介质上的一系列计算机可读指令,诸如计算机可读介质,例如磁盘、cd rom、rom、ram、闪存存储器或硬盘。其还可包括可经由调制解调器或其他接口设备、通过有形介质(包括但不限于光通信线路或模拟通信线路)、或者使用无线技术(包括但不限于微波、红外或其他传输技术)无形地传输到计算机系统的一系列计算机可读指令。该系列计算机可读指令体现了本文先前所述的功能的全部或部分。
400.本领域的技术人员将会理解,此类计算机可读指令可以多种编程语言编写,以与许多计算机架构或操作系统一起使用。此外,此类指令可使用目前或将来的任何存储器技术(包括但不限于半导体、磁性或光学技术)来存储,或者使用目前或将来的任何通信技术(包括但不限于光学、红外或微波技术)来传输。可以设想的是,此类计算机程序产品可作为带有附随的印刷或电子文档(例如,收缩包装软件)的可移动介质进行分发,可与计算机系统一起预加载在例如系统rom或固定磁盘上,或者可经由网络(例如,互联网或万维网)从服务器或电子公告板进行分发。
401.现在将仅以举例的方式并参考附图来描述本文所述技术的实施方案,其中:
402.图1示出了在采样文件时各向异性过滤的原理;
403.图2示出了针对纹理各向异性地采样两个mipmap级别的实例;
404.图3示出了其中可实施本发明的示例性图形处理系统;
405.图4示意性地示出了包括纹理映射器的图形处理器;
406.图5更加详细地示出了示例性图形纹理映射器;
407.图6是示出本发明的实施方案中的各向异性过滤的流程图;
408.图7是示出本发明的实施方案中各向异性过滤参数的确定的流程图;
409.图8示出了在本发明的实施方案中的纹理坐标衍生物的产生;并且
410.图9和图10示出了在实施方案中的各向异性方向的确定。
411.类似的附图标号用于附图中的类似特征(在适当的情况下)。
412.现在将在图形处理系统的背景下描述本发明的若干实施方案。
413.图3示出了其中可实施本发明和本实施方案的示例性图形处理系统1。
414.图1所示的示例性图形处理系统包括主机处理器,该主机处理器包括中央处理单元(cpu)1、图形处理器(图形处理单元(gpu))100、视频编解码器51、显示器控制器55和存储器控制器58。如图3所示,这些单元经由互连件59进行通信并且具有对片外存储器20的访问权限。在此系统中,gpu 100、视频编解码器51和/或cpu 57将生成要显示的帧(图像),并且
显示控制器55然后将向显示器54提供帧进行显示。
415.在使用此系统的过程中,在主机处理器(cpu)57上执行的应用程序60(诸如游戏)将例如需要在显示器54上显示帧。为此,该应用将为在cpu 57上执行的图形处理器100向驱动器61提交适当的命令和数据。驱动器61然后将生成适当的命令和数据,以使图形处理器100渲染适当的帧以用于显示并将那些帧存储在适当的帧缓冲器中,例如存储在主存储器20中。显示控制器55然后将把那些帧读取到用于显示器的缓冲器中,然后那些帧在那里被读出并且显示在显示器54的显示面板上。
416.图4示出了可以在图3的数据处理系统中使用的可以执行纹理映射的示例性图形处理器(图形处理单元(gpu))100。
417.如图4所示,gpu 100包括实施图形处理管道的数据处理电路。管道包括,尤其、可编程(片段)着色器核心104形式的酯交换器102和渲染器。管道使用缓冲区106(例如,在外部存储器108中)用于存储输出阵列(例如,待显示的帧或图像)。
418.gpu 100进一步包括纹理映射器110,并且存储器108还将存储,尤其在执行纹理映射操作时,gpu 100使用的图形纹理。
419.在该系统中,光栅化器102将将输入原语酯化为单独的图形片段以进行处理。为此,光栅化器102将基元酯化到表示渲染输出的采样位置,并且生成表示用于渲染原语的适当采样位置的图形片段。每个片段可以表示单个采样位置或一组多个采样位置。然后将由光栅化器102生成的片段发送到片段着色器(渲染器)104以用于阴影。
420.片段着色器104执行色谱仪102发出的片段的着色器程序,以便呈现(阴影)片段。使用着色器核心中的执行线程处理片段,其中执行用于处理片段的着色器程序的螺纹。针对要阴影的每个采样位置执行线。
421.着色器程序可以包括用于纹理映射操作的纹理化指令,所述纹理映射操作要求由纹理映射器110执行。
422.当片段着色器104遇到纹理化指令时,将纹理化指令从片段着色器104发送到纹理映射器110,请求纹理映射器110执行纹理化操作。
423.当由片段着色器104请求以执行纹理映射操作时,纹理映射器110从存储器108读取纹理(如所需),执行纹理映射操作,并且返回从纹理返回到片段着色器104的(例如rgb颜色)值,以便在遮蔽所讨论的片段和采样位置时使用。
424.然后,来自片段着色器104的“着色”片段采样位置作为输出的一部分存储在缓冲区106中,例如在存储器108中,例如用于后续后处理或显示。
425.图5更加详细地示出了示例性纹理映射器(纹理映射设备)110。
426.如图5所示,纹理映射器110包括多个处理阶段(电路),包括输入请求阶段(电路)200,所述输入请求阶段接受来自渲染器的纹理映射操作请求(例如,图4中的片段着色器104)。之后是坐标计算阶段(电路)201,其例如将在采样纹理时将包括在纹理映射操作请求中的任意坐标转换成在0.0与1.0之间使用的适当典型坐标。
427.然后,细节级别(lod)计算阶段(电路)202可以确定要针对纹理映射操作对纹理进行采样的细节级别(这选择使用的mipmap级别以及在纹理呈mipmap形式的情况下如何在它们之间过滤)。例如,在片段着色器程序本身可以明确地指示要使用的细节级别的情况下,可能不需要这种细节计算级别,或者不以mipmap的形式存储纹理。
428.然后,texel选择阶段(电路)203使用由坐标计算阶段201确定的坐标以确定纹理中的实际纹理(纹理数据元素)(并且如果适当的话,纹理中所确定的mipmap级别)用于纹理映射操作。
429.然后通过高速缓存查找阶段(电路)204获取所需纹理(其数据)。
430.如图5所示,虽然纹理数据将被存储在存储器系统108中,但是当纹理映射器110需要纹理数据时,纹理化操作所需的纹理数据将从存储器108获取,在所述存储器中存储有纹理化数据,并且首先将纹理化存储装置装载到纹理映射器110的纹理高速缓存205中,其中纹理映射器110然后通过高速缓存查找电路204读取纹理数据。从texel高速缓存205使用。
431.如图5所示,纹理映射器110可以相应地包括纹理装载器(纹理el装载电路)206,其可操作以从存储在存储器108中的纹理加载纹理的数据,以存储在纹理缓存205中。还可以存在解压器(解码器)阶段(电路)207,其可以在存储纹理元素高速缓存205中的纹理元素值之前解压缩(解码)存储在存储器系统108中的压缩(编码)格式的纹理。
432.一旦已从纹理高速缓存205获取所需纹理(纹理数据值),它们就通过纹理过滤级(电路)208在所需纹理过滤操作中使用,以生成适当的输出结果,用于被采样的纹理位置(坐标),然后通过输出结果台(电路)209将输出结果适当地包装并且返回到片段着色器。纹理过滤电路208可以例如使用获取的纹理值来执行任何期望的过滤形式,例如双线性、三线性、各向异性或任何其它形式的滤波,以生成期望的过滤样本结果。
433.本实施方案尤其涉及纹理映射器110是执行各向异性过滤以采样纹理的情况。在这种情况下,如图2所示,可以在两个mipmap级别中的每一个中获取样本(包括更加详细的和较不详细的mipmap级别),用于沿着限定的各向异性方向的位置。
434.图6示出了在该实施方案中纹理映射器110的操作。
435.如图6所示,当要执行各向异性过滤(步骤70)时,纹理映射器将首先确定椭圆形占地面积的适当参数,所述椭圆形占地面积实际上对应于采样点到正在施加纹理的表面上的投影(步骤71)。在本发明实施方案中完成的方式将在下文更加详细地描述。
436.然后使用确定的椭圆形占地面积(椭圆的参数)来确定对纹理进行采样的细节级别(lod)、纹理将采样的各向异性方向以及“各向异性度”,其表示沿着纹理中的各向异性方向进行样本的位置数量(步骤72)。再次,在本发明实施方案中完成的方式将在下文更加详细地描述。
437.一旦确定了样本纹理的细节级别,各向异性方向和各向异性度,选择用于纹理的样本的mipmap(步骤73)。
438.根据将采样纹理的细节级别选择样本的mipmap,并且在细节分数级别的情况下,将对应于比确定的细节级别更加详细(即,包括质地的较高分辨率版本)的mipmap级别,并且另一mipmap级别包括比所确定的细节级别更少的(较低分辨率)版本的纹理。
439.在本实施方案中,虽然用于确定对样本的哪个mipmap级别可以是从确定的椭圆参数确定的细节级别的“最终”细节级别,但是优选地,在已经施加了任何调整(如舍入、偏置、夹持等)的情况下,优选地根据从椭圆参数确定的最初确定的“原始”级别的级别确定的细节级别,以及将要施加的任何细节偏置和/或夹具级别,以及将被施加的任何调整(例如,从原始细节级别和任何级别偏置偏置和夹具级别确定的)。
440.然后确定在每个mipmap中应该采样多少个位置(步骤74)。
no.ucb/csd 89/516,computer science division,university of california,berkeley,1989年6月,其全部内容通过引用并入本文。
456.因此,在本实施方案中,一个坐标系中的参数圆:
457.p=(x,y)=(cos t,sin t)
458.用于表示“屏幕”上的圆形像素,其中x和y分别表示“屏幕”的级别轴和垂直轴。然后假设使用线性变换(矩阵)m将该圆p转换为另一坐标系(纹理、u、v的坐标系),使得:
[0459][0460]
这种线性变换将第一坐标系中的圆转换为第二坐标系中的椭圆。椭圆以源(0,0)为中心并且通过点(ux,vx)和(uy,vy)(并且这些点对应于具有90度相位差的参数vaues t)。
[0461]
这意味着在第一坐标系(屏幕)中,点(ux,vx)可以看作为相邻像素到右侧的纹理坐标,并且(uy,vy)可以看作在屏幕上的“电流”像素下方的相邻像素的纹理坐标,假设“电流”像素具有(0,0)的纹理坐标(0,0)。(换句话说,(ux,vx)是屏幕上的纹理坐标的部分导数,并且(uy,vy)是y方向上纹理坐标的部分导数。)
[0462]
然后通过计算(ux,vx)=tx-t0(其中tx是相邻像素在x方向上的纹理坐标,t0是当前像素的纹理坐标)来估计线性变换矩阵m,并且(uy,vy)=ty-t0。
[0463]
根据该线性变换矩阵m,可以找到隐式椭圆系数a、b、c、d、e和f。(conic的隐式方程(其中椭圆是一类)是:
[0464]
ax^2 bxy cy^2 dx ey-f=0。)
[0465]
在这种情况下,假设投影椭圆将在原点上居中,因此系数d和e都将等于零,从而给出典型锥形:
[0466]
ax^2 bxy cy^2=f
[0467]
该椭圆的隐式方程可以通过将p=p’m-1
代入恒等式pp
t
=cos2t=sin2t=1
[0468]
得到
[0469][0470]
p

qp

t
=1
[0471]
其中
[0472][0473]
q是二次形式的隐式矩阵,并且被定义为:
[0474]
pqp
t
=f
[0475][0476]
因此,隐式椭圆函数的系数可以如下确定:
[0477]
a=vx^2 vy^2
[0478]
b=-2*(ux*vx uy*vy)
[0479]
c=ux^2 uy^2
[0480]
f=(ux*vy-uy*vx)^2
[0481]
由于椭圆(ux,vx)和(uy,vy)的这些基础向量不一定彼此垂直(并且实际上,许多不同的基础向量描述相同椭圆),可以确定对应于(投影)椭圆的次要轴和长轴的一组基础向量(并且使得椭圆的短轴和长轴的长度将是那些向量的长度)。
[0482]
通过利用正交基向量确定新线性变换矩阵m,从隐式椭圆系数a、b、c和f发现对应于椭圆的次要和长轴的基础向量。此矩阵可以以下形式编写:
[0483][0484]
如上所述:
[0485][0486]
因此,在这种情况下,q可以发现为:
[0487][0488]
以下λ是对角线的,并且r正交。λ和r然后从锥形矩阵中提取q(从前述计算中已知)。为此,对角线形式q已确定:
[0489]
q=s-1
as
[0490]
其中a是对角线矩阵q和列s是对应的本征向量。选择本征向量具有单位长度,以便r=s和λ-2
=a可以相等。
[0491]2×
2对称矩阵q的本征值为:
[0492][0493]
其中
[0494]
p=a-c
[0495]
q=a c
[0496][0497]
并且
[0498][0499]
当t≠0时,q的单位特征向量是以下列:
[0500][0501]
然后,m的特征向量由a=a-1/2
给出:
[0502][0503]
这意味着基质m可以发现为:
[0504][0505]
其中:
[0506]
p=a-c
[0507]
q=a c
[0508]
t=sgn(p)*sqrt(p^2 b^2)
[0509]
此矩阵m假定f=1,但如上所述,f在表面中:f=(ux*vy-uy*vx)^2。
[0510]
因此,基质m被乘以与f一起找到用于椭圆的实际正确缩放的正交基向量:
[0511]
ux'=f*sqrt((t p)/(t*(q t)))
[0512]
vx'=f*sgn(b*p)*sqrt((t-p)/(t*(q t)))
[0513]
uy'=-f*sgn(b*p)*sqrt((t-p)/(t*(q-t)))
[0514]
vy'=f*sqrt((t p)/(t*(q-t)))
[0515]
这可以被视为衍生向量的正交集合。
[0516]
从此可以看出,载体的长度是:
[0517]
lx=sqrt(ux'^2 vx'^2)=f*sqrt(((t p)/(t*(q t))) ((t-p)/(t*(q t))))=f*sqrt(2/(q t))
[0518]
ly=sqrt(uy'^2 vy'^2)=f*sqrt(((t-p)/(t*(q-t))) ((t p)/(t*(q-t))))=f*sqrt(2/(q-t))
[0519]
各向异性度是:
[0520]
aniso_degree=major_axis_radius/minor_axis_radius
[0521]
为了确定这一点,确定哪个lx和ly是长轴和短轴。已知q必须是正的并且t可以是正的或负的。如果t为正,则必须是长轴,并且lx必须是短轴。如果t为负,则lx必须是长轴并且必须是短轴。因此,可以定义:
[0522]
t=abs(t)=sqrt(p^2 b^2)
[0523]
major_axis_radius=f*sqrt(2/(q-t))
[0524]
minor_axis_radius=f*sqrt(2/(q t))
[0525]
然后可以将各向异性度确定为:
[0526]
anisotropy_degree=sqrt((q t)/(q-t))
[0527]
并且细节级别(lod)可以确定为:
[0528]
lod=log2(minor_axis_radius)=log2(f*sqrt(2/(q t)))=log2(f) 0.5-0.5*
log2(q t)
[0529]
现在将参考图7、图8、图9和图10更加详细地描述根据本实施方案中的上述技术的原理确定各向异性度、各向异性方向和细节级别的方式。
[0530]
图7示出了本实施方案中由纹理映射器110执行以确定各向异性过滤参数的过程,即细节级别、各向异性度和各向异性方向(基本上对应于关于图6中的步骤71和72的纹理映射器的操作)。
[0531]
图8、图9和图10更加详细地说明图7中所示的操作的某些方面。
[0532]
当对各向异性过滤的纹理样本的纹理化请求到达纹理映射器时,图7中的过程开始(步骤80)。这基本上对应于图6中的步骤70。
[0533]
然后存在确定(参数)的步骤81-83的序列,所述椭圆形占地面积对应于待采样的位置的投影到要施加纹理的表面上的投影。这些步骤基本上对应于图6中的步骤71。
[0534]
如图7所示,椭圆形占地面积的确定通过分别确定屏幕空间(渲染输出的)的x和y方向上的纹理坐标的衍生物dtdx和dtdy来开始(步骤81)。衍生物在纹素坐标空间中给出,使得它们指示屏幕上的当前采样位置的纹理坐标(在渲染输出)上的纹理坐标与分别在x和y方向上的屏幕上的下一采样位置的纹理坐标之间的纹理数(并且因此可以是分数值)。
[0535]
在本实施方案中,通过将采样位置分组为2
×
2采样位置“量子”来确定屏幕空间的x和y方向上的纹理坐标导数(渲染目标空间)。然后将x导数确定为2
×
2四极之上的顶部两个位置的纹理坐标(x方向)之间的坐标差,并且y导数被确定为2
×
2四极中的两个左手位置的纹理坐标之间的坐标差(y方向)。
[0536]
图8示出了这个,并且示出了2
×
2采样位置四极102的x导数100和y导数101。
[0537]
然后使用所述确定的纹理坐标导数来确定隐式函数ax^2 bxy cy^2=f的系数a、b和c以及系数f的平方根,其限定将施加纹理的表面上的采样位置的椭圆形占地面积(步骤82)。
[0538]
在本实施方案中,如下从纹理坐标导数确定椭圆系数a和c:
[0539]
a=dtdx.y^2 dtdy.y^2
[0540]
c=dtdx.x^2 dtdy.x^2
[0541]
椭圆系数b相应地由纹理坐标的导数确定,如下:
[0542]
b=-2*(dtdx.x*dtdx.y dtdy.x*dtdy.y)
[0543]
然后根据纹理坐标的导数如下确定椭圆系数f的平方根(sqrt(f)):
[0544]
f_sqrt=abs(dtdx.y*dtdy.x-dtdx.x*dtdy.y)
[0545]
然后使用如此确定的系数a、b和c来确定适当的椭圆形状参数p、q和t(步骤83),如下:
[0546]
p=a-c;
[0547]
q=a c;
[0548]
t=sqrt(p*p b*b);
[0549]
这些步骤因此确定采样点投影到要施加纹理的表面上的椭圆形占地面积。
[0550]
然后使用如此确定的椭圆形占地面积(椭圆形占地面积的参数)来确定各向异性度(用于对纹理进行采样的位置数量)、各向异性方向(向量沿着其在纹理中采取样本的方向)以及样本纹理的细节级别(从而确定纹理到样本的哪个mipmatp)。
[0551]
图7中的步骤84-89示出了如何在本实施方案中完成这一点。这些步骤对应于图6中的步骤72。
[0552]
如图7所示,第一步骤是确定各向异性度和各向异性向量(各向异性方向)(步骤84)。
[0553]
各向异性向量是描述椭圆的长轴的方向的向量,所述长轴是采样点投影到要施加纹理的表面上。
[0554]
在本实施方案中,根据如下的椭圆系数确定各向异性向量(方向)(x和y分量、amin_vect.x和amin_vect.y,对于各向异性方向上的单位向量):
[0555]
if(a》c)
[0556]
{
[0557]
aniso_vec.x=-b
[0558]
aniso_vec.y=a-c root
[0559]
}
[0560]
else
[0561]
{
[0562]
aniso_vec.x=a-c-root
[0563]
aniso_vec.y=b
[0564]
}
[0565]
inv_len=1.0/sqrt(aniso_vec.x^2 aniso_vec.y^2)
[0566]
aniso_vec.x=aniso_vec.x*inv_len
[0567]
aniso_vec.y=aniso_vec.y*inv_len
[0568]
其中:
[0569]
root=sqrt((a-c)^2 b^2)
[0570]
这可以在硬件中执行,尤其是考虑到最终的asin_vec不需要具有非常高的精度。
[0571]
图9和图10示出了各向异性方向如何更加详细地以这种方式确定。
[0572]
对于形式ax^2 bxy cy^2=f的椭圆,如果a≤c,则椭圆的长轴的角度θ由以下给出:
[0573]
θ=arctan(b/(a-c))/2
[0574]
对应地,如果a》c,则上述θ实际上是短轴的角度,因此它应该旋转90度(pi/2弧度)以使其成为主轴的角度:
[0575]
if(a》c)θ=θ (pi/2);
[0576]
然后,各向异性方向是具有该角度的向量:
[0577]
vec2 aniso_vect;
[0578]
aniso_vec.x=cos(θ);
[0579]
aniso_vec.y=sin(θ);
[0580]
然而,此计算涉及一个arctan、一个cos和一个sin。这些是在硬件中实施的非常昂贵的计算。
[0581]
图9示出了具有角度θ*2的向量v可以相对简单的方式从椭圆系数a、b和c确定:
[0582]
v=vec2(a-c,b)。
[0583]
然而,各向异性方向需要具有角度θ的向量。
[0584]
图10示出了可以通过添加级别向量h(角度0)来生成在长轴(θ)的方向上的向量m(并且因此给出正确的各向异性方向)。具有与向量v相同的长度(即,sqrt((a-c)x(a-c) bxb))和具有与向量v的x-分量相同的符号的x分量,即级别向量:
[0585]
h=vec2(sqrt((a-c)*(a-c) b*b,0),
[0586]
至所述向量v。
[0587]
因此:
[0588]
m=v h
[0589]
其在长轴(θ)的方向上(并且因此给出正确的各向异性方向)。
[0590]
然后可以将向量m归一化为1的长度以获得期望的各向异性向量(方向),即:
[0591]
//确定各向异性向量方向
[0592]
p=a-c;
[0593]
t=sqrt(p*p b*b);
[0594]
if(p》=0)
[0595]
{
[0596]
aniso_vec.x=-b;
[0597]
aniso_vec.y=p t;
[0598]
}
[0599]
else
[0600]
{
[0601]
aniso_vec.x=p-t;
[0602]
aniso_vec.y=b;
[0603]
}
[0604]
//将向量长度归一化为1.0
[0605]
浮法长=sqrt(aniso_vec.x*aniso_vec.x aniso_vec.y*aniso_vec.y);
[0606]
aniso_vec=aniso_vec/length;
[0607]
(p和t的确定也用于确定各向异性度,因此可以共享硬件。)
[0608]
(从以下可以看出,将角度0的向量添加到角度θ*2的向量(其中两个向量具有相同长度)具有提供具有角度θ的向量的效果:
[0609]
让为角度θ的向量,其表示和
[0610][0611]
随着和相同,这个量值不影响角度(因为其简单地限定缩放,其不影响形状),然后如果量值被假设为1,并且角度θ为θ0=0。添加的向量然后可以被定义为:
[0612][0613][0614]
[0615][0616]
从切线半角公式:
[0617][0618]
可以看出:
[0619][0620]
.)
[0621]
在本发明实施方案中从椭圆系数a、b和c以及椭圆系数f(sqrt(f))的平方根中确定给出待采样的位置数量的各向异性度(aniso_degree),如下:
[0622]
root=sqrt((a-c)^2 b^2)
[0623]
aniso_degree=(a c root)/(2.0*f_sqrt)
[0624]
此处应注意,各向异性度的这种确定使用系数f的平方根(f_sqrt)。这简化了硬件中的确定的实施方式。此确定的另一个优点是其仅使用系数f(f_sqrt)和数值稳定的术语a c root的平方根。这是在数值上稳定的,因为a和c和根都是非阴性的,因此不存在产生小值的两个大值的差异。(这应与包含上文讨论的q-t的公式对比,其中当q和t在值接近时(由于差异,随后是小的),可以存在数值不稳定性。)本实施方案提供的更大数值稳定性需要更少的硬件精度。
[0625]
在本实施方案中,如果确定的各向异性度不是数字(nan),则其被设置为1,从而实际上禁用各向异性滤波,即:
[0626]
if(isnan(aniso_degree))aniso_degree=1
[0627]
一旦确定各向异性度,则如有必要,将如此确定的各向异性度夹持在最大允许的各向异性度上(步骤85)。也就是说:
[0628]
if(aniso_degree》max_aniso)aniso_degree=max_aniso
[0629]
以这种方式使用最大允许各向异性度允许对各向异性过滤进行封盖的计算成本。可以例如通过需要图形处理的应用程序来设置最大允许各向异性度。
[0630]
此外,如果确定的样本数量(确定的各向异性度)小于1,则确定的各向异性度被设置为1,即:
[0631]
if(aniso_degree is《1.0)aniso_degree=1.0。
[0632]
然后,所述方法的最终阶段以确定对质地进行采样的细节级别。
[0633]
如图7所示,两个不同的过程用于确定细节级别,其中假定各向异性度在步骤85处被钳位到最大允许的各向异性度,并且假设在步骤85处将各向异性度不被夹持到最大允许各向异性度。
[0634]
特别地,如果未夹持各向异性度(步骤86),则确定细节级别:
[0635]
lod_unclamped=0.5*(2.0*log2(f_sqrt) 1.0-log2(a c root));
[0636]
并且如果夹持各向异性度(步骤87),则确定细节级别:
[0637]
lod_clamped=0.5*(log2(a c root)-1.0)-log2(max_aniso);
[0638]
然后,将两个不同级别的细节测定的更高视为使用的细节级别(步骤88):
[0639]
lod=max(lod_clamped,lod_unclamped)
[0640]
因此,在本实施方案中,如下确定细节级别:
[0641]
lod_clamped)=0.5*(log2(a c root)

1.0)-log2(max_aniso)
[0642]
lod unclamped=0.5*(2.0*log2(f_sqrt) 1.0-log2(a c root))
[0643]
lod=max(lod_clamped,lod_unclamped)
[0644]
在本实施方案中,当f_sqrt为零时,lod_unclamped被设置为非数值(不是数字),使得在该情况下,将使用lod_clamped。
[0645]
另外,如果lod结束为纳米,则将其设置为无穷大:
[0646]
lod=isnan(lod)?inf:lod;
[0647]
这种用于确定细节级别的方法在硬件中是廉价的,因为细节值的级别不是非常高的精度,并且可以计算基底-2对数。
[0648]
一旦已经确定了细节级别、各向异性度和各向异性方向(步骤89),则可以基于那些样本相应地对纹理进行采样(上文论述的图6中的步骤73)。
[0649]
以下是用于执行图7中所示的过程的实例伪代码。
[0650]
[0651]
[0652][0653]
当然,其他布置将是可能的。
[0654]
从以上将理解,本发明在其优选实施方案中至少可以提供用于各向异性滤波的改进技术,所述改进技术可以例如在执行各向异性滤波时减少处理负担。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献