用于3-D场景加速结构创建和更新的系统和方法与流程

文档序号:13109105阅读:141来源:国知局
本申请是国际申请日为2012年08月04日、国家申请号为201280037833.4、名称为“用于3-D场景加速结构创建和更新的系统和方法”的发明专利申请的分案申请。相关申请的交叉引用本申请要求2011年8月5日提交的标题为“加速结构创建的系统和方法(SystemsandmethodsofAccelerationStructureCreation)”的美国临时申请号61/515,801的优先权,出于所有目的,该申请通过引用以其全文结合于此。技术领域本主题的一个方面涉及用于有待渲染的3-D场景的场景加速结构的创建,并且在一个更具体的方面涉及对这种加速结构进行创建和更新,以便使用光线追踪用于对来自3-D场景描述的2-D图像进行渲染。

背景技术:
用光线追踪对来自3-D场景描述的逼真2-D图像进行渲染在计算机图形学技术领域内是众所周知的。光线追踪通常涉及到获得由多种几何形状组成的场景描述,这些几何形状对场景中的结构的表面进行描述。如果这些几何形状是能够被有待使用渲染系统处理的一种形状类型的形状,则它们经常被称为图元;否则,通常对这些几何形状进行处理以便基于这些几何形状产生图元。例如,可以对贴片(patches)进行处理以便产生三角形图元。图元可以与纹理和其他指令计算机图元的质量应如何影响碰撞该图元的光的信息相关联。光线追踪可以如实地对复杂光照、光透射、反射、折射等进行渲染,因为光线追踪可以对与场景的元素交互的光的物理行为进行建模。光线追踪中常见的操作是确定光线与场景中的一个或多个图元之间的相交。在对光线追踪系统的物体进行定义时所使用的图元的示例是由位于3-D场景空间内的一个顶点集合组成的三角形;本说明书以此熟悉的示例继续下去,但三角形图元的使用是为了清晰性,而不是限制性的。光线的定义可以由一个原点、和一个方向以及沿着光线的当前裁剪(clipping)距离组成,对于光线而言,裁剪距离可以被标识为“t”。当前裁剪距离对为光线检测到的当前最近的相交进行标识,或者在没有检测到的相交的情况下,标识已经在超过该距离之外的距离上测试了光线的相交,并且没有发现相交。当光线完成相交测试时,可以返回最近的检测到的相交,并且确定用于该相交的信息,如与该光线相交的图元的标识。质朴地,通过反复地测试场景中的每一个三角形可以为给定的光线确定这些结果,以便对最近的相交三角形进行标识。虽然这种质朴的方法对带有少量三角形的场景而言以可令人接受的方式工作,但此方法对复杂的场景和对商业产品而言是难解决的,其中,对于每个有待渲染的帧而言,可能需要被测试数百万甚至数千万或数亿条光线与数百万个三角形的相交。为了加速这种相交测试,使用3-D空间加速结构。这些加速结构通常将3D空间细分成多个不同区域来工作,其中,这些区域各自可以包围(bound)多个图元。然后,可以首先对这些区域中的每个区域进行相交测试,以便确定是否需要单独测试该区域中的图元。在一些情况下,加速结构可以是分层级的,从而使得执行加速结构内的不同区域的多次测试,以便对有待测试与给定光线相交的图元的相对小的集合进行标识。对于一个适当组装的加速结构而言,光线相交测试的总数应实质上小于在每条光线与场景中的每个三角形之间已经执行的光线三角形测试。

