用于提供可控制的纹理采样的系统和方法

文档序号:6445636阅读:156来源:国知局
专利名称:用于提供可控制的纹理采样的系统和方法
技术领域
本发明旨在提供一种用于对计算机图形进行纹理采样的系统和方法。更具体来说,本发明旨在提供一种用于进行可控制的纹理采样的系统和方法。
背景技术
纹理映射允许彩色或纹理化的信号在几何图形上成像,从而在粗糙的三角形网孔上出现细节。使用纹理一般来讲比精炼载体几何图形来表示每个顶点的信号更有效。尽管光栅化硬件已经支持基本纹理映射许多年,但是近年来却开始提供更强大的功能。
图1显示了纹理映射过程的概述。给定纹理图200,具有纹理元素202,纹理映射根据三角形的某些几何学配置将纹理图200的信号应用于网孔的三角形210,和/或应用一些其他变换,如阴影、光照等,这会将纹理元素202映射到像素222。
纹理映射是一个涉及Nyquist理论的问题,到了将要避免混叠的程度,这说明,为准确地复制模拟波形,应该至少以其最高频率的两倍的速率对模拟信号进行采样,以便能够以很高的准确性来表示数字域中的信号。然后利用数字模拟转换技术准确地重建原始模拟信号。如果使用的采样率不足,那么结果就会产生混叠,混叠是显示为较低频率噪声的不正确地采样的高频率的信息。
采样问题还与纹理映射一起产生。纹理映射的过程对纹理图采样得到屏幕像素,到可能的程度,应该以充分高的采样率对纹理图数据进行采样,以包含最高频率信息。在这点上,通常,一定数量的像素表示的屏幕对象使用具有不同数量的纹理元素(texel)的纹理图。当纹理图具有比像素间距更多的纹理元素时,单个像素可以映射到多个纹理元素,当纹理图具有比像素间距更少的纹理元素时,多个像素可以映射到单个纹理元素。当纹理间距和图片间距之间没有准确的映射时,就可能会出现显示器质量问题。
实际上,纹理图可能不能够有效地将相应的图像细节映射到指定的像素区域,或者相反,较小的像素区域可能不能够使用较大/较丰富的纹理图中的所有纹理细节。
具体来说,在纹理图相对于正在被映射的像素区域太小的情况下,那么同一纹理元素将映射到相邻的像素,这会导致在查看图像时出现浓淡不匀的效果。在其他情况下,如果多个纹理元素映射到同一像素,通常需要从纹理图中选择可能映射到给定像素的纹理元素组中的准确的纹理元素,然后应用到该像素。如此,这是一个依赖于算法的过程,并可能导致被称为纹理眩晕和像素弹出的人为因素,这两种情况在相机移动时非常明显。此外,即使对于映射存在大体上类似的或相同数量的像素和纹理元素,也可能有某些变换,或函数,在呈现之前应用到纹理元素,在这种情况下,某些算法仍必须决定像素数据相对于纹理元素数据应该来自哪里。
为了说明可能出现的问题,可以按如下方式考虑纹理元素数量大于像素数量的情况。假设在三维(3-D)场景中有一个正方形广告牌表面,包含两个等边三角形,其特征在于,正方形是100×100像素。如果一个人在100×100像素正方形区域之上应用包含200个水平红色和蓝色条带的纹理图,一旦应用到广告牌,纹理的全部200个条带都无法辨别,因为纹理具有比它所应用的像素区域更多的样本。某些中间纹理数据不会在映射中使用,并且本质上将被忽略。
随着一个人的3-D视点在广告牌上移动,如果在一个游戏中导航,例如,一个叫做像素弹出的现象就会发生,这是纹理的条带与广告牌像素时而对齐时而不对齐所造成的。这种是纹理采样率不足以描述该场景的细节的情况。这是可能产生的一种人为因素的说明,还可能由于拙劣的纹理采样产生其他类型的人为因素。
有多种方法最大限度地降低由纹理采样率不足而引起的呈现人为因素,通常以筛选和重新采样的形式。在诸如点采样之类的简单纹理化方法中使用的两个筛选方法是放大和缩小,它们会改变纹理采样方法以帮助避免上文描述的问题。
缩小算法使用于多个纹理元素可以映射到单个像素的情况,它可以从可以映射到像素的一组纹理元素中选择最佳匹配的纹理元素。当多个像素可以映射到单个纹理元素时使用放大技术,它将单个纹理元素映射到多个像素。有许多应用纹理的方法,它们在速度和质量方面有所不同,包括点采样、双线性筛选、三线性MIP映射、各向异性筛选和抗混叠技术。
向一个表面应用纹理的最基本的途径是点采样,该方法使用“最近邻域”采样方法。当呈现器获取一块纹理时,它从具有(u,v)坐标的纹理图抓取纹理样本,该坐标将最近的区域映射到像素的坐标(像素中心),并将它应用到像素。这种方法在图2A中显示,其特征在于,从像素间距到纹理元素间距的映射的相关的位置位于位置P1。这里,由于最靠近的纹理元素是T1,因此选择了T1。虽然这种方法在需要从纹理存储器读取的纹理元素数量方面要求最低量的存储器带宽,即,每一个像素一个,结果通常会导致上文所讨论的人为因素,由于样本不足,即,屏幕像素不足以描述纹理。但甚至是第一代个人计算机(PC)3-D硬件也具有帮助清理的功能,或者至少在一定的程度上,即,通过利用双线性筛选,来隐藏这些采样问题。
双线性筛选不只是抓取纹理上的最近邻域,而是读取距离像素中心最近的四个样本,并使用这些颜色值的加权平均值作为最后的纹理颜色值。如此,如图2B所示,获取T1、T2、T3和T4的加权平均值,其特征在于,权重基于从像素中心到四个纹理元素中心的距离。对那些一般了解图形处理技术的人已知的双线性筛选的示范等式如下ca=pi,j·α+(pi,j+1)·(1-αa)cb=pi+l,j·α+(pi+1,j+1)·(1-αa)F=lrp(ca,cb)·αb,其中lrp是当今的图形处理单元(GPU)轻松地理解的线性插值函数。视觉网络效果是除去点采样所发生的很多纹理人为因素,但由于它只是与单个纹理图一起使用的四开口筛选,因此双线性筛选的效果是有限的。
改善纹理图像质量的另一种方法是被称为MIP映射的技术,其中,呈现器制造原始纹理的多个副本,每一个后续的MIP图的分辨率都正好是前面一个的分辨率的一半。这有效地成为一种3-D纹理,其特征在于,有两个标准坐标(u,v),但还有第三个坐标,d,用于基于哪一个图分辨率将最匹配要映射的像素区域来选择测量哪一个MIP图。在一个战斗机接近于观察照相机的情况下,将选择一个非常详细的纹理图,但随着飞机的飞走,将使用较小和不太详细的图。
随着d坐标增大,将使用更小的MIP图。d坐标的派生趋向于复杂化,并依赖于实现方式,但一般来说涉及基于要覆盖的像素区域计算出将从特定MIP图选择产生多大的纹理放大或缩小。如此此方法选择具有最小的纹理放大和缩小的MIP图。如图2C所示,MIP映射的问题是选择哪一个纹理200a、200b、200c等用来表示在呈现像素时220的像素数量为最佳。
有几个不同的应用程序可以使用MIP图的途径,并且它们通常依赖于图形硬件支持情况。在某些情况下,应用程序可以选择(A)选择最对应于要映射的像素区域的单个图,(B)对该图中的纹理元素应用双线性筛选,然后(C)对它们的对应的像素应用所产生的平均纹理元素。然而,双线性MIP映射所存在的视觉问题可能会在移过场景时在图边界发生。例如,当在一个游戏中沿一条车道驾驶时,一个人可能看到车道纹理上的可见的破裂。这可能是由于MIP图切换造成的。
通常使用的MIP映射的较高的质量方法叫做三线性MIP映射,该方法可以帮助减轻上文讨论的MIP图边界问题。这种筛选方法从距离像素最近的两个MIP图获取两个双线性样本,每一样本使用四个纹理元素样本,其中,一个纹理图的分辨率比要映射的像素区域稍微大一点,另一个的分辨率稍微小一点。然后,三线性算法使用加权平均值将两个双线性筛选的纹理元素组合到产生的纹理化像素中,其分辨率比较靠近像素区域的图的权重较大。
然而,甚至三线性MIP映射也存在某些缺点,这些缺点通常与细节水平(LOD)偏差有关。每一个MIP图都具有关联的LOD,并且偏差必须与从两个不同的图获取的两个双线性筛选样本之间的平均值的权重因数有关。如果LOD偏差“向上”太多,对平均值求权重更趋向于较小分辨率的图,可能会产生纹理模糊。如果LOD偏差“向下”太多,对平均值求权重更趋向于较大的MIP图,混叠,以及时间混叠,如纹理闪烁/收缩可能会产生。如此,LOD偏差会改变d值,导致使用较小或较大的图,虽然d值仍在开发时预先配置。这些技术所存在的主要问题是双线性或三线性筛选的各向同性的性质。在纹理中沿着一个轴的放大/缩小可能与沿着其他轴的放大/缩小大大地不同,从而可能导致沿着一个轴产生混叠并且在其他轴中产生模糊。
还有另一个筛选技术叫做各向异性筛选,该技术尝试解决双线性和三线性筛选的各向同性性质。各向异性筛选的一种形式使用MIP图采样,但不是采用八个样本,而是采用16个样本。在使用各向异性筛选时,一个人为呈现器指定各向异性的度数是什么,这是在其图像质量开始下降之前纹理可以伸展多远的比例。
在另一种形式的各向异性筛选中,沿着某种角度多次执行双线性筛选。这可能会在像素呈现时“拖尾”是自然现象的情况下比较有用,例如,在赛车视频游戏中在道路上飞速前进的情况下。当纹理化的多边形与屏幕的平面成一个斜角时,对应于映射到纹理的屏幕像素的区域变长,即,不再是正方形。比较完美的方法在此区域使用纹理元素的古怪形状的集合,并将它们混合在一起以产生最后的结果。对于此采样区域计算要使用的正确的形状,以及它应该有多长,是很难的问题。任何当前已知的完成此任务的算法都将它们的计算只基于屏幕像素对多边形纹理元素对齐方式的相对几何形状,没有一种方法提供能使开发人员可预测地/智能地控制该过程的灵活性。
这种形式的多次执行双线性筛选的各向异性采样如图2D所示,对于将要沿着由比例Δv/Δu定义的角度θ各向异性筛选的点P1a,以及由Δv和Δu的大小定义的点P1a、P1b、P1c等之间的步长s,根据要呈现的三角形的某些前缀几何方面。沿着角度θ的椭圆形状定义了P1b和P1c的定位。然后,对于Pla、Plb和Plc中的每一个,执行双线性筛选,对于此示例,以加权的方式,将由四个组成的对应的组分别混合在一起(A)T14、T11、T15和T12,(B)T11、T12、T6和T5以及(C)T7、T6、T8和T1。
在该方向上使用更多样本时,纹理将必须伸展以适合将要应用它的表面,各向异性筛选可以比双线性或三线性筛选获得更清晰的图像质量,并且还会避免点采样所产生的纹理闪烁。还应注意的是,以一个角度显示的各向异性筛选的文字,如在赛马游戏的广告牌中,或在“星球大战”影片的开始,比用其他筛选方法更清楚地呈现。
一般来讲,图形应用程序编程接口(API)具有单个顶点存储两个或更多纹理地址以便在多纹理化效果中使用的规定。在早期,使用多纹理化来创建使用灯光图的光照效果,但一直应用它来达到诸如块形映射之类的额外效果。这些多纹理化功能最终迫使3-D芯片制造商将芯片资产投入到创建并行像素管道,在最新的几代芯片中,每一个时钟每一个像素处理多个纹理元素。
具有能够每一个像素处理多个纹理元素的并行管道所获得的优点是,多纹理化操作通常可以在单个时钟周期内完成,而不必须执行其中一个场景中每一个像素绘制多次的多通道呈现。对于芯片必须制造以呈现一个场景的每一个额外通道,其有效像素填充速率除以需要制造的通道的数量。因此,如果具有填充速率500Mpixels/sec的芯片必须制造两个通道才能呈现具有多纹理化效果的场景,那么该芯片的有效填充速率被减少到250Mpixels/sec。如果它制造四个通道,则填充速率会下降到125Mpixels/sec。如此,并行管道还会大大地提高图形呈现的效率。
多纹理化与普通单纹理化的操作方式的区别不是那么大,只是单独的纹理必须混合在一起,然后与浓淡处理产生的现有的像素颜色混合。然而,将在一个场景中使用的纹理的数量翻倍或翻三倍会显著提高获取额外的纹理所需要的帧缓冲器带宽的量,并且如果制造了多个通道,曾经存在总体性能可能会下降的顾虑。然而,最近几年非常快速的图形处理器的发展已经使这些顾虑成为多余。
纹理化,以及多纹理化,可用于创建范围广泛的视觉效果,基本面的描述只是冰山一角。开发人员还发现了另一种创建纹理的途径开发人员不是存储“罐装的”位图,而可以创建一个以过程方式创建纹理的小程序。此技术已经用于创建任何事物,从大理石面,到大型户外环境中的地域纹理,到流水的效果。
许多应用程序寻求用3-D处理的另一个过程是设置基调。尝试使游戏玩家沉浸在开发人员想象的世界内是特别重要的。获得不同的基调的一个有用工具是雾,雾还可以帮助给一个场景提供一个景深的补充感觉。
雾可以以多种不同的方式来实现,通常必须处理的变化是雾如何变深。两个非常常见的方法叫做线性和指数雾,它们分别按线性和指数方式缩放,正如它们的名称所暗示的。雾还可以每一个顶点或每一个像素地应用,正如3-D中的大多数事物一样,每一个像素看起来更有说服力,但计算起来更昂贵。
应用雾效果的更高级方法叫做基于范围的雾,该方法传统上在消费类3-D芯片中无法使用,但随着DirectX8中的顶点阴影程序的问世,基于范围的雾是一个选项。另一种方法叫做雾表,其中,雾值存储在一个查询表中,然后应用到每一个像素。
但不管是何种技术,雾都是一个对象有多远的函数,通常由其z值判断,该值是观察照相机的距离。然后计算一个雾因素,无论是线性地还是指数地计算,然后使用混合操作将雾量(颜色)和照亮/浓淡处理/纹理化像素颜色组合起来,应用到像素。如果雾是每一个顶点地执行的,那么雾操作将成为光照计算的一部分,并使用Gouraud浓淡处理跨每一个三角形地插入。
雾的另一个实际用途是允许位于剪裁平面远处的对象优雅地“渐隐”而不只是从场景中突然消失。雾还可以用于允许呈现器只需绘制相对来说与观察照相机比较靠近的实际对象。如此,当雾值靠近或达到零(雾值通常是0和1之间的浮点值,0是绝对雾,1是没有雾),对象本质上被丢弃,没有其他呈现工作需要完成。
还存在用于应用透明和半透明的技术。与不透明对象不同的是,一般来讲,透明对象必须按深度以背对面的顺序排序,以在执行混合操作时与透明对象混合的基本颜色可用。有多个公式用于计算一个对象的半透明度,但一个常用的公式是co=α·cs+(1-α)·cd,其特征在于co=像素的最后的颜色α=阿尔法值(在0和1之间)cs=透明像素的颜色(叫做源)以及cd=封闭像素的颜色(叫做目标)。
此公式是两个像素调制的总和,其中,阿尔法值被不同地应用到两个像素,然后,产生的值相加在一起以提供最后的像素颜色。
如此,有无数技术可以与对计算机图形进行纹理采样一起应用;然而,至今为止,开发人员在开发时选择的无数技术中的任何一个技术是固定的,没有太大的灵活性。因为某些变量和直观推断对于某些图形的情况是有用的,而对另外一些图形却没有用,最终质量结果可能是一个大杂烩,即使处理功率越来越高。相应地,提高应用到该过程的前端的纹理采样算法的智能是理想的。鉴于朝向拐点-函数GPU的趋势越来越显著,理想的情况是,暴露可控制的纹理采样以便开发人员动态地应用动态智能以有效的方式处理不同的情况。随着更多的考虑材料属性、曲面、容量纹理、并且具有更复杂的单通道纹理混合的高级的可编程的每像素浓淡处理和光照算法的出现,能使开发人员对纹理采样过程进行控制变得越有必要。可控制地将诸如模糊,或拖尾,或闪烁之类的人为因素引入到呈现的图像也可能是理想的。相应地,对于下列各项中的任何一个或多个操作系统、驱动程序代码、应用程序编程接口、工具包和/或图形管道本身中的功能,包括GPU或其他协同处理设备,提供一个提供可控制的纹理采样能力的机制是理想的。

发明内容
鉴于前述的情况,本发明提供在计算机系统中用于对计算机图形进行可控制的纹理采样的系统和方法。在各个实施例中,提供了用于控制纹理采样的改进的机制,它们能使3-D加速器硬件大大地提高呈现时的逼真度,包括针对下列各项的改进的机制(1)运动模糊;(2)生成各向异性表面反射;(3)生成表面自投阴影;(4)光线投射容量采样;(4)自投阴影容量呈现和(5)自投阴影容量光线投射。在补充现有的纹理采样技术时,可以替换和/或修改用于纹理采样的参数。
在各个实施例中,提供了方法、装置、计算机可读的介质和协同处理设备,它们能进行可控制的纹理采样,包括指定在对纹理图进行纹理采样时利用的采样区域的参数,以及根据采样区域的指定参数对纹理图进行纹理采样。
下面将描述本发明的其他特征和实施例。


下面将参考附图进一步描述根据本发明的用于提供可控制的纹理采样的系统和方法图1提供了在一个计算机图形系统中进行纹理采样的过程的概述;图2A提供了在计算机图形系统中进行纹理采样时利用的现有的点采样过程的概述;图2B提供了在计算机图形系统中进行纹理采样时利用的现有的双线性筛选过程的概述;图2C提供了在计算机图形系统中进行纹理采样时利用的现有的MIP映射过程的概述;图2D提供了在计算机图形系统中进行纹理采样时利用的现有的各向异性筛选过程的概述;图3A是表示可以在其中实现本发明的具有各种计算设备的示范网络环境的方框图;图3B是表示可以在其中实现本发明的示范非限制性计算设备的方框图;图4A显示了在其中提供了可控制的纹理采样的本发明的一个
具体实施例方式
概述提供了一种用于进行可控制的纹理采样的机制,该机制能使3-D加速器硬件大大地提高呈现时的逼真度,打开了在3-D硬件中使用光线跟踪计算的途径。直到现在,这样的方法限于与主机处理器一起工作的软件呈现器,大大地减慢了图形管道。在这点上,当前,3-D图形芯片具有一个叫做取样器的装置,用于在呈现期间提取多边形上的纹理的颜色。由于呈现的像素的位置一般来讲不完全对应于纹理中的纹理元素的位置,因此涉及一些工作。纹理采样可以使用在背景部分描述的诸如点采样、双线性筛选、MIP映射和各向异性筛选之类的技术以及其他技术以各种成熟级别进行。这样的现有技术都具有固定的应用范围,并不适用于所有的情况。此外,目前的各向异性筛选技术可以消除模糊效果,而开发人员实际上可能希望创建模糊效果。相应地,本发明向开发人员暴露了以前固定的参数,以便在对纹理采样过程的控制水平方面为开发人员提供前所未有的智能。在各个实施例中,本发明对于各种纹理效果非常有用。此外,本发明可以用软件、硬件或软件和硬件两者来实现,效果是相同的。例如,一些实现详细信息可以在诸如GPU之类的协同处理芯片中实现,而其他一些信息可以通过API工具包、操作系统、驱动程序、可下载的代码等被暴露给图形开发人员。
示范联网和分布式环境一个普通的精通本技术的人可以理解,计算机或其他客户端或服务器设备可以作为计算机网络的一部分来部署,或在分布式计算环境中部署。在这点上,本发明涉及具有许多内存或存储单元的任何计算机系统,以及可能与纹理采样过程一起使用的跨许多存储单元或卷发生的许多应用程序和进程。本发明可以适用于具有远程或本地存储并具有在网络环境或分布式计算环境中部署的服务器计算机和客户端计算机的环境。本发明还可以应用于单独的具有编程语言功能、用于生成、接收和传输涉及远程或本地服务的信息的解释和执行能力的计算设备。
分布式计算通过计算设备和系统之间的直接交换来促进计算机资源和服务的共享。这些资源和服务包括信息的交换、缓存存储、和文件的磁盘存储。分布式计算利用网络连接,允许客户端利用它们的集体力量来使整个企业受益。在这点上,各种设备可能具有可能涉及纹理采样过程的应用程序、对象或资源,它们可能利用本发明的技术。
图3A提供了示范联网或分布式计算环境的示意图。分布式计算环境包括计算对象10a、10b等等和计算对象或设备110a、110b、110c等。这些对象可以包括程序、方法、数据存储、可编程的逻辑等。对象可以包括诸如PDA、电视、MP3播放器、电视、个人计算机之类的相同或不同设备的组成部分。每一个对象都可以通过通信网络14与另一个对象进行通信。此网络本身可以包括向图3A的系统提供服务的其他计算对象和计算设备。根据本发明的一个方面,10a、10b等等或110a、110b、110c等等对象中的每一个对象都可以包含一个可以请求纹理采样服务的应用程序。
在分布式计算体系结构中、在传统上可能只作为客户端使用的计算机,在它们自己之间直接进行通信,并可以作为客户端和服务器,充当任何角色对于网络最有效的。这将会降低服务器上的负载,并允许所有客户端访问其他客户端上可用的资源,从而提高整个网络的性能和效率。根据本发明的纹理采样服务可以如此在客户端和服务器之间分布,以对于整个网络有效的方式来运行。
分布式计算可以帮助企业跨不同的地理边界更有效地提供服务和性能。此外,分布式计算可以将数据移到更靠近使用数据的点,从而充当一个网络缓存机制。分布式计算还允许计算网络使用智能代理动态地一起协作。代理驻留在对等计算机上,并来回传达各种信息。代理还可以代表其他对等系统启动任务。例如,智能代理可用于将网络上的任务按优先次序排列,改变通信流、本地搜索文件或确定诸如病毒之类的反常行为,并在它影响网络之前停止它。还可以使用各种其他服务。由于在实践中图形对象和纹理图可以在物理上位于一个或多个位置,分布纹理采样服务的能力在这样的系统中是非常有用的。
还可以理解,诸如110c之类的对象可以寄放在另一个计算设备10a、10b等等或110a、110b等上面。如此,虽然描述的物理环境可以显示连接的设备为计算机,但是这样的说明只是示范性的,物理环境也可以包括各种数字设备,如PDA、电视、MP3播放器等等,诸如接口、COM对象之类的软件对象。
有各种支持分布式计算环境的系统、组件和网络配置。例如,计算系统可以通过有线线路或无线系统,通过本地网络或分布的网络连接在一起。当前,许多网络连接到因特网,因特网为广泛的分布式计算提供了基础结构并包含许多不同的网络。
在家庭网络环境中,至少有四个不同的网络传输媒体,每一种媒体都可以支持诸如电源线之类的唯一的协议、数据(包括无线和有线)、语音(例如,电话)和娱乐媒体。诸如电灯开关和电器之类的大多数家庭控制设备都可以使用电源线来进行连接。数据服务可以作为宽带(例如,DSL或电缆调制解调器)进入家庭,并可以使用无线(例如,HomeRF或802.11b)或有线(例如,Home PNA、Cat 5,甚至电源线)连接来在家庭内进行访问。语音通信可以作为有线(例如,Cat 3)或无线(例如,蜂窝电话)进入家庭,并可以使用Cat 3配线在家庭内分布。娱乐媒体,或其他图形数据,可以通过卫星或电缆进入家庭,通常使用同轴电缆在家庭内分布。IEEE 1394和DVI也作为媒体设备群集的数字互连出现的。所有这些网络环境和其他可能作为协议标准出现的东西都可以互相连接以构成Intranet,该Intranet可以通过因特网与外部世界相连接。简而言之,存在各种不同的源,用于数据的存储和传输,因此,向前移动,计算设备将要求共享数据的途径,如根据本发明对图形对象和纹理图进行纹理采样所访问或利用的数据。
因特网通常是指利用TCP/IP协议套件的网络和网关的集合,这些协议在计算机网络技术中已为大家所熟知。TCP/IP是“Transport Control Protocol/Internet protocol”(传输控制协议/网际协议)。因特网可以被描述为由执行网络协议的计算机互相连接的在地理上分散的远程计算机网络,允许用户通过网络交互和共享信息。由于此类广泛的信息共享,诸如因特网之类的远程网络至今已经逐渐地发展成一个开放系统,开发人员可以针对该系统设计软件应用程序,用于执行专门的操作或服务,本质上没有限制。
如此,网络基础结构上面有很多诸如客户端/服务器、对等或混合体系结构之类的网络拓扑。“客户端”是使用与它不相关的另一类或组的服务的一个类或组的成员。如此,在计算中,客户端是一个进程,即,大致是请求另一个程序提供的服务的一组指令或任务。客户端进程利用请求的服务,而不必“知道”有关其他程序或服务本身的工作细节。在客户端/服务器体系结构中,具体来说,在联网的系统中,客户端通常是访问诸如服务器之类的另一台计算机提供的共享网络资源的计算机。在图3A的示例中,计算机110a、110b等等可以被认为是客户端,计算机10a、10b等等可以被认为是服务器,其中服务器10a、10b等等维护了数据,然后这些数据可以复制到客户端计算机110a、110b等。
服务器通常是可以通过诸如因特网之类的远程网络访问的远程计算机系统。客户端进程可以在第一个计算机系统中处于活动状态,服务器进程可以在第二个计算机系统中处于活动状态,彼此通过通信介质进行通信,如此提供分布式功能,允许多个客户端利用服务器的信息收集功能。
客户端和服务器彼此利用协议层提供的功能进行通信。例如,超级文本传输协议(HTTP)是与万维网(WWW)一起使用的常见的协议。通常,诸如通用资源定位器(URL)或Internet协议(IP)地址之类的计算机网络地址被服务器或客户端计算机用来彼此识别对方。网络地址可以被称为URL地址。例如,可以通过通信介质提供通信。具体来说,客户端和服务器可以通过TCP/IP连接来彼此进行连接,以便进行高容量的通信。
如此,图3A显示了一个示范联网或分布式环境,服务器通过网络/总线与客户端计算机进行通信,在该环境中可以应用本发明。详细来说,许多服务器10a、10b等等通过通信网络/总线14互相连接,网络可以是LAN、WAN、Intranet、因特网等等,具有诸如便携式计算机、手提式计算机、瘦客户端、联网电器之类的许多客户端或远程计算设备110a、110b、110c、110d、110e等等或诸如VCR、TV、烤箱、灯、加热器等等根据本发明的其他设备。如此可以设想,本发明可以应用于可以处理图形对象的任何计算设备。
在通信网络/总线14是因特网的网络环境中,例如,服务器10a、10b等可以是Web服务器,客户端110a、110b、110c、110d、110e等可以通过诸如HTTP之类的许多已知的协议中的任何协议与这些Web服务器进行通信。服务器10a、10b等还可以充当客户端110a、110b、110c、110d、110e,这可能是分布式计算环境的特征。通信可以采用有线方式或无线方式,只要合适即可。客户端设备110a、110b、110c、110d、110e等可以或不可以通过通信网络/总线14进行通信,并可以具有与其关联的独立通信。例如,在使用TV或VCR情况下,可能有或者可能没有联网的方面以控制它。每一台客户端计算机110a、110b、110c、110d、110e等和服务器计算机10a、10b等可以装有各种应用程序模块或对象135,具有连接或者访问各种类型的存储元件或对象,可以存储文件或者可以将文件的一部分下载或迁移到其中。任何计算机10a、10b、110a、110b等可以负责维护和更新数据库20或根据本发明的其他存储元件,诸如数据库或存储器20,用于存储图形对象或根据本发明处理的中间图形对象。如此,本发明可以在具有客户端计算机110a、110b等的计算机网络环境中应用,这些客户端计算机可以访问和与计算机网络/总线14和服务器计算机10a、10b等交互,服务器计算机可以与客户端计算机110a、110b等和诸如设备和数据库20之类的其他东西进行交互。
示范计算设备图3B和下面的讨论旨在提供一个可以实现本发明的合适的计算环境的简短的一般描述。然而,应该理解,手提式、便携和其他计算设备和各种计算对象也可以用于本发明。虽然下面描述的是一般用途计算机,但这只是一个示例,本发明可以以具有网络/总线互操作性和交互的瘦客户端实现。如此,本发明可以以联网托管服务的环境中实现,在该环境中,只涉及非常少的客户端资源,例如,客户端设备只作为网络/总线的接口的网络环境,如放置于电器上的对象。本质上,可以存储数据或可以从中检索数据的任何位置都是适合使用本发明的可控制的纹理采样技术的理想的或合适的环境。
虽然不作要求,本发明可以通过操作系统来实现,供设备或对象的服务的开发人员使用,和/或包括在与本发明的可控制的纹理采样一起使用的应用程序软件内。软件可以在由诸如客户端工作站、服务器之类的一台或多台计算机或其他设备执行的诸如程序模块之类的计算机可执行的指令的一般上下文中进行描述。一般来讲,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。通常,程序模块的功能可以在各种实施例中按需要组合或分布。此外,那些精通本技术的人将理解,本发明可以在其他计算机系统配置中应用。可以应用本发明的其他已知的计算系统、环境、和/或配置包括,但不仅限于,个人计算机(PC)、自动提款机、服务器计算机、手提或膝上型设备、多处理器系统、基于微处理器的系统、可编程的消费类电子产品、网络PC、电器、灯、环境控制元件、小型机、大型机等等。本发明还可以在任务由通过通信网络/总线或其他数据传输介质链接在一起的远程处理设备执行的分布式计算环境中应用。在分布式计算环境中,程序模块可以位于包括存储设备的本地和远程计算机存储介质中,客户端节点又可以充当服务器节点。
如此,图3B显示了一个可以在其中实现本发明的合适的计算系统环境100的示例,虽然如上文清楚地说明的,计算系统环境100只是合适的计算环境的一个示例,并不对本发明的应用范围或功能作出任何限制。计算环境100也不应被解释为与示范运行环境100中所示的任何一个组件或组件组合有任何依赖关系或要求。
请看图3B,一个用于实现本发明的示范系统包括一个计算机110形式的一般用途计算设备。计算机110的组件可以包括,但不仅限于,处理单元120、系统内存130,以及连结包括系统内存的各种系统组件与处理单元120的系统总线121。系统总线121可以是任何类型的总线结构,包括内存总线或内存控制器、外围总线,以及使用任何种类的总线体系结构的本地总线。作为示例,而不仅限于,这样的体系结构包括工业标准体系结构(ISA)总线、微通道体系结构(MCA)总线、增强的ISA(EISA)总线、视频电子产品标准协会(VESA)本地总线,以及外围组件互连(PCI)总线,也就是通常所说的附加板总线。
计算机110通常包括各种计算机可读的介质。计算机可读的介质可以是由计算机110访问的任何可用的介质,并包括易失性和非易失性介质、可移动以及非可移动介质。作为示例,而不仅限于,计算机可读的介质可以包括计算机存储介质和通信介质。计算机存储介质包括以任何方法或技术实现的易失性的和非易失性的、可移动的和非可移动的介质,以用于存储诸如计算机可读的指令、数据结构、程序模块或其他数据之类的信息。计算机存储介质包括,但不仅限于,RAM、ROM、EEPROM、闪存或其他内存技术,CDROM、数字多功能磁盘(DVD)或其他光盘存储器、磁带机、磁带、磁盘存储器或其他磁存储设备,或者可用于存储所需要的信息并且计算机110可以访问的任何其他介质。通信介质通常在一个诸如载波之类的调制数据信号或其他传输机制中实施计算机可读的指令、数据结构、程序模块或者其他数据,并且包括任何信息提供介质。术语“调制的数据信号”是指具有一个或多个其特征集或以这样的方式改变以便对信号中的信息进行编码的信号。作为示例,而不仅限于,通信介质包括有线介质,如有线网络或者直接有线连接,以及无线介质,如声控、RF、红外和其他无线介质。上述任何几项的组合也应包括在计算机可读的介质的范围内。
系统内存130包括易失的和/或非易失性存储器形式的计算机存储介质,如只读存储器(ROM)131和随机存取存储器(RAM)132。ROM 131中通常存储了一个基本输入/输出系统133(BIOS),里面包含帮助在计算机110内的各个元素之间(如在启动过程中)传输信息的基本例程。RAM 132通常包含处理单元120立即可访问和/或目前正在对其进行操作的数据和/或程序模块。作为示例,而不仅限于,图3B说明了操作系统134、应用程序135、其他程序模块136,以及程序数据137。
计算机110还可以包括其他可移动的/非可移动的、易失性/非易失性计算机存储介质。仅作为示例,图3B显示了一个可以从非可移动的非易失性磁介质中读取或写入的硬盘驱动器,一个从可移动的非易失性磁盘152读取或写入的磁盘驱动器151,以及可以从诸如CDROM或其他光学介质之类的可移动的非易失性光盘156读取或写入的光盘驱动器155。其他可用于示范操作环境的可移动/非可移动的易失性/非易失性计算机存储介质包括,但不仅限于,磁带、闪存卡、数字多功能磁盘、数字视频磁带、固态RAM、固态ROM等等。硬盘驱动器141通常通过一个诸如接口140之类的非可移动的内存接口连接到系统总线121,磁盘驱动器151和光盘驱动器155通常由诸如接口150之类的可移动的内存接口连接到系统总线121。
驱动器和上面讨论并在图3B中显示的与它们关联的计算机存储介质,将为计算机110存储计算机可读的指令、数据结构、程序模块以及其他数据。例如,在图3B中,硬盘驱动器141存储了操作系统144、应用程序145、其他程序模块146,以及程序数据147。请注意,这些组件可以与操作系统134、应用程序135、其他程序模块136,以及程序数据137相同,也可以不同。操作系统144、应用程序145、其他程序模块146,以及程序数据147在这里使用了不同的编号,以至少说明它们是不同的副本。用户可以通过诸如键盘162和指示设备161(通常是指鼠标、轨迹球或触摸板)之类的输入设备向计算机110中输入命令和信息。其他输入设备(未显示)可以包括麦克风、游戏杆、游戏板、碟形卫星天线、扫描仪或类似的装置。这些和其他输入设备通常通过一个连接到系统总线121的用户输入接口160连接到处理单元120,但也可以通过诸如并行端口、游戏端口或通用串行总线(USB)之类的其他接口和总线结构进行连接。诸如Northbridge之类的图形接口182也可以与系统总线121相连接。Northbridge是一个与CPU、主机处理单元120进行通信的芯片集,并负责加速图形端口(AGP)通信。一个或多个图形处理单元(GPU)184可以与图形接口182进行通信。在这点上,GPU 184一般包括诸如寄存器存储和GPU之类的芯片上的存储器存储,GPU 184与视频存储器186进行通信。然而,GPU 184只是一个协同处理器的示例,如此各种协同处理设备可以包括在计算机110中。监视器191或其他类型的显示设备也通过一个诸如视频接口190之类的接口连接到系统总线121,该接口可能又与视频存储器186进行通信。除了监视器191外,计算机还可以包括其他外围输出设备,如扬声器197和打印机196,它们可以通过一个输出外围接口195进行连接。
计算机110可以使用与诸如远程计算机180之类的一台或多台远程计算机的逻辑连接在一个联网或分布式环境中运行。远程计算机180可以是个人计算机、服务器、路由器、网络PC、对等设备或其他通用网络节点,通常包括上文关于计算机110的描述中的许多或者全部元素,虽然在图3B中只显示了内存存储设备181。图3B中描述的逻辑连接包括局域网(LAN)171和广域网(WAN)173,但也可以包括其他网络/总线。这样的网络环境在家庭、办公室、企业计算机网络、Intranet以及因特网中是常见的。
当计算机110在一个LAN网络环境中使用时,它通过网络接口或适配器170连接到LAN 171。当计算机110在一个WAN网络环境中使用时,它通常包括一个调制解调器172或其他用于在诸如因特网之类的WAN 173建立通信的装置。调制解调器172可以是内置的,也可以是外置的,可以通过用户输入接口160或其他相应的机制连接到系统总线121。在网络环境中,涉及计算机110的程序模块,或者它的一部分,可以存储在远程内存存储设备中。作为示例,而不限于,图3B显示了驻留在存储设备181上的远程应用程序185。显然,这里显示的网络连接是示范性的,也可以使用其他装置在计算机之间建立通信链路。
示范分布式计算框架或体系结构根据个人计算和因特网的集中已经开发了并且正在开发各种分布式计算框架。个人和企业用户都被提供了应用程序和计算设备的无缝互操作和启用Web的接口,使计算活动越来越面向Web浏览器或网络。
例如,MICROSOFT的.NET平台包括服务器、构件服务,如基于Web的数据存储和可下载的设备软件。一般而言,.NET平台提供(1)使一系列计算设备一起协作并使用户信息在所有的计算设备上自动更新和同步的能力,(2)由于广泛使用XML而不是HTML,提高网站的交互能力,(3)在线服务,其特点是,自定义访问和从一个中心起点向用户提供产品和服务,用于管理各种应用程序,如电子邮件,或软件,如Office.NET,(4)集中的数据存储,这可以提高效率和信息的易访问性,以及用户和设备之间的信息的同步,(5)集成诸如电子邮件、传真和电话之类的各种通信媒体的能力,(6)对于开发人员来说,创建可重复使用的模块的能力,从而提高工作效率并减少编程错误的数量以及(7)还有许多其他跨平台的集成功能。
尽管此处的示范实施例是结合驻留在计算设备上的软件来描述的,但是本发明的一个或多个部分也可以通过操作系统、应用程序编程接口(API)或协同处理器并请求对象之间的“中间人”对象来实现,以便可控制的纹理采样服务可以通过所有.NET的语言和服务以及在其他分布式计算框架中执行、支持。
可控制的纹理采样如在背景部分所描述的,有许多不同的技术,可以加以应用来对计算机图形执行纹理采样,具体情况取决于涉及的应用程序。可是,问题在于,一旦选择,技术就已经固定,没有许多灵活性,如果出现不适合于所选择的纹理采样技术的独特的情况,或者如果开发人员应该需要某些人工效果,如模糊,最后,什么也干不成。相应地,本发明对纹理采样算法应用智能,这样为前端的开发人员提供更大的自由度,在后端可以进行更动态的纹理采样。如此,本发明的技术利用拐点-函数GPU的趋势,暴露了可控制的纹理采样以便开发人员动态地应用动态智能以不同的方式处理不同的情况。相应地,在各个实施例中,对于下列各项中的任何一个或多个操作系统、驱动程序代码、API、工具包和/或图形管道本身中的功能,包括GPU或其他协同处理设备,本发明提供一个提供可控制的纹理采样能力的机制。
本发明如此提供各种技术,用于通过可编程的采样来控制纹理采样过程。正如在背景部分所提及的,在一种形式的各向异性筛选中,沿着某种角度多次执行双线性筛选。如图4A所示,当纹理化的多边形与屏幕的平面成一个斜角时,对应于映射到纹理的屏幕像素的区域成为一个诸如椭圆之类的拉长的形状。任何当前已知的用于计算为此采样区域使用的正确的形状的方法都将它们的计算只基于屏幕像素对多边形纹理元素对齐方式的相对几何形状,没有一种方法提供能使开发人员可预测地和智能地直接控制区域的大小和方向的灵活性。如此,本发明提供各种机制,用于对已经执行的自动计算进行“手动覆盖”和/或修改它们生成的结果,使实时3-D图形的视觉逼真度达到一个新水平。
关于手动覆盖,通过用替换值Δunew和Δvnew替换通常被用来计算区域的Δu和Δv,可以利用本发明替换区域的大小和方向。这在图4A中显示,其中Δunew和Δvnew定义了替换方向θnew,并定义了替换步长snew。如此,通过API、操作系统、工具包、驱动程序等指定替换Δunew和Δvnew值,可以控制纹理采样过程。在这点上,通过分配和/或重新分配某些寄存器以达到这样的处理,当今的拐点函数GPU能够接收表示实现这一点的功能的令牌。还可以预先制造GPU以进行这种处理。替换在某些情况下可能比目前使用的技术更快,因为在替换期间芯片不再参与计算应用程序定义的参数。
关于修改与各向异性技术利用的当前的区域,通过用偏移值Δu0和Δv0修改通常用来计算区域的Δu和Δv,可以利用本发明修改区域的大小和方向。这在图4A中显示,其中Δu+Δu0和Δv+Δv0定义了一个修改的方向θ0,也定义了一个修改的步长s0。如此,通过API、操作系统、工具包、驱动程序等指定偏移值Δu0和Δv0值,可以控制纹理采样过程。类似于替换,当今的拐点函数GPU可以接收表示实现这一点的功能的令牌,或预先制造以达到相同的结果。正如此处所描述的修改,设想Δu和Δu0或Δv和Δv0的不是简单的加法的任何函数,即,乘法、指数、平方根、减法或任何数学函数F(Δu和Δu0)或F(Δv和Δv0)也可以适用于手边的筛选任务。
可以同时提供修改和替换功能,如果开发人员选择允许硬件相对于纹理映射像平常那样表现,两者都是可选的。然而,本发明通过替换和/或修改定义纹理采样区域以达到可控制的纹理采样为开发人员提供了补充目前现有的技术的选项。
此外,正如在背景部分所描述的,对那些掌握图形处理技术的人已知的双线性筛选的示范等式包括下面几个
ca=pi,j·α+(pi,j+1)·(1-αa)cb=pi+1,j·α+(pi+1,j+1)·(1-αa)F=lrp(ca,cb)·αb,在其他实施例中,本发明能使开发人员与双线性筛选计算一起使用αa和αb的替换或修改,提供了对纹理采样过程的额外一层控制。
本发明提供的技术是一般性的,其应用范围几乎是无限的。如此,尽管下面提供了其用途的很多示例,在背景部分给出了可以与本发明一起使用的很多效果的示例,但是旨在应用于对其需要控制映射的各个方面的任何纹理采样过程。
如此下面将提供本发明的用途的示例,以及其示范伪代码。
针对运动模糊的当前方法要求多个呈现通道,例如,在四和八个之间,这将直接导致性能变慢,例如,性能变慢四到八倍。使用根据本发明的筛选方法只需要一个通道即可提供类似的结果,对性能的影响却小得多。在这样的情况下,本发明将应用迭代(顶点级别)数据控制将在其中发生模糊的方向矢量。正如上文所讲述的,可以通过修改或替换定义参数来修改或替换方向矢量。类似的方法可用于模拟和/或控制反射/菲涅尔模糊。
可以为散射光照、和某些镜子光照的近似效果生成各向异性表面反射和光照效果。真正的镜子光照来自环境图,当前技术不能各向异性地对环境图进行采样。本发明的技术能实现反射的环境图的各向异性的呈现。这样的技术特别适合于有光泽的,然而各向异性的表面,如不锈钢配件上的轻轻地刷的金属抛光,并可以通过修改或替换采样方向的定义参数来使用采样方向的每个顶点和每个像素指定。
关于表面自投阴影,有许多促进表面的每个像素光照的技术。这些技术中的大多数技术只能执行散射照明效果,这些效果根据定义是平滑、柔和的光照效果。粗糙表面的决定性的视觉影响来自较高的区域投射在较低的区域上的阴影,这些阴影提供了清新的高对比度的边界,这些边界清楚地描绘了表面纹理的粗糙。其他用于计算3-D图形中的阴影的方法只能从一个多边形将阴影投射到另一个多边形上,对于计算同一多边形上的纹理元素之间的阴影是无效的。如此,本发明通过修改或替换采样方向的定义参数来应用采样方向的每个像素指定。
图5显示了阴影背后的基本原理,并显示了本发明的其他实施例。在图5中,显示了一个将要从点源ps被投影或照亮的任意地域或表面T,其中阴影区域从数学上表示从点源ps被暴露给光线的表面的区域。在这点上,地域T由许多点定义,这些点,除了具有u和v值外,还具有w值,该值对应于地域T的点的高度。如此,3-D中的阴影或光照的采样方向通常涉及设置具有由Δu、Δv和Δw值定义的方向和步长的3-D采样方向矢量。在这点上,本发明能替换或修改Δu、Δv和Δw值,将上文描述的应用于Δu和Δv值的技术延伸到Δw值。
关于光线投射容量采样,当前用于容量呈现的方法要求将一个容量切成与视线方向相对正交的多边形。这就沿着这样的容量的边缘和角产生条带人为因素。借助于本发明的技术,可以可控制地避免这些人为因素并可改善性能。如此,借助于本发明,可以指定或修改3-D矢量,该矢量确定了采样方向,然后从顶点线性地迭代该方向。然后可以通过一系列多单元、例如,8单元,三线性样本或通过双线性样本来进行采样。
关于自投阴影容量呈现,当结合传统的薄片或木板样式容量呈现使用此技术时,可以在呈现的容量内模拟自投阴影或自照亮效果。如此,借助于本发明,可以实现3-D采样方向矢量的每个顶点的指定或修改。
关于自投阴影容量光线投射,添加了嵌套循环级别,其中在沿着光线的每一个样本上,沿着到光源方向投射单独的一组样本,以提供带有自投阴影的真正的容量光线投射呈现。此技术是到目前为止讨论的技术的简单的扩展,但意味着对采样硬件的更显著的更改。
关于可编程的纹理采样和采样阴影程序,本发明实现的关键技术是允许应用程序或开发人员指定各向异性筛选内核样本的方向和间距。
当前双/三线性采样中使用的编程值包括四点内核的u宽度和v宽度。根据本发明的可编程的各向异性采样的额外的值包括u中的样本的du间距,v中的样本的dv间距。在这点上,除了每个顶点,本发明允许每个像素地指定或修改这些参数,之后跟随迭代。例如,对于各向异性模糊化的环境图,这样的技术就已足够了。
非限制性示范伪代码基本各向异性的阴影程序的示范伪代码如下<pre listing-type="program-listing"> for each pixel {ComputeBaseUV(&amp;amp;u,&amp;amp;v)ComputeDuDv(based on std area eqn)sum=0.0;for each sample {u=u+du;v=v+dv;sum+=GetBilinearSample(u,v) }sum=sum/nsamples(1,2,4,8) }</pre>例如,用于模拟带有环境图的刷的金属的各向异性模糊阴影程序,在2-D每个顶点数据上操作的运动模糊的阴影程序,其示范伪代码如下<pre listing-type="program-listing"> for each pixel {ComputeBaseUV(&amp;amp;u,&amp;amp;v)&lt;!-- SIPO &lt;DP n="24"&gt; --&gt;&lt;dp n="d24"/&gt;ReadDuDv from texture or iterators if per polysum=0.0;for numsamples(preferably pow2){u=u+du;v=v+dv;sum +=GetBilinearSample(u,v); }sum=sum/nsamples(1,2,4,8,16);return sum; }</pre>清晰阴影表面阴影程序,例如,本地表面自投阴影阴影程序,该阴影程序产生清晰的阴影边缘,但允许在判断位置在阴影中时允许采样的“早出”,它的示范伪代码如下<pre listing-type="program-listing"> du,dv,dw//steps in direction of light source//(iterated from vertices)for each pixel {ComputeBaseUV(&amp;amp;u,&amp;amp;v)w=SampleH(u,v);//init ray at this pixelsum=0.0;fori=0;i<numsamples(no pow2 reqt){u=u+du;//iterate towards lightv=v+dv;w=w+dw;h=sampleH(u,v);//get heightif(h>w) //if height above rayreturn 0.5;//then pixelis in shadow&lt;!-- SIPO &lt;DP n="25"&gt; --&gt;&lt;dp n="d25"/&gt; }return 1.0;//else it′s fully lit }</pre>模糊阴影表面阴影程序,该阴影程序通过将阴影发布到最靠近的occluder计算分数阴影值,其示范伪代码如下<pre listing-type="program-listing"> du,dv,dw//steps in direction of light source//(iterated from vertices) for each pixel {ComputeBaseUV(&amp;amp;u,&amp;amp;v)w=SampleH(u,v);//init ray at this pixelsum=0.0;for numSamples(no need for pow2) {u=u+du;//iterate towards lightv=v+dv;w=w+dw;h=sampleH(u,v);//get heightdel=h-w;//height above rayif(del>max)max=del;//find highest value}mapMaxtoShadow( ) }</pre>本发明的用途的其他示例包括提供可编程的容量光线投射阴影程序,该阴影程序累积和集成三线性样本值。这样的阴影程序可以基于数据在管道环境中的硬度而表现不同。在这点上,可以与z缓冲区协同利用本发明以集成不透明的对象。在这样的情况下,可以执行一个z缓冲区读取,每个样本可以比较z缓冲区。此外,这样的技术可以假设光线始终远离视线,以使集成可以根据深度比较操作的结果终止。
本发明的用途的其他示例包括提供可编程的自投阴影容量雾/皮毛阴影程序,该阴影程序对于容量数据利用当前木板样式呈现方法,但使用上文描述的技术计算阴影光线。
有多个途径来实现本发明。一种途径是提供一种实现,其中协同处理器,例如,GPU是预先装配的,用于执行本发明的功能,并接收适合于此处描述的可控制的纹理采样的命令。本发明的另一种实现方式包括对协同处理器手动或自动编程,以实现本发明的功能,其中,适当的API、工具包、驱动程序代码、操作系统、单独的或可下载的软件对象等能使本发明在应用程序和协同处理器之间使用。另一种实现方式包括修改应用程序修改供应给协同处理器的参数,以使纹理采样过程的区域参数的修改/替换对协同处理器透明。如此,本发明还可以完全以硬件,部分地以硬件和部分地以软件以及软件实现方式来实现此处描述的可编程的纹理采样。
在本发明的示范实现中,提供了一个API组件,该组件能在采样语句中指定参数,以识别要发生的采样的方向矢量。还可以对上文描述的关于多维采样矢量的方法进行各种修改。例如,用于计算仰角的第三组件也可以用于投射阴影、容量呈现等。用于在硬件寄存器上运行的这样的API组件的一个示例以伪代码格式表示如下<pre listing-type="program-listing">LD#r0,t0,v0sample texture set at stage #place result in r0sample at texcoord t0with footprint axis v0and sampling count/blending mode defined in declaration ofstage # as instg # wrapmode=off, tilemode=wrap, filtermode=programmable,&lt;!-- SIPO &lt;DP n="27"&gt; --&gt;&lt;dp n="d27"/&gt;samplecount=16width=1filterop=replace(app-specified values)</pre>使各向异性浓淡处理的方向矢量/步幅可由上述API指定的装置控制的示范硬件部分,包括下列功能(A)默认值,(B)替换,(C)添加和(D)调制。
在这点上,“默认值”定义了传统的非应用程序控制的采样,基于标准的各向异性筛选算法计算采样的步幅和方向。“替换”功能用应用程序指定的值替换“默认值”。“添加”功能将应用程序指定的值添加到芯片计算的值以确定最后的采样方向。“调制”功能将应用程序指定的方向矢量乘以芯片计算的值以确定最后的采样方向。
在本发明的一个实施例中,硬件芯片使用现有的从属的读取硬件技术以获取单独的样本,以便实现本发明的各种技术。这样的实施例允许应用程序控制每一个样本在内核中的位置,而不只是每一组两个两个的双线性区域的位置,如此,比上文描述的某些技术更通用。
本发明的其他用途包括使用纳尔逊·马克斯的水平映射方法的派生方法通过控制利用的参数来达到自投阴影纹理。
本发明在其各个相关的实施例中还支持对投射光线与当前z缓冲区交叉或在发生饱和的时间进行(1)检测,(2)“早出”或(3)返回空。
在本发明的其他实施例中,提供了可编程的采样阴影程序,允许对采样操作进行算法控制,如上文中的各个细节所描述的。此外,达到了某些二级效果,如改变这些增量的间距,或在每一步改变内核的大小的能力,如此可以对模糊、发散光进行建模。
如上所述,尽管是结合各种计算设备和网络体系结构来对本发明的示范实施例进行描述的,但是基本概念可以应用到可以执行纹理采样的任何计算设备或系统。如此,根据本发明的用于提供改进的信号处理的技术可以应用到各种应用程序和设备中。例如,本发明的算法可以应用到计算设备的操作系统,无论是作为设备上的单独的对象,作为另一个对象的组成部分,作为可从服务器下载的对象,作为设备或对象和网络之间的“中间人”,作为分布式对象等提供的。虽然此处选择的示范编程语言、名称和示例是各种选择的代表,但是这些语言、名称和示例不作为限制。一个精通本技术的人将理解,有很多途径提供达到本发明所达到的相同、类似的或等效的可控制的纹理采样的目标码。
此处描述的各种技术可以使用硬件或软件,或在适当的地方,使用两者的组合来实现。如此,本发明的方法和装置,或本发明的某些方面或组成部分,可以呈现以诸如软盘、CD-ROM、硬盘驱动器或任何其他机器可读的存储介质之类的有形的介质实施的程序代码的形式(即,指令),其特征在于,当程序代码被加载到诸如计算机之类的机器并由机器执行时,机器成为用于实施本发明的装置。在程序代码在可编程的计算机上执行的情况下,计算设备一般包括处理器、处理器可读的存储介质(包括易失性和非易失性存储器和/或存储元件),至少一个输入设备,和至少一个输出设备。可以利用本发明的信号处理服务的一个或多个程序,例如,通过使用数据处理API等等,优选情况下,以高级别过程或面向对象的编程语言来实现以与计算机系统进行通信。然而,如果需要,程序也可以以汇编或机器语言来实现。在任何情况下,语言都可以是已编译的或解释的语言,并与硬件实现结合。
本发明的方法和装置还可以通过以通过诸如电线或电缆、光纤之类的某些传输介质或通过任何其他形式的传输来传输的程序代码的形式实施的通信来实现,其特征在于,当诸如EPROM、门阵列、可编程的逻辑设备(PLD)之类的机器接收到程序代码,加载到机器中并由机器执行时,客户端计算机、录像机等等,或如上文中的示范实施例中描述的具有信号处理功能的接收机器成为用于实施本发明的装置。当在通用处理器上实现时,程序代码与处理器结合以提供一个独特的装置,该装置操作以调用本发明的功能。此外,与本发明一起使用的任何存储技术可以硬件和软件的组合。
尽管是结合各种图形的优选实施例对本发明进行描述的,但是可以理解,可以使用其他类似的实施例,或者可以对所描述的用于执行本发明的同一功能的实施例进行修改和补充,而不偏离其精神和范围。例如,尽管是在诸如对等联网环境之类的联网环境的上下文中对本发明的示范网络环境进行描述的,精通本技术对人将认识到,本发明不仅限于此,本申请中描述的方法可以应用于任何计算设备或环境,如游戏控制台、手提式计算机、便携式计算机等,无论通过有线连接还是通过无线连接,并且可以应用于通过通信网络连接的并跨网络交互的许多此类计算设备。此外,还应该强调,也可以使用各种计算机平台,包括手提式设备操作系统和其他应用程序特定的操作系统,特别是随着无线网络设备的数量的扩大。此外,也可以在许多处理芯片或设备中或跨许多处理芯片或设备地实现本发明,可以跨许多设备进行类似的存储。因此,本发明不应该仅限于任何单个实施例,而应该解释为在根据所附的权利要求对范围内。
权利要求
1.一种提供可控制的纹理采样的方法,包括指定在对纹理图进行纹理采样时利用的采样区域的至少一个参数;以及根据所说的采样区域的所说的指定参数对所说的纹理图进行纹理采样。
2.根据权利要求1所述的方法,其特征在于,所说的指定操作包括下列两个操作中的至少一个操作,(1)通过指定所说的至少一个标准参数的至少一个偏移值来修改至少一个标准参数和(2)用至少一个替换参数来替换至少一个标准参数。
3.根据权利要求2所述的方法,其特征在于,所说的修改操作包括下列几个操作中的至少一个操作添加偏移值和标准参数,乘以偏移值和标准参数,作为一个指数应用偏移值和标准参数中的一个,减去偏移值和标准参数,基于标准参数和偏移值执行预先定义的数学函数。
4.根据权利要求1所述的方法,其特征在于,所说的采样区域是从点采样过程、双线性筛选过程、MIP映射过程、各向异性筛选过程和抗混叠技术过程中的至少一个过程的采样区域。
5.根据权利要求1所述的方法,其特征在于,所说的指定包括涉及所说的纹理采样的每个顶点和每个像素中的至少一个指定所说的至少一个参数。
6.根据权利要求5所述的方法,进一步包括迭代应用所说的纹理采样。
7.根据权利要求1所述的方法,其特征在于,所说的指定包括指定采样区域的步长和方向中的至少一个。
8.根据权利要求5所述的方法,其特征在于,所说的指定操作包括下列两个操作中的至少一个指定u方向上的样本的du间距和指定v方向上的样本的dv间距。
9.根据权利要求5所述的方法,其特征在于,所说的指定包括指定Δu值、Δv值和Δw值中的至少一个。
10.根据权利要求1所述的方法,其特征在于,所说的指定包括指定与双线性筛选计算一起使用的αa值和αb值中的一个。
11.根据权利要求1所述的方法,其特征在于,所说的采样区域是一个各向异性筛选采样区域。
12.根据权利要求11所述的方法,其特征在于,所说的至少一个参数包括各向异性筛选内核样本的方向和间距中的至少一个。
13.根据权利要求1所述的方法,其特征在于,根据所说的指定的参数对所说的纹理图进行所说的纹理采样改变由所说的纹理采样产生的像素间距的至少一个可视化效果,所说的至少一个可视化效果包括下列效果中的至少一个效果模糊效果、浓淡不匀的效果、纹理眩晕效果、像素弹出效果、时间混叠效果、纹理闪烁效果、纹理收缩效果和拖尾效果。
14.根据权利要求1所述的方法,其特征在于,根据所说的指定的参数对所说的纹理图进行所说的纹理采样纹理化三角形表面以达到下列效果中的至少一个效果光照效果、块形映射效果、模糊效果、反射模糊效果、菲涅尔模糊效果、大理石效果、流水效果、线性雾化效果、指数雾化效果、基于范围的雾化效果、透明效果、半透明效果、曲面效果、清晰阴影效果、模糊阴影效果和容量纹理化效果。
15.根据权利要求1所述的方法,其特征在于,所说的指定至少一个参数包括指定应用运动模糊的采样区域的至少一个参数,所说的指定进一步包括应用迭代顶点级别数据以控制采样区域的方向矢量。
16.根据权利要求1所述的方法,其特征在于,所说的指定至少一个参数包括指定应用各向异性表面反射、散射光照和镜子光照的近似效果中的至少一个的采样区域的至少一个参数,所说的指定进一步包括应用采样区域的采样方向的每个顶点和每个像素指定中的一个。
17.根据权利要求1所述的方法,其特征在于,所说的指定至少一个参数包括指定应用表面自投阴影的采样区域的至少一个参数,所说的指定进一步包括应用采样区域的采样方向的每个像素指定。
18.根据权利要求1所述的方法,其特征在于,所说的指定至少一个参数包括指定应用表面自投阴影的采样区域的至少一个参数,所说的指定进一步包括应用采样区域的采样方向的每个像素指定。
19.根据权利要求18所述的方法,其特征在于,所说的指定进一步包括指定控制参数,以便用于纳尔逊·马克斯的水平映射的衍生计算。
20.根据权利要求1所述的方法,其特征在于,所说的指定至少一个参数包括指定应用光线投射容量采样的采样区域的至少一个参数,其中,光线投射容量采样包括将一个容量切成与视线方向相对正交的多边形,所说的指定进一步包括指定采样区域的采样方向,所说的纹理采样包括迭代应用指定的采样方向。
21.根据权利要求20所述的方法,进一步包括检测何时其中一个投射光线与当前z缓冲区交叉以及何时发生饱和。
22.根据权利要求1所述的方法,其特征在于,所说的指定至少一个参数包括指定应用自投阴影容量呈现结合传统的薄片或木板样式容量呈现的采样区域的至少一个参数,所说的指定进一步包括应用采样区域的采样方向的每个顶点指定。
23.根据权利要求1所述的方法,其特征在于,所说的指定包括通过一个API组件指定采样区域的方向矢量。
24.用于提供根据权利要求1所述的可控制的纹理采样的操作系统、驱动程序代码、应用程序编程接口、工具包和协同处理设备中的至少一个。
25.携带用于执行根据权利要求1所述的方法的计算机可执行的指令的调制数据信号。
26.包括用于执行根据权利要求1所述的方法的装置的计算设备。
27.用于提供可控制的纹理采样的计算机可读的介质,上面存储了至少一个计算机可执行的模块,包括用于执行一种方法的计算机可执行的指令,该方法包括指定在对纹理图进行纹理采样时利用的采样区域的至少一个参数;以及根据所说的采样区域的所说的指定参数对所说的纹理图进行纹理采样。
28.根据权利要求27所述的计算机可读的介质,其特征在于,所说的指定操作包括下列两个操作中的至少一个操作(1)通过指定所说的至少一个标准参数的至少一个偏移值来修改至少一个标准参数和(2)用至少一个替换参数来替换至少一个标准参数。
29.根据权利要求28所述的至少一个计算机可读的介质,其特征在于,所说的修改包括下列几个操作中的至少一个操作添加偏移值和标准参数,乘以偏移值和标准参数,作为一个指数应用偏移值和标准参数中的一个,减去偏移值和标准参数,基于标准参数和偏移值执行预先定义的数学函数。
30.根据权利要求27所述的至少一个计算机可读的介质,其特征在于,所说的采样区域是从点采样过程、双线性筛选过程、MIP映射过程、各向异性筛选过程和抗混叠技术过程中的至少一个过程的采样区域。
31.根据权利要求27所述的至少一个计算机可读的介质,其特征在于,所说的指定包括涉及所说的纹理采样的每个顶点和每个像素中的至少一个指定所说的至少一个参数。
32.根据权利要求31所述的至少一个计算机可读的介质,进一步包括迭代应用所说的纹理采样。
33.根据权利要求27所述的至少一个计算机可读的介质,其特征在于,所说的指定包括指定采样区域的步长和方向中的至少一个。
34.根据权利要求31所述的至少一个计算机可读的介质,其特征在于,所说的指定包括指定u方向上的样本的du间距和指定v方向上的样本的dv间距这两个操作中的至少一个。
35.根据权利要求31所述的至少一个计算机可读的介质,其特征在于,所说的指定包括指定Δu值、Δv值和Δw值中的至少一个。
36.根据权利要求27所述的至少一个计算机可读的介质,其特征在于,所说的指定包括指定与双线性筛选计算一起使用的αa值和αb值中的一个。
37.根据权利要求27所述的至少一个计算机可读的介质,其特征在于,所说的采样区域是一个各向异性筛选采样区域。
38.根据权利要求37所述的至少一个计算机可读的介质,其特征在于,所说的至少一个参数包括各向异性筛选内核样本的方向和间距中的至少一个。
39.根据权利要求27所述的至少一个计算机可读的介质,其特征在于,所说的根据所说的指定的参数启动所说的纹理图纹理采样改变由所说的纹理采样产生的像素间距的至少一个可视化效果,所说的至少一个可视化效果包括下列效果中的至少一个效果模糊效果、浓淡不匀的效果、纹理眩晕效果、像素弹出效果、时间混叠效果、纹理闪烁效果、纹理收缩效果和拖尾效果。
40.根据权利要求27所述的至少一个计算机可读的介质,其特征在于,所说的根据所说的指定的参数由所说的启动纹理图进行纹理采样所启动的所说的纹理采样纹理化三角形表面以达到下列效果中的至少一个效果光照效果、块形映射效果、模糊效果、反射模糊效果、菲涅尔模糊效果、大理石效果、流水效果、线性雾化效果、指数雾化效果、基于范围的雾化效果、透明效果、半透明效果、曲面效果、清晰阴影效果、模糊阴影效果和容量纹理化效果。
41.根据权利要求27所述的至少一个计算机可读的介质,其特征在于,所说的指定至少一个参数包括指定应用运动模糊的采样区域的至少一个参数,所说的指定进一步包括应用迭代顶点级别数据以控制采样区域的方向矢量。
42.根据权利要求27所述的至少一个计算机可读的介质,其特征在于,所说的指定至少一个参数包括指定应用各向异性表面反射、散射光照和镜子光照的近似效果中的至少一个的采样区域的至少一个参数,所说的指定进一步包括应用采样区域的采样方向的每个顶点和每个像素指定中的一个。
43.根据权利要求27所述的至少一个计算机可读的介质,其特征在于,所说的指定至少一个参数包括指定应用表面自投阴影的采样区域的至少一个参数,所说的指定进一步包括应用采样区域的采样方向的每个像素指定。
44.根据权利要求27所述的至少一个计算机可读的介质,其特征在于,所说的指定至少一个参数包括指定应用表面自投阴影的采样区域的至少一个参数,所说的指定进一步包括应用采样区域的采样方向的每个像素指定。
45.根据权利要求44所述的至少一个计算机可读的介质,其特征在于,所说的指定进一步包括指定控制参数,以便用于纳尔逊·马克斯的水平映射的衍生计算。
46.根据权利要求27所述的至少一个计算机可读的介质,其特征在于,所说的指定至少一个参数包括指定应用光线投射容量采样的采样区域的至少一个参数,其特征在于,光线投射容量采样包括将一个容量切成与视线方向相对正交的多边形,所说的指定进一步包括指定采样区域的采样方向,所说的启动纹理采样启动的所说的纹理采样包括迭代应用指定的采样方向。
47.根据权利要求46所述的至少一个计算机可读的介质,进一步包括检测何时其中一个投射光线与当前z缓冲区交叉以及何时发生饱和。
48.根据权利要求27所述的至少一个计算机可读的介质,其特征在于,所说的指定至少一个参数包括指定应用自投阴影容量呈现结合传统的薄片或木板样式容量呈现的采样区域的至少一个参数,所说的指定进一步包括应用采样区域的采样方向的每个顶点指定。
49.根据权利要求27所述的至少一个计算机可读的介质,其特征在于,所说的指定包括通过一个应用程序编程接口API组件指定采样区域的方向矢量。
50.根据权利要求27所述的至少一个计算机可读的介质,其特征在于,应用程序编程接口API、驱动程序代码、操作系统和应用程序中的至少一个包括所说的模块。
51.与可控制的纹理采样指令一起使用的协同处理设备,包括一个输入组件,用于接收在对纹理图进行纹理采样时利用的采样区域的至少一个参数的指定值;以及一个纹理采样组件,用于根据所说的采样区域的所说的指定参数对所说的纹理图进行纹理采样。
52.根据权利要求51所述的协同处理设备,其特征在于,所说的输入组件包括下列两个组件中的至少一个(1)第一输入组件,该组件通过接收所说的至少一个标准参数的至少一个偏移值的指定值来接收用于修改至少一个标准参数的指令和(2)第二输入组件,该组件接收用于用至少一个替换参数来替换至少一个标准参数的指令。
53.根据权利要求52所述的协同处理设备,其特征在于,接收修改指令的所说的第一输入组件包括接收用于添加偏移值和标准参数的指令的第三输入组件,接收用于乘以偏移值和标准参数的指令的第四输入组件,接收用于作为指数应用偏移值和标准参数中的一个的第五输入组件,接收用于减去偏移值和标准参数的指令的第六输入组件,以及接收用于基于标准参数和偏移值执行预先定义的数学函数的指令的第七输入组件。
54.根据权利要求51所述的协同处理设备,其特征在于,所说的采样区域是从点采样过程、双线性筛选过程、MIP映射过程、各向异性筛选过程和抗混叠技术过程中的至少一个过程的采样区域。
55.根据权利要求51所述的协同处理设备,其特征在于,接收用于执行指定操作的指令的所说的输入组件包括一个接收用于涉及所说的纹理采样的每个顶点和每个像素中的至少一个指定所说的至少一个参数的指令的组件。
56.根据权利要求55所述的协同处理设备,进一步包括迭代应用纹理采样组件的所说的纹理采样。
57.根据权利要求51所述的协同处理设备,其特征在于,接收用于执行指定操作的指令的所说的输入组件包括一个接收用于指定采样区域的步长和方向中的至少一个的指令的组件。
58.根据权利要求55所述的协同处理设备,其特征在于,接收用于执行指定操作的指令的所说的输入组件包括下列两个组件中的至少一个第一输入组件,该组件接收用于指定u方向上的样本的du间距的指令,第二输入组件,该组件接收用于指定v方向上的样本的dv间距的指令。
59.根据权利要求55所述的协同处理设备,其特征在于,接收用于执行指定操作的指令的所说的输入组件包括一个组件,该组件接收用于指定Δu值、Δv值和Δw值中的至少一个的指令。
60.根据权利要求51所述的协同处理设备,其特征在于,接收用于执行指定操作的指令的所说的输入组件包括一个组件,该组件接收用于指定与双线性筛选计算一起使用的αa值和αb值中的一个的指令。
61.根据权利要求51所述的协同处理设备,其特征在于,所说的采样区域是一个各向异性筛选采样区域。
62.根据权利要求61所述的协同处理设备,其特征在于,所说的至少一个参数包括各向异性筛选内核样本的方向和间距中的至少一个。
63.根据权利要求51所述的协同处理设备,其特征在于,根据所说的指定的参数由纹理采样组件对所说的纹理图进行所说的纹理采样改变由所说的纹理采样产生的像素间距的至少一个可视化效果,所说的至少一个可视化效果包括下列效果中的至少一个效果模糊效果、浓淡不匀的效果、纹理眩晕效果、像素弹出效果、时间混叠效果、纹理闪烁效果、纹理收缩效果和拖尾效果。
64.根据权利要求51所述的协同处理设备,其特征在于,根据所说的指定的参数由纹理采样组件对所说的纹理图进行所说的纹理采样纹理化三角形表面以达到下列效果中的至少一个效果光照效果、块形映射效果、模糊效果、反射模糊效果、菲涅尔模糊效果、大理石效果、流水效果、线性雾化效果、指数雾化效果、基于范围的雾化效果、透明效果、半透明效果、曲面效果、清晰阴影效果、模糊阴影效果和容量纹理化效果。
65.根据权利要求51所述的协同处理设备,其特征在于,接收用于指定至少一个参数的指令的所说的输入组件包括第一输入组件,该组件接收用于指定应用运动模糊的采样区域的至少一个参数的指令,所说的输入组件进一步包括第二组件,该组件接收用于应用迭代顶点级别数据以控制采样区域的方向矢量的指令。
66.根据权利要求51所述的协同处理设备,其特征在于,接收用于指定至少一个参数的指令的所说的输入组件包括第一输入组件,该组件接收用于指定应用各向异性表面反射、散射光照和镜子光照的近似效果中的至少一个的采样区域的至少一个参数的指令,接收用于执行指定操作的指令的所说的输入组件进一步包括第二组件,该组件接收用于应用采样区域的采样方向的每个顶点和每个像素指定中的一个的指令。
67.根据权利要求51所述的协同处理设备,其特征在于,接收用于指定至少一个参数的指令的所说的输入组件包括第一输入组件,该组件接收用于指定应用表面自投阴影的采样区域的至少一个参数的指令,接收用于执行指定操作的指令的所说的输入组件进一步包括第二输入组件,该组件接收用于应用采样区域的采样方向的每个像素指定的指令。
68.根据权利要求51所述的协同处理设备,其特征在于,接收用于指定至少一个参数的指令的所说的输入组件包括第一输入组件,该组件接收用于指定应用表面自投阴影的采样区域的至少一个参数的指令,接收用于执行指定操作的指令的所说的输入组件进一步包括第二输入组件,该组件接收用于应用采样区域的采样方向的每个像素指定的指令。
69.根据权利要求68所述的协同处理设备,其特征在于,接收用于执行指定操作的指令的所说的输入组件进一步包括一个组件,该组件接收用于指定控制参数以便用于纳尔逊·马克斯的水平映射的衍生计算的指令。
70.根据权利要求51所述的协同处理设备,其特征在于,接收用于指定至少一个参数的指令的所说的输入组件包括第一输入组件,该组件接收用于指定应用光线投射容量采样的采样区域的至少一个参数的指令,其中,光线投射容量采样包括将一个容量切成与视线方向相对正交的多边形,接收用于执行指定操作的指令的所说的输入组件进一步包括第二输入组件,该组件接收用于指定采样区域的采样方向的指令,所说的纹理采样组件迭代应用指定的采样方向。
71.根据权利要求70所述的协同处理设备,进一步包括检测何时其中一个投射光线与当前z缓冲区交叉以及何时发生饱和。
72.根据权利要求51所述的协同处理设备,其特征在于,接收用于指定至少一个参数的指令的所说的输入组件包括第一输入组件,该组件接收用于指定应用自投阴影容量呈现结合传统的薄片或木板样式容量呈现的采样区域的至少一个参数的指令,接收用于执行指定操作的指令的所说的输入组件进一步包括第二输入组件,该组件接收用于指定采样区域的采样方向的每个顶点指定的指令。
73.根据权利要求51所述的协同处理设备,其特征在于,接收用于执行指定操作的指令的所说的输入组件包括一个组件,该组件从应用程序编程接口API、驱动程序代码、操作系统和应用程序中的至少一个接收用于指定采样区域的方向矢量的指令。
74.根据权利要求51所述的协同处理设备,其特征在于,所说的协同处理设备包括至少一个图形处理单元GPU。
75.用于提供可控制的纹理采样的计算机可读的介质,上面存储了一个或多个计算机可执行的模块,包括计算机可执行的指令,模块包括用于指定在对纹理图进行纹理采样时利用的采样区域的至少一个参数的装置;以及用于根据所说的采样区域的所说的指定参数开始对所说的纹理图进行纹理采样的装置。
76.与可控制的纹理采样指令一起使用的协同处理设备,包括用于接收在对纹理图进行纹理采样时利用的采样区域的至少一个参数的指定值的装置;以及用于根据所说的采样区域的所说的指定参数开始对所说的纹理图进行纹理采样的装置。
全文摘要
提供在计算机系统中用于控制对计算机图形进行的纹理采样的系统和方法。在各个实施例中,提供了用于控制纹理采样的改进的机制,它们能使3-D加速器硬件大大地提高呈现时的逼真度,包括针对下列各项的改进的机制(1)运动模糊;(2)生成各向异性表面反射;(3)生成表面自投阴影;(4)光线投射容量采样;(4)自投阴影容量呈现和(5)自投阴影容量光线投射。在补充现有的纹理采样技术时,可以替换和/或修改用于纹理采样的参数。
文档编号G06T15/04GK1467687SQ03110560
公开日2004年1月14日 申请日期2003年4月10日 优先权日2002年6月20日
发明者查尔斯·N·伯伊德, 迈克尔·A·托利, A 托利, 查尔斯 N 伯伊德 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1