技术实现要素:
本概述描述了一种系统和方法的概览,其中,可以实践或实施各种更多的特定方面。然后介绍了这些特定方面中的一些方面。在一个方面中,披露了一种用于为图元流产生加速结构的方法和装置。这些图元位于3-D场景中。该加速结构可以具有一种选定的类型,如包围体积层次,或kD树。包围体积层次可以使用一种选定类型的形状,如球体或轴对准包围盒。为了产生加速结构,为3-D场景形成层级空间细分并且该细分包括不同粒度等级下的多个元素集合。对每个流式图元进行分类以选择一个粒度等级,在该粒度等级下,图元有待被来自所选定的粒度等级的元素的集合包围。作为一个具体的示例,较大数量的较小空间细分可以用于共同地包围一个给定的图元,或者可以使用较小数量的较大空间细分。较大数量的较小空间细分可以在该层级空间细分的更细粒度层内。对于所选定的粒度等级而言,对层级空间细分的一个或多个元素进行标识,这些元素共同地包围着图元。将图元ID添加到该层级空间细分的每个所标识的元素的高速缓存条目中。对进一步的图元可以类似处理,从而使得可以将多个图元收集到该层级空间细分的一个给定元素中。在该层级空间细分的的每个元素内,对该元素内收集的那些图元的覆盖范围进行追踪。在一个示例中,通过在用该元素包围这些图元(或部分图元)的元素内确定一个子体积来对覆盖范围进行追踪。在这种方面中,对于包围体积的一种给定形状而言(如立方体或球体),覆盖范围可以被视为多个体积的并集。最后,可以从高速缓存中逐出层级空间细分的一个给定元素的一个高速缓存条目。该元素的覆盖范围用于形成、定义或选择将用于光线相交测试的加速结构的一个元素。还使该元素的覆盖范围聚合,其中,该层级空间细分的其他元素的覆盖范围聚合成该层级空间细分的一个更大的元素。一个或多个图元可以与该更大的元素(和该粒度等级下的其他元素)直接相关联,并且覆盖范围可以被保持为所有这些元素的并集。还可以高速缓存此信息(对这些包围元素和/或图元进行标识)并且该信息可以最终用于定义该加速结构的另一个元素,并且可能被聚合成该层级空间细分的一个仍然更大的元素等,直到已经确定用于该加速结构的一个或多个根节点。在一个特定方面中,根据本披露的系统和方法使图元与包围盒元素凝聚,以便形成一个加速结构。使用工作空间细分层次确定该加速结构的元素,其中,元素是可容易地寻址或标识的。在一个示例中,可以使用3-D位置和粒度等级对元素进行唯一地定址;换言之,每个3-D空间位置被多个粒度等级中的每个粒度等级下的该细分层次的恰好仅一个元素包含。可以将所构建的一种类型的加速结构(形状和/或元素的相互关系)与如何展现该工作空间细分层次解耦。在另一个方面中,一种用于产生加速结构以便在3-D渲染中使用的方法包括根据一种包括与3-D坐标系的一个或多个轴对准、图元的绝对大小、以及图元的长宽比中的一个或多个的启示法来表征图元流中的每个图元。该方法提供用于为该图元所在的3-D场景确定一个工作细分结构的元素的一个集合。该元素集合可以具有相同形式和/或相同大小,可以从多种形式中选择,并且每个形式具有多个大小确定的细分元素。该图元流中的不同图元可以被不同形式和大小的元素包围。每个元素还可以具有由该元素定义的一个体积内的多个图元的一部分(或全部)。基于该工作细分结构的元素形成一个加速结构的叶节点。每个叶节点包括一个对应的包围体积,该包围体积包围用于该叶节点的工作细分结构的元素内的那个或那些图元。该方法还包括递归地使包围体积凝聚以产生越来越大的包围体积。在每次递归凝聚中,该加速结构的一个元素包括一个包围体积,该包围体积是被凝聚成该元素的每个包围体积的并集。另一个方面涉及光子映射和形成加速结构以便在查询映射的光子时使用。在一个示例中,一种方法包括正向地追踪来自3-D场景中的光源的光线以对3-D空间中的对应位置进行标识,一个或多个光子有待沉积在该位置处。在体元层次内选择一个粒度等级,在该粒度等级下存储每个光子。基于该光子的有效半径的指示和距离该光源的距离来选择该粒度等级。在一个示例中,光线微分用于表示该有效半径;执行光子发射的硬件或软件还可以提供关于这种有效半径的元数据。每个光子位于基于该有效半径选择的一个粒度等级的一个体元内,并且该体元包括3-D空间中的用于该光子的标识位置。该光子相对于该体元的数据被高速缓存。响应于逐出一个高速缓存位置的指示,与该位置相关联的光子数据被写出并且用于产生表示所写出的光子数据的一个加速结构的一个元素。在这种情况下,在对光子流进行处理的过程中,可以混合或以另外的方式将光子组合成一个分布、函数或参数化的表示。光子映射的其他方法包括将所有光子映射到层次中的每一级上并且然后选择性地对该层次中的节点进行修剪以产生具有均衡的光子数量的节点,和/或产生一个以适当的精确度表示光子的加速结构。在一些示例中,例如,为一个加速结构中的更大的节点混合光子数据并且针对这些节点的面收集或在一个节点的中心处收集光子数据。其他需注意的方面在于实践所披露方面的系统可以保持流数据到或离开外部存储器的高带宽链路,而如上所述与处理元素形成一体的相对小的存储器提供用于高速缓存的空间。因此,使图元和加速结构数据流式化,并且不在外部存储器中保持大量的加速结构状态。通常,根据本披露构建的系统可以在O(nlogn)的最坏情况构建时间中产生加速结构,其中n表示所处理的图元的数量。在一些实现方式中,可以用最小浮点计算来处理图元,最小浮点计算允许相对小的固定功能硬件实现方式并且因此可以硬件方式成本有效地实现。可以调谐系统和方法以形成特殊种类的加速结构。附图说明为了清晰性,附图展现了按2-D形状在3-D空间中定义的图元和其他体积元素。然而,这些元素仍然被称为并且作为在3-D空间中定义的元素对待。本领域的普通技术人员从这些披露中将理解到如何在3-D渲染中实施这些技术。图1描绘了在其中可以实现本披露的多个方面的示例系统的概览;图2描绘了根据本披露的一种示例方法;图3描绘了可以用于支持图2中描绘的方法的示例分量方法;图4A至图4F描绘了3-D场景的多级细分的示例的各个方面,以便用于根据本披露的方法和系统中;图5描绘了有待为其创建加速结构的图元的示例微型集合;图6描绘了映射到选定粒度等级(LOG)下的体元上的图元中的一些图元;图7描绘了映射到与图6的图元不同的LOG下的体元上的相对大且规则的图元;图8描绘了一个示例,其中图6中出现的图元映射到比图6中的更细粒度LOG下的体元上;图9针对映射到具体体元上的图元的一部分描绘了一个立方体覆盖体积图10针对映射到图9的体元上的图元的一部分描绘了一个轴对准的覆盖体积;图11描绘了一个示例,其中图10的轴对准的覆盖体积被延长以包括另一个图元;图12描绘了包括来自更细粒度LOG的和来自直接在较粗粒度LOG下的体元中的图元的覆盖体积;图13描绘了根据本披露的高速缓存的操作的各方面;图14描绘了一个加速结构的逻辑视图,可以使用本披露的实现方式产生该加速结构;图15描绘了可以使用本披露的实现方式产生的加速结构的封装存储器展现;图16描绘了使用带有光线微分的光线追踪使光子沉积在3-D场景中的示例;图17描绘了确定用于光子的加速层次的过程;图18描绘了确定用于光子的加速层次的另一个过程;以及图19描绘了一个示例系统,在其中可以提供本披露的实现方式。具体实施方式以下信息涉及一种用于生成加速结构的算法的示例,该加速结构包括包围3-D场景中的表面的元素。在一个特定的示例中,由图元定义这些表面,并且该加速结构用于光线追踪。在另一个示例中,可以创建该加速结构用于在光子查询时使用。可以根据各种方法创建加速结构。尽管预期加速结构加速光线相交的测试,并且确实达到了该目标,但加速结构的使用在整体渲染系统内产生其他开销。例如,存在为给定场景构建加速结构的开销。可以为静态3-D场景(即,不是动画的3-D场景)设计一些加速结构,并且相反,可以可变地放置视点和该场景中的光。在这种情况下,加速结构的相对仔细且耗时的构建会是合乎情理的。如果在长时期中将不变地使用静态场景(例如,从一个视点上观察有待构建的建筑模型),则出于这种目的,在该加速结构的质量整体判断中可以忽略构造该加速结构所需的时间。然而,在动态场景中,对象可以进入、离开或在该场景中移动,改变其几何形状等。在这些种类的应用中,构建或更新加速结构的开销的量值可以成为对来自该场景的图像进行渲染所需的计算的一个实质性部分。对于这些更频繁更新的场景(如在动画场景中)而言,或者当可以对该场景作出实时变化时,加速结构的重建或构建时间(以及实现这种构建时间所需的计算机资源的量值)可以是对构建加速结构的给定方法的可用性进行判断一个因素。因此,对于动态应用而言,构建和使用加速结构的方法应将构建(或重建/修改)加速结构所需的时间和资源以及加速结构帮助加速场景的实际光线追踪的程度两者作为因素计入在内。这种情况还考虑了以下一般事实:对于构建加速结构的给定方法而言,就每条光线将需要比较少的相交测试的意义而言,花费更多的计算资源以构建给定加速结构产生了“更好”的加速结构。在光线追踪的背景下,使用加速结构的一个目标是,随着场景变得越来越复杂,对光线相交测试获得更接近恒定的分辨时间。可以针对给定的三角形计数以及解析每个光线相交花费的平均时间(在此称为“遍历时间”)基于对结构进行组装所需的时间来判断创建加速结构的途径。测量的示例单位可以分别是“每秒三角形数量”和“每秒光线数量”(可以为特定架构或计算资源的固定和特定集合对此进行分析)。可以有用的是将这些因素进一步表达为“每光线的节点测试数量”和“每光线的三角形测试数量”,这可以使得度量标准更加独立于具体的计算资源。给定加速结构构建算法的普通性还会是有意义的。例如,一些种类的加速结构构建算法可以比一些种类的3-D场景的其他算法表现得更好。此外,如果在加速结构中使用特殊种类的形状或程序,一些种类的算法可以产生更好的加速结构。例如,在用于加速结构的许多典型的包围体积中可以不良地包围(例如,太松散)“细长(long-skinny)”和/或离轴的几何形状。对此特征不敏感的形状在遍历过程中与光线相交成本更高并且难于在加速结构组装过程中产生。如果希望将一种给定的加速结构构建方法用在多变的并且经常未知的场景构建条件下,则可以令人希望的是为各种可以具有不同种类的特征的样本场景收集这种度量标准,这些特征可能用不同的方式挑战该加速结构构建算法。更确切地说,一些加速结构方法可以具有有利的遍历时间,但以缓慢的构建时间(许多秒或分钟的量级)、对商业上可行实现方式的不切实际要求,或两者为代价。还可以使场景特定效应变得明显。在一个方面中,本披露涉及多种加速结构构建方法,这些方法在动态场景(如在动画中)或每秒需要更新3-D场景许多次的其他情况中是有用的,但其中计算要求是现实且均衡的(然而,不要求与动态场景一起使用)。在一些方面中,本披露涉及可以基于目标可得计算资源或给定性能目标或两者进行缩放的多种方法。因此,在一些方面中,本披露涉及用于实现均衡系统的方法,其中考虑了加速结构构建时间和光线遍历时间。根据本披露的加速结构构建算法的示例特征可以包括以下各项中的任一项:避免递归的流式管线、O(nlogn)最坏情况构建时间,其中n=三角形计数(triangle_count)。简单且高效的方法确定自底向上构建中的空间邻接。使用与使用简单整数运算并且避免/减少浮点计算的体元化/3D扫描转换类似的方法处理三角形。中间数据传送/带宽使用会受到约束以保持在片上本地存储器的特定量值内。可以确定结果加速结构的质量与可用本地存储器存储之间的折中。可以流式化片外数据传送/带宽使用,如流式化几何形状的读出和流式化加速结构定义数据的写入。本披露提供了可以跨细长几何形状放置多个包围体积以收紧几何形状的包围以便减少浪费的光线节点测试的算法。Kd树提供规则结构的示例,并且包围体积层次(BVH)是可能不规则的加速结构的一种分类。加速结构还可以是同类的(其中,给定的元素仅直接包围其他的元素或图元,并且叶节点直接包围所有图元)或者不同类的,其中,任何给定的元素可以直接包围其他元素和图元的组合。在以下披露中,可以考虑用顶点定义3-D空间中的一个点,并且该顶点可以用多个值的元组表示。可以通过3个顶点定义一个三角形图元。在三角形网格中,可以在不同图元之间共享多个顶点,而不是通过3个值的独特集合定义每个图元。一个网格还可以包括一个解释规则,如缠绕顺序。例如,三角形条带网格使用一个附加顶点结合前一个三角形的两个之前的顶点来定义多个三角形。因此,对于n个顶点,描述n-2个三角形。“三角形”网格使用3个单独的顶点定义一个三角形。如此,对于n个顶点,描述n/3个三角形(n可被3整除)。可以实现三角形图元的各种其他展现。并且,在各种实现方式中,图元不一定是三角形的而可以由其他种类的表面形成。如此,三角形图元的示例不是限制性的,而是用于清楚且简洁地阐述本披露的各方面。系统和方法可以处理图元的网格(如三角形条带)并且可以输入或以另外的方式访问针对有待处理的网格的顶点连接性规则。可以使用标识符对网格进行标识;指针可以参照对三角形网格进行定义的顶点数据的阵列。如总三角形计数的信息。本披露主要涉及一个示例,其中,固定3-D场景细分(例如,体元格栅)用作工作场景细分,以便将图元流映射到3-D空间的多个部分上。将一个图元集合映射到3-D场景的一部分上之后,从该映射中创建有待在渲染过程中使用的一个加速结构的一个或多个元素。因此,在本披露中,可以产生一个最终加速结构,该最终加速结构具有与用于将图元映射到3-D空间上的场景细分不同的元素。然而,该最终加速结构不一定在特征上与用于映射的3-D场景细分不同。在一个示例中,关于3-D场景中的位置来限定几何形状,如使用3-D世界空间坐标,经常从(0,0,0)位置进行参照。这样,所有几何形状将位于3-D空间中的某个地方,在场景的所有维度中共同地定义该几何形状的范围。3-D场景细分可以与被几何形状占用的空间进行匹配(例如,该场景细分的顶层部分的位置可以与该几何形状对准)。然而,在此处的一种方法中,3-D场景细分的全范围在大小上被四舍五入成2的下一个更高次幂。然后,根据2的幂确定所有场景细分的大小并对其进行放置,并且使用整数为其编索引。在一个示例中,该3-D场景细分为轴对准立方体积的一个多级集合,为了简洁性,在此每个立方体积被称为一个体元。可以在3-D中将体元类推到像元。多级包括3-D场景中的任一给定点被不同大小的若干体元包围(封闭),其中不同大小的体元处于多级集合的不同层级中。在此通过粒度等级(LOG)对层次中的每个层级进行标识,在多级集合内引起从较大到较小立方体的渐进。例如,3-D场景的整体可以标识为LOG=0,并且其可以包含一个单个立方体。在一个示例中,可以发现给定LOG下的多个立方体为(LOG+1)^3,作出1,8,27,64等的渐进。每个LOG下的体元共同地覆盖该3-D场景。在一个示例中,有32个粒度等级,这将允许LOG=31下的32,768个体元。除非另有说明,否则将图元映射到其上的3-D场景细分可以将空间表示为3-D场景内各分辨率下的分立体元的一个3D格栅集合。如将详细解释的,可以使用3-D整数坐标[xi,yi,zi]对给定LOG下的每个体元单独地进行定址。为了充分地限定该多级集合中的任何体元,还必须限定该体元的LOG。限定3-D整数坐标限定了具有所限定整数坐标的所有LOG的一个体元集合。因此,本披露提供了一种3-D场景细分,允许容易地对该3-D场景细分的任何成员进行定址或唯一地进行标识。体元为示例途径,而不是排他性的。更普遍地,可以使用允许用从小到大变化的邻域对3-D空间的细分部分进行定址的任何种类的途径。仍然更普遍地,可以使用允许对3-D空间的细分部分进行定址的任何途径,该3-D空间限定以下各项中的一个或多个:细分部分的形式、细分部分相对于场景坐标轴的定向、以及细分部分的相对大小。例如,如以上举例说明的,3-D空间中的点和一个偏移量集合可以用于描述一个包围体积集合,而不是描述每个体元的一个明确整数坐标集合。鉴于以上内容,关于附图,以下介绍了各种细节和示例。图1描绘了一个示例系统50。系统50具有一个输入图元流51的分类器52。分类器52为每个处理的图元产生一个体元坐标[XYZ]和一个LOG([XYZ]LOG59作为示例)。分类器52耦合到扫描转换器54的输出端上,该扫描转换器可以访问表示一个体元坐标系统的数据53。扫描转换器54输出到一个体元高速缓存56。扫描转换器54可以作为一个数字微分分析仪来工作以用于沿着图元的边缘步进并且确定遇到的每个像元是否在该图元内。在一些实现方式中,扫描转换器54可以使用整数来操作以用于定义细分元素的边界;在一些实现方式中,通过增加空间的大小使所有细分元素与整数边界对准,包围元素被放置在该空间中以允许实现上述对准。与传统扫描转换算法(其可以要求该边缘至少横穿多边形的中心)相比之下,此处的扫描转换对落入该图元内的体元的任何部分进行追踪。可以在固定功能硬件中有益地实施扫描转换。可以实施各种途径以提供扫描转换,以便用在本披露的实现方式中。更普遍地,多种实现方式可以提供一种产生完全包含该图元的一个或多个3-D形状的一个集合的描述,并且可以分开地对每个形状进行定址,如以便为每个这种形状建立一个高速缓存条目(以下所述)。体元高速缓存56通过体元高速缓存选择器/输出端58将高速缓存条目输出。体元高速缓存选择器/输出端58可以回收来自一个所逐出的高速缓存条目的数据(如以下解释,被称为Vbnode数据55)。这种数据还转到格式转换器60,该格式转换器产生存储在存储器62中的加速结构元素。Vbnode数据55也可以存储在存储器62中。如果体元高速缓存选择器58不回收,格式转换器可以回收Vbnode数据55。以下更加详细地披露了这些组件的示例操作和使用。Vbnode数据定义一个临时数据结构,该临时数据结构表示图元所映射到的空间细分的一个元素。因此,每个Vbnode表示一个空间3D体积。每个Vbnode可以包含指示对其他Vbnode关系的数据。例如,Vbnode可以具有两个链路指针,分别指向一个同层级Vbnode和指向或者一个第一子Vbnode或者一个顶点。就其不描述最后层次中的最终元素的意义而言,Vbnode是瞬态的。相反,在将图元映射到工作空间细分上的过程中创建它们、将其传递到拷贝出阶段以便转换成加速结构的最终元素并且然后不再需要它们。在一些实现方式中,不管总体场景层次最终有多大,对Vbnode进行管理从而使得它们将全部保持在本地存储存储器内。在一个示例中,Vbnode旨在尽可能合理地小以便允许其足够的数量在本地存储中的层次构造过程中是活跃的。在一种实现方式中,每个需要32个字节,允许每64高速缓存行保留2个。可以在Vbnode中提供的示例信息包括对该节点是否为一个叶节点的一个指示、对该节点的引用的计数。如果该节点具有零引用,则不需要保持该节点。指示该节点相对于父节点所在的地方(例如,在八叉树实现方式中,Vbnode可以指示该父节点的卦限)。Vbnode还可以将数据携带通过该管线,从而使得下游功能或稍后时间中进行的功能可获得该数据。图2描绘了一种示例方法的概览。在120,将图元数据输入到分类器21。在122,确定该图元的特征;在124,使用或分析所确定的特征以便选择该图元被体元包围时所在的粒度等级(LOG)。简言之,更细粒度的LOG致使使用更小的体元,而较粗粒度的LOG致使使用更少的更大体元。分类器21可以根据使用不同种类数据输入的一种或多种启发法来工作。关于图3提供了与图元分类的示例方法相关的进一步细节。在126处,对用于包含所选定LOG下的图元的一部分的每个体元的空间定位器进行标识;本质上,对包含该图元的任一部分的体元的集合进行标识。用于每个体元的空间定位器和LOG确定高速缓存56中将与该图元相关联的条目的集合(见图13)。在128,并且针对在126处确定的每个体元,计算一个覆盖范围。在一个示例中,用预先选择的形状表示覆盖范围,在所选定的体元内具有多个维度和一个位置,从而使得该覆盖范围仅是一个包围该体元内的所有图元的所有部分的单个连续形状。在一个示例中,覆盖范围可以是立方体形状,或者为轴对准的包围盒,但其不要求所有边具有相等的维度。覆盖形状的其他示例包括面体和球体。可以基于将在最终产生的加速结构中使用的一种形状来选择用于表示覆盖范围的形状。在130,在128处计算的覆盖范围存储在高速缓存56中。如上所述,针对每个被标识为包含被处理图元的一部分的每个体元,执行126、128和130中的每一个。因此,在处理图元之后,可以用至所处理的图元的链路对一个或多个体元高速缓存条目进行更新,并且将相应地更新与这些体元高速缓存条目中的每个相关联的一个或多个对应覆盖范围。在130之后,可以处理进一步的图元。最终,将逐出该高速缓存中的一个体元,因为在大多数实现方式中,被分配用于高速缓存的存储器的量值将小于存储场景的所有图元的数据所需的存储器的量值,从而使得必须实时地创建加速结构的元素并且其在执行所披露方法的系统中是瞬态的。在142,从所逐出的高速缓存内容中确定加速结构的一个或多个元素。在创建后不能修定或编辑加速结构元素的情况下,更大的高速缓存大小允许创建更好的加速结构。当仅瞬态地保持几何形状和其他内容时,出现这种情况,从而可能使得编辑加速结构节点所需的状态是不可获得的。为了最小优点,针对实际考虑(如引起执行过多计算),也可以避免这样。向128提供从该高速缓存中逐出的内容的覆盖范围信息,其中,基于所提供的覆盖范围信息和现有的覆盖范围信息为更高层级体元计算覆盖范围。在其他实现方式中,覆盖范围信息也可以继续经历步骤120至126。实际上,可以将图元流化,并且当高速缓存已满时,可以从高速缓存中逐出体元,从而使得较粗粒度的体元开始从更细粒度的体元接收覆盖范围。在同类的实现方式中,所有图元被叶节点包围,从而使得较粗粒度体元仅包围叶节点的覆盖范围,而不直接包围图元本身。在多种实现方式中,可以刷新高速缓存56或者该管线以另外的方式运行以在处理覆盖盒之前完成所有图元的处理。在一些实现方式中,高速缓存56可以具有两个独立可控的部分,这些部分分别被分配至叶节点和非叶节点。图3描绘了一种对图元进行分类的示例方法,以便选择有待包围的图元所在的LOG。关于图4至图12披露了图2与图3如何与不同种类图元一起表现的示例。在152,对包围被表征的图元的轴对准盒的表面积进行计算。在154,可以发现被分类图元的绝对大小,并且在156,可以确定该图元的长宽比。该图元的长宽比为长度对宽度比率的计算结果;细三角形具有相对高的长宽比。例如,高的长宽比用作一个指示物,指示该图元可能无法适当利用单个大的包围体积。在160,针对该图元,计算图元表面积对该包围体积的表面积的比率。这种比率用作一种指示,指示该图元关于该包围盒的一个或多个轴(除非变换,否则对应于场景轴)对准的良好程度。例如,三角形通常可以竖直走向,并且因此与包围体积的一个竖直面对准,该竖直面可以是更小的厚度、具有更小的表面积,从而使得图元表面积对这种包围体积的表面积的比率将更大。本计算是确定这种特征的一种示例方法;可以提供其他方式。对于所有这些确定结果或计算结果而言,可以缩放或以另外的方式改变数字,并且它们的确需要将可以外部使用的或可获得的任何数量表示为一个绝对比较。例如,对于轴对准比率,该图元的面积的两倍可以用于计算该比率,同时仍然保持一致的度量标准。类似地,在适当情况下可以清除常量以简化计算。图3的剩余部分提供了对这些数据进行求值以便实现LOG选择的示例。如将变得明显的是,这种求值不需要具有坚实的决定或硬性的决定,而相反可以是启发式的。图3中描绘的求值被显示为全都被并行执行,但那是一个实现方式细节。可以通过测试参数或条件的不同集合来执行调谐。在162,相对高的长宽比在165处引起更细粒度的趋势。在163,具有低的长宽比的相对大(绝对大小)的图元在166处引起更粗粒度的趋势。在164,指示相对高的轴对准的轴对准得分在167处提供更粗粒度的趋势。在170处,基于这些输入中的一个或多个进行粒度等级的选择。如以上介绍的,对该选择的输入通常在多个值的连续统上,并且可以具有相当多的粒度等级(在一个示例中为32)。进一步地,某些启发法对一些情况而言比其他情况更相关。例如,以上已经介绍了给定体元内的覆盖范围的概念,并且以下将更加详细地对其进行描述。如果用AABB追踪覆盖范围,则轴对准可以是一个被更高加权的输入。如果对球形覆盖范围进行追踪,则可以对长宽比进行更高加权。可以执行自动化调谐算法,该算法将搜索输入空间并且针对不同的加速构建设置确定什么选择标准是合适的;可以执行手动调谐,或者以上的组合。可以向这种过程提供其他输入,并且这些是示例性的。在所有情况下,不需要提供所有的输入。图4A至图4F开始一个应用以上披露的简单示例。图4A描绘了体元5至9,被提供作为3-D空间细分以便用于构建加速结构。图4A的示例示出了多个体元具有相同的形式并且彼此嵌套的情况。此处,术语“形式”用于描述空间细分中所用的一个或多个体元形状的各方面。例如,如图4A中的2-D中所示,立方体形式在所有三维中提供相等的长度边,而矩形形式具有一个细长的维度。形式还指非立方体形状的长宽比,因为矩形形状可以具有低长宽比的表面(更立方的)和/或具有高长宽比(细长并且没那么立方的)。由于实际上体元在3-D空间中,所以矩形的一些面可以是立方体的,而其他面高度细长。并且,因为可以用不同大小(例如,作为嵌套体元结构,像图4A中所示的那样)提供给定形式的体元,形式还可以指不同的缩放特性,其指示给定体元放大或缩小的程度。在一种方法中,体元的每一维均匀地缩放(例如,缩放2的幂)。在另一种方法中,一维或两维均匀地缩放,并且另一维可以有区别地缩放或根本不缩放。术语“形式”还可以指3-D空间中的体元的定向差(例如,与3-D坐标空间中的一个平面或另一个平面的对准)。如关于图4B至图4F所示,可以提供对不同维而言具有不同相对大小、定向差等的各种其他形式。总而言之,图4A描绘了一种途径,其中所有体元具有一个立方体体元形式。图4B至图4F描绘了其他形式的体元的多方面,其可以在细分中单独或共同使用。在一个具体方法中,在任何给定空间细分内,可以提供多种体元形式的体元,并且来自可获得体元形式的适当体元的集合可以被选择用于包围一个具体图元。在图4B,示例体元14a和14b在横截面上是矩形的,在横截面平面中具有非立方体横截面。在图4B中,没有描绘深度,并且普通技术人员将从本披露中理解到体元14a和14b的深度为这些体元的形式内的另一个可变参数。例如,该深度可以大致等于、小于或大于该高度。图4B还描绘了矩形体元15a和15b(具有一种形式,其中横截面平面的长宽比高于体元14a和14b),并且还描绘了体元15a和15b将嵌套像体元14b一样的体元所定义的体积(在这些体积内),因为将会跨过由该虚线框标识的空间来重复体元14b,在该虚线框中定义体元14ab和和15ab。体元14a和14b之间的定向差示出了给定维度形式的体元还可以具有多个定向差。为了清晰性,在所有这些示例中,对于所描绘的每个体元形式而言(例如体元14b),正在使用的整个3-D空间可以填充有那种形式的体元,并且再次填充有相同形式的但更小的体元。多种不同大小和定向下的每种体元形式可以填充该3-D空间。图4C描绘了为3-D细长体元的体元16a和16b,并且虚线横跨体元16a的面,描绘了该面的维度内具有形式16a和16b的体元的缩放,但不是该深度。图4D至图4F描绘了体元17至19,这些体元在3-D空间中具有不同的缩放度和定向。在一种方法中,体元为轴对准的包围盒,与图4A至图4F的示例一致。从以上披露中,在一些实施例中应明显的是将3-D场景进行细分从而使得3-D场景中的每个位置(定位)在多个体元内,这些体元可以具有不同形式和/或不同大小中的一个或多个。可以单独地对这些体元中的每个体元进行定址。可以根据预先确定的惯例来构造地址。例如,可以选择体元的一个预先确定的形式集合(例如,立方体、正方形末端的细长矩形、薄而大面积的矩形等等)。这些形式中的每种形式可以被安排成用于在不止一个定向上填充该3-D场景,例如可以平行于XY平面以递增的Z并且在YZ平面中以递增的X堆叠多个薄而大面积的矩形。这样,一个地址包括对体元的形式进行标识、对该形式的定向和对体元的大小以及还有位置进行标识的多个分量。因此,这些披露示出了一个完整的体元集合(可以从该集合中选择一个或多个体元用于包围一个具体的图元)可以由许多不同形式、大小和位置的体元组成,从而允许更好地选择体元来实现更好的包围体积。例如,灯柱和电话线柱可以被相似形式但不同大小的体元包围,而与该灯柱大小大致相同的壁可以被具有相似高度但总体上不同形式的体元包围。图5描绘了位于3-D空间中的图元10至13,包括将为其创建加速结构的图元。图6描绘了在选定LOG下的体元20至23,其中图元10至12在体元20至23上重叠。图7描绘了较粗粒度LOG下的体元9,在该体元中包含了图元13。图6和图7描绘了多个图元可以完全被包含在一个体元中(如图7中)或者可以被一系列体元包围。图6和图7还描绘了图元可以具有非常不同的形状,具有不同长宽比和轴对准。图6描绘了图元10比图元11更加轴向地对准,并且描绘了图元10和11两者与图元13相比具有相对高的长宽比。根据图3的启发法,图元13可以映射到比图10和11更粗的粒度LOG上。图8描绘了还仍然在更细粒度LOG下的体元25至31,并且这些体元共同地包围图元11。图元11没有图元10那么轴对准,并且因此,可以有益地使用体元25至31的一个更紧的拟合集合,从这些体元中产生加速结构元素。当然,取决于各种情况,还可以选择仍然更细粒度的LOG,这将仍然提供更紧的包围,但以更多的体元元素为代价,这通常与在最终加速结构中具有更多元素相关联,因此在避免对图元而言太松散的包围盒、但不产生太多的全都需要被测试和存储的加速元素之间给出折中的示例。图9描绘了体元20,其中图元11的一部分在该体元内。图9描绘了一个覆盖范围32,在本示例中其本身是一个立方体(要求所有边缘长度相等)。对于给定的体元而言,“体元覆盖范围”或简单地“覆盖范围”对体元的一部分进行定义,该部分至少部分地包围该体元中的所有几何形状(或者直接地或者并且被更细粒度的体元包围)。在一种示例实现方式中,该体元内的轴对准包围盒可以表示该覆盖范围并且与该体元的缩放成比例地定义。由于可以在一个体元位置内定义覆盖盒,所以可以用大幅度降低的精度展现该覆盖盒。在一个示例中,可以使用每轴8比特。在另一个示例中,覆盖体积为立方体。可以使用其他展现形式,如位置和在相对于该位置的一个或多个方向上的范围;在一些实现方式中,可以用任意复杂形状表示覆盖范围;然而,实现方式从使表现覆盖范围所需的数据量最小化中受益,从而使得可以在固定大小的高速缓存中同时表现更多的体元。图10描绘了根据图9的一个示例,其中除了用AABB形状而不是立方体来追踪覆盖范围33之外,再次描绘了体元20和图元11。图11描绘了覆盖范围为空间的并集,该空间并集包括一个体元内存在的图元的所有部分;具体地,图元11现在添加到体元20上,并且覆盖范围34被生成作为覆盖范围33的并集,并且也是包围图元10所要求的。图12描绘了覆盖范围和图元如何可以聚合成较粗粒度LOG下的体元。还描绘了覆盖范围32和体元21以及图元10的覆盖范围35。如所描绘的,覆盖范围35和覆盖范围32被添加到体元38上。图元36也直接添加到体元36上。因此,体元38的覆盖范围在有待用于表示该覆盖范围的形状种类所确定的约束下(例如,体元、AABB、球体或其他形状)是覆盖范围35、覆盖范围32和图元36的并集。在本示例中,基于更细粒度体元的覆盖范围并且针对被体元(例如,体元38)直接包围的任何图元(例如,图元36)计算覆盖范围。因此,不直接从本示例中的图元重新计算较粗粒度体元的覆盖范围。图13描绘了高速缓存56的示例及其操作。如上所述,高速缓存56存储每个体元的空间位置ID和指示该体元的LOG的数据。图13中描绘了这种情况的示例,如空间位置ID205、207和209。LOG206、208和210分别与空间位置205、207和209相关联。图13描绘了每个空间位置ID还具有一个保持的覆盖范围,该覆盖范围指示该体元内(直接地或间接地被包围)所有图元和图元的各部分的并集。此外,还提供了每个覆盖范围的和正在相对于该空间ID被高速缓存的形状(图元)的标识符。这种信息至少应对这些覆盖范围和/或形状进行标识,但不需要包括它们的定义数据。在操作中,使用被输入到高速缓存位置映射器220的空间坐标和LOG(例如,[X,Y,Z]LOG218)对高速缓存56进行定址。这可以是为了向现有体元高速缓存条目添加覆盖范围或图元和创建新的体元高速缓存条目两者。在该示例中,映射器220使[X,Y,Z]LOG218散列(231)以产生一个用于对候选高速缓存位置(Loc237-239)进行标识(233)的散列值235;本方面与一个交错因数相关,并且如果该高速缓存允许任何位置存储任何体元,则不需要对候选位置进行标识,并且相反,可以保持一个空闲位置列表。如果该操作是添加体元(240)操作,则确定(245)是否有空闲位置;如果有,则在那里添加该体元;如果没有,则逐出(249)一个现有体元位置以使一个位置空闲。对于向位置添加的操作(241)而言,对该位置中是否仍然有空间做出确定(242),如果有,则添加图元或覆盖范围,而如果没有,则执行逐出(249)。可以根据启发法确定逐出哪个位置,如使用度量标准、或该位置中的元素的数目、或该位置中的体元的粒度等级与其他位置的平均值相比的差异、或这些的组合,或者另一种认为合适的启发法。与覆盖范围相关联的信息可以包括一个产生该覆盖范围的线程标识符、该覆盖范围从属的体元的地址以及一个至同层级和子节点(如果有的话)的链路。出于应用特定目的,可以提供其他字段用于将数据传送通过高速缓存。应理解到可以在执行根据本披露的方法(和系统操作)的过程中进行各种变换。没有披露所有可能的变换,因为这些是实现方式的问题并且鉴于这些披露当进行实现时普通技术人员将能够确定是否和何时使用某种变换。以下提供了这种变化的示例。如在以上示例中介绍的,3-D场景空间被细分成多个轴对准立方体体积的多级集合(如体元层次)。可以使用世界空间中的实数描述输入几何形状;因此,所有输入几何形状可以变换成一种具体LOG(或多种LOG)下的体元格栅内的坐标。此变换可以是缩放和平移成完全包含所有输入场景几何形状的包围立方体。在层次构造开始时,可以假设已知世界空间的轴对准的包围立方体包含所有这种几何形状(如来自渲染器内的在先顶点处理管线级的输出,耦合到此加速结构构建器上。变换之后,可以在本地坐标系中执行所有内部操作。当发生拷贝出时,使用逆变换在来自变换3-D空间中的展现的场景层次中产生对应的世界空间包围体积。为了执行这种逆变,该体元层次可以与可以包括每种LOG的特定数据的数据相关联。在一个示例中,这种数据可以包括:(1)本层次的包围立方体的最小世界空间坐标,(2)本层次的世界空间包围立方体的范围,(3)每LOG缩放信息,(4)场景体元到此LOG下的体元的缩放因数,(5)给定LOG下的体元的世界空间大小,(6)此LOG下的体元覆盖单元的世界空间大小,以及(7)此LOG下的最大可寻址体元。一些实现方式也可以提供或允许实现内部变换,这些内部变换为加速结构元素的一个定义的子集提供增强的轴对准,这些元素典型地将包围一个物体。例如,该场景中的物体可以被加速结构层次内的自含式子树包围。可以通过允许任意方式转动该场景物体来将本物体及其子树转动成相对于一个内部有意义的轴集合而轴对准,这意味着不再相对于这些场景轴一致地定义该物体。在加速层次和/或场景几何形状的光线追踪或其他使用过程中,当光线将此子树输入到该内部轴集合中时可以变换该光线(原点、方向和一个或多个裁剪距离)并且测试其在该变化条件下的相交,这允许在更高效的层次中遍历。可以将相交点变换回场景空间,如为了比较碰撞距离,或在着色过程中。图14和图15描绘了从所逐出的体元高速缓存位置的内容中导出的加速结构的多个方面。图14描绘了叶元素277和278,其分别包围图元279-280和图元281-282。这些节点元素进而被较粗粒度元素274和275包围。元素2725包围元素275和图元273。275与274之间的虚线指示同层级关系。图15描绘了来自图14的元素的打包,这可以被提供用于存储在存储器中。加速结构可以存储图元的定义数据的标识符或指针、和/或该加速结构的元素。然而,鉴于顶点可以具有与其相关联的属性的不同量值,图元可能需要更多的存储,并且可能需要大小可变的存储。在一个方面中,以上披露描述了用于为包围3-D场景中的所有几何形状的叶节点的集合确定包围体积的示例系统和方法。这些叶节点可以大小不同、根据图元的一个或多个特征以及可能基于有待在加速结构中使用的一种节点进行选择。可以用递增的抽象等级将包围体积递归地凝聚成越来越大的包围体积。图16开始介绍用于构建用于光子映射的加速结构的途径。图16示出了一个示例3-D场景,其中,灯350和灯349将光发射到3-D空间中。在光子映射中,通过正向追踪来自多个光的光线,光子首先沉积到一个场景中。光子展现出从可从一个空间位置或体积中接收的位置中发出的光的特征,从而使得从一个点取样光子可以提供关于该点的光照信息。在本示例中,根据该光的特征向从灯上正向追踪的光线分配一个微分。例如,光线355从灯350发出并且被分配一个微分351。光线357从灯349发出并且被分配一个微分352。发现光线355在相交点360与一个形状相交,而发现光线357在相交点361相交。为了简明性,描绘了一个单个形状,但在实际场景中,相交点经常是宽散开的,并且将从个光投射出许多光线。图16描绘了一条也被分配有一个微分353的反射光线356。这种反射光线356还可以用于确定光子沉积的特征。如将描述的,光线微分可以用于确定或以另外的方式追踪光子应如何展现在加速结构中。图17提供了自底向上的光子加速结构构建的示例。在402,光源被标识为光子源(对场景光源进行标识),并且为了确定每条光的光子,在404,产生多条光线和多个微分。可以通过光源的特征确定每条光线的微分。例如,聚焦光源将接收比散射光源更小的微分。在406,对所产生的光线进行追踪以对相交进行标识(此处,追踪包括对反射、折射等进行建模的次级光线进行追踪)。在408,针对所检测到的相交点,光子沉积在该3-D场景中的多个位置处。在410,每条光线的微分(现在与特定光子有关联)用于选择将直接存储该光子的体元的粒度等级。如在以上讨论中,存在多个嵌套的体元,每个体元可以包围3-D空间中的一个具体位置。光线微分和到该光线的相交点的距离可以用于确定该光线围绕一个相交点的宽度。所以,例如,在某一距离外相交的宽微分在相交点提供宽光线,而在相同相交距离处具有较窄微分的光线将较狭窄。在相交点具有较宽的光线驱向于使用较粗粒度等级的体元(较大的体元),而相反地,较小的光线驱向于较细粒度等级(较小的体元)。较小的体元允许比较大的体元更精确地定位光子,但如果该光线不管怎样都是宽的,则该精度是不必要的。因此,在412,选择每个光子的LOG,并且在414,每个光子与所选定LOG确定的体元的高速缓存位置以及相交点的位置相关联。在416,可以按照上述内容管理高速缓存逐出。格式转换也可以类似地进行,在该格式转换中在该加速结构中使用的形状可以不是体元;可以使用上述形状。在一些实现方式中,光线可以与一个提示或其他元数据一起发射,该提示或其他元数据有待用于为由于与该光线相交而沉积的光子选择LOG。这种元数据可以被视为无方向光子规格的效果的半径。光子沉积可以包括使光颜色和强度与一个点或多个点的分布、或多个参数相关联,通过在计算中解释或使用这些参数,这些参数可以用于确定光颜色和/或强度。通过直接指定有待定位于3-D场景中的光子来完成光子沉积,并且提示和其他元数据可以用于选择体元的LOG以包含这些光子。在另一个方面中,可以将给定体元内的光子混合在一起(颜色混合),并且它们的位置全都用该体元内的单个点表示,如中心点。还可以将光子的贡献合并成一个分布,如体元的每个面的高斯瓣分布。本质上,通过将这些光子混合在一起并且不试图区分每个体元内的每个光子的3-D位置,可以节省存储空间。这种节省作为关于精确度的折中,但可以调整实现方式,从而使得实现这些因素的适当均衡。可以与确定向特定体元添加一个给定光子相结合来完成这种混合或合并。可以创建体元的稀疏层次,该稀疏层次包含具有多个光子并且可以用于光子查询的体元。图18描绘了一个实施光子映射的不同途径的过程。图17描绘了以自底向上的方式处理光子,其中,在多个道次中创建使3-D空间的较大区域抽象化的越来越大的体积。图18描绘了一种不同途径。具体地,在418,对光线进行追踪,并且在420,光子沉积在相交点上。在422,对于定义的全体元结构而言,将光子添加到所有粒度等级下的每个体元中(例如,对于32级体元层次,将相同的光子添加到该体元层次32次,其中,空间坐标相同,但LOG不同)。因此,产生出包含所有粒度等级下的所有光子的体元结构。在这种产生之后,在428,自顶向下遍历该体元结构一系列道次。在430,当在给定LOG下遇到一个体元(“当前体元”)时,访问或产生该体元内存在的光子的计数。如果该计数大于一个阈值,则从该层次清除当前体元,并且当前(现在已清除)体元的子节点直接连接到所清除的体元的父节点上。在432,对于该当前体元的每个子节点而言,并且如果没有清除掉该当前体元(因为其具有比阈值数量光子更少的光子),则检查该当前体元的每个子体元。对于具有少于(或等于)该阈值数量光子的每个子体元而言,清除该子体元。除非另有说明,否则当子体元具有小于或等于阈值数量的光子时,则可以将该体元的光子推入较低粒度等级的体元(较大体元)内。换言之,图18描绘了一种根据沉积到该层次的不同部分中的光子的数量对一个完整体元层次进行修剪的途径。在一定意义上,这种修剪是针对在不同体元中的多个加速元素与多个光子之间保持平衡。该方法允许在有益的情况下使用较小的体元保持精度(在它们具有相对较高数量的光子的情况下)。例如,透镜可以使光集中并且该集中点将具有一个大的光子密度。因此,由于执行所描述的过程的实现方式,将自然地为那些光子保持小体元。图19描绘了一个示例系统的多个方面,其中,可以实践这些披露的实现方式。图19描绘了一个集群阵列511,该阵列包括核心512-518,其可以执行计算,如图形计算。数据管理504-510的集合可以设置有待在集群511的阵列上执行的计算。集群阵列511可以具有被一个或多个核心512-518使用的纹理管线520和522。某些种类的计算可以使用包单元524,该包单元具有一个就绪堆栈526、一个收集定义/体元高速缓存528、一个空堆栈530和一个打包机532。扫描转换器534可以耦合到包单元524和格式器536上。格式器536进而可以与高速缓存层次542通信,该高速缓存层次与系统内存接口538通信。主机接口502可以通过总线540提供向另一个计算系统的通信能力。具体关于当前加速结构构建算法,扫描转换器534可以使用收集定义内存528来存储体元(例如,起到图1的高速缓存56的作用)。收集定义内存528以另外的方式起到针对一个或多个密钥来收集数据集合的作用,并且可以将该数据集合分发在多个包内。可以从空堆栈530中检索有待用来自收集内存的数据填充的包槽并将其输入到就绪堆栈526中,该就绪堆栈由调度器540读取,并且这种包的内容分布在该集群阵列511上以便执行。在一个示例中,在包中处理光线,并且收集定义内存528存储多个收集中的光线标识符,这些收集每个与一种形状或多种形状相关联,该一种或多种形状有待测试与每个收集中标识的光线的相交。加速结构的元素可以用于使更大数量的图元抽象化。示例中没有任何事物应被认为局限于遵循在此概述的操作原则和技术的实现方式、可以解决、应解决的问题、或者对这些披露在将它们外推、抽象或将它们应用在一种不同背景下的有用性的限制,以便解决一种不同的问题或者以另外的方式实现它们。相反,特殊性提供应轻易理解的具体示例,并且普通技术人员将能够采用和从这些披露中学习以便在具体设置中实施它们。以上各披露描述了确定某些条件、特征或值;普通技术人员将从这些披露中理解到这种确定不需要是恰好的,而是对这些情况足够的精确程度。可以提供计算机代码和相关联数据用于实施在此描述的过程的某些部分和其他方面,通过将处理器配置成用于在这种过程及其部分的执行中执行指令来实施。计算机代码可以包括计算机可执行指令,这些计算机可执行指令例如可以是二进制指令、中间格式指令(如汇编语言、固件或源代码)。该代码可以配置或者以另外的方式致使被配置通用计算机、专用计算机或专用处理设备来执行某一功能或一组功能。任何这样的代码可以存储在有形机器可读介质(如固态驱动器、硬盘驱动器、CD-ROM和其他光学存储装置)中,瞬时地存储在易失性存储器(例如DRAM)中,或非瞬时地存储在SRAM中。可以提供各种实现方式,这些实现可方式可以包括互操作硬件、固件和/或软件,该互操作硬件、固件和/或软件也可以体现在各种形状因数和设备的任意一种中,包括膝上型计算机、智能电话、小型个人计算机、个人数字助理等。此处描述的功能性也可以体现在外围设备或附加卡中。通过进一步的示例,这种功能性还可以实现在在单个设备上执行的不同芯片或不同进程之间的电路板上。例如,针对根据这些示例的机器可以包括一个使用固定用途的3-D扫描转换器、用于分析图元的多个可编程元件、以及用于高速缓存的多个内存。进一步的机器组件包括多条通信链路。在此描述的系统的实现方式可以是一个更大系统的组件,该更大系统包括其他输入和输出设备,如一个或多个应用处理器、网络接口、磁盘驱动器或固态驱动器、显示器等。在以上示例中,这些加速结构构建组件是产生输出的系统或机器的一部分,这些输出可以用于各种目的,如用于对视频游戏中的图像、或对动画进行渲染,或者用于存储或向用户传输等。尽管使用了各种示例和其他信息来解释所附权利要求书的范围内的多个方面,但不应基于这种示例中的具体特征或安排而隐含对权利要求书的限制,因为普通技术人员将能够使用这些示例导出很多种实现方式。进一步地,并且尽管以结构特征和/或方法步骤的示例专用的语言描述了某个主题,但应理解,所附权利要求书中限定的主题不一定局限于这些描述的特征或动作。可以用线性流程方式描述示例过程,并且描述了多个过程部分的序列,但这种描述是为了方便,并且可以并行地或以不同的顺序执行某些这种部分。此外,多个线程可以执行每个过程部分,并且不同线程可以被分配用于执行所描述过程的不同部分。此外,功能性可以分布在与除了在此标识的组件以外的组件、附加的组件或更少的组件中,或在与除了在此标识的组件以外的组件、附加的组件或更少的组件中执行。相反,公开了所述特征和步骤作为所附权利要求书的范围内的系统和方法的组件的例子。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1