当前位置: 首页 > 专利查询>辉达公司专利>正文

用于构建加速结构的系统、方法及计算机程序产品技术方案

技术编号:8713098 阅读:200 留言:0更新日期:2013-05-17 17:21
本发明专利技术提供了一种用于构建加速结构的系统、方法及计算机程序产品。在使用时,识别与场景相关联的多个基元。另外,利用这些基元来构建加速结构。

【技术实现步骤摘要】

本专利技术涉及渲染图像,并且更具体地涉及执行光线跟踪(ray tracing)。
技术介绍
习惯上,已经使用光线跟踪来在显示场景内生成图像。例如,该显示场景的多条射线和多个基元(primitive)之间的交叉可以被确定,以渲染与这些基元相关联的图像。但是,当前用于执行光线跟踪的技术与各种限制相关联。例如,当前的用于执行射线追踪的方法可能会低效地构建与该光线跟踪联合使用的加速结构。这可能导致时间密集地构建与大量基元相关联的加速结构。因此,需要解决与现有技术相关联的这些和/或其他问题。
技术实现思路
本专利技术提供了一种用于构建加速结构的系统、方法及计算机程序产品。在使用时,识别与场景相关联的多个基元。另外,利用这些基元来构建加速结构。附图说明图1示出了根据一实施例的用于构建加速结构的方法;图2示出了根据另一实施例的在构建加速结构期间用于执行剖分的任务队列系统;图3示出了根据又一实施例的使用莫顿(Morton)编码的基元组的排序;图4示出了根据又一实施例的对应于图3中所执行的排序的多个中间分裂(middle-split)的队列;图5示出了根据又一实施例的SAH分箱(binning)过程的数据流可视化;图6示出了可实现各种前述实施例的各种结构和/或功能的示范性系统。具体实施例方式图1示出了根据一实施例的构建加速结构的方法100。如操作102所示,识别与场景相关联的多个基元。在一实施例中,场景可以包括正被渲染的场景。例如,场景可以是正使用光线跟踪被渲染的场景。在另一实施例中,多个基元可被包括于场景内。例如,场景可以由多个基元组成。在又一实施例中,多个基元可以包括多个三角形。但是,多个基元当然可包括用于执行光线追踪的任何基元。另外,如操作104所示,利用这些基元来构建加速结构。在一实施例中,加速结构可包括包围体层次(bounding volume hierarchy, BVH)。在另一实施例中,加速结构可以包括线性化的包围体层次(LBVH)。在又一实施例中,加速结构可以包括分级的(hierarchical)线性化包围体层次(HLBVH)。在另一实施例中,加速结构可包括多个节点。例如,加速结构可包括节点层次,其中子节点代表位于各自父节点包围盒内的包围盒,并且其中叶节点代表处于各自父包围盒内的一个或多个基元。以这种方式,加速结构可包括包围体层次,所述包围体层次可将基元组织在分级的盒中,以在光线跟踪的过程中加以使用。进一步的,在一实施例中,构建加速结构可包括对基元加以排序。例如,基元可以沿着跨越(span)场景包围盒的空间填充曲线加以排序(例如莫顿曲线、希尔伯特曲线等)。在另一实施例中,空间填充曲线可通过计算在场景中每个基元的质心的莫顿编码加以确定(例如,在基元中间的平均位置可从三维(3D)坐标被转换为与递归设计的莫顿曲线相关联的一维坐标)。在另一实施例中,可利用最低有效数字基数排序算法(least signifcant digitradix sorting algorithm)来执行排序。在另一实施例中,构建加速结构可包括在场景内形成基元的集群(例如,基元的粗集群(coarse cluster)等)。例如,可利用游程(run-length)编码压缩算法来形成集群。进一步的,在一实施例中,构建加速结构可包括对在每个已形成的集群内的基元进行剖分。例如,构建加速结构可包括,使用空间中间分裂(例如LBVH类型的空间中间分裂等)对每个集群内的所有基元进行剖分。在另一示例中,构建加速结构可包括利用这些集群来创建树(例如,顶层树等)。例如,构建加速结构可包括通过对这些集群进行剖分(例如,利用分箱表面面积启发式算法(surface area heuristic, SAH)、优化的SAH树构建算法等)来创建顶层树。在另一实施例中,SAH可利用并行binning方案。而且,在一实施例中,可以利用一个或多个任务队列来执行对基元和集群的剖分。例如,任务队列系统可用于在构建加速结构的过程中将工作加以并行化(例如,通过创建管线等)。在另一实施例中,可以利用一个或多个算法来构建加速结构。例如,对基元加以排序、形成基元的集群、剖分基元和创建树均可以利用一个或多个算法来加以执行。另外,在一实施例中,构建加速结构可以利用图形处理单元(GPU)来加以执行。例如,GPU执行加速结构的整个构建。以这种方式,可以避免在GPU和与中央处理单元(CPU)相关联的系统存储器之间的数据传输,这就可减少构建加速结构所必需的时间。现在将对有关各种可选的结构和特征的更多示例性信息加以说明,按照使用者的意愿,上述架构可以采用或不采用这些结构和特征加以实现。应极其注意,以下信息出于示例性的目的加以说明,不应被解释为以任何方式进行限制。任何以下特征可以排除或不排除其他所描述的特征而选择性地加以组合。图2示出了根据另一实施例的在构建加速结构的过程中用于执行剖分的任务队列系统200。作为选择,本任务队列系统200可在图1的功能环境中加以执行。但是,当然也可在任何所需环境中实现任务队列系统200。应注意,上述定义也可应用在当前的描述过程中。如图所示,任务队列系统200包括多个warp 202A和202B,每个warp均获取任务集合来进行处理(例如,从输入队列等)。在一实施例中,多个warp 202A和202B的每一个均可包括工作单元(例如,在GPU上的物理SMT工作单元等)。在另一实施例中,每个单独的任务可对应于在构建加速结构的过程中处理一个单节点。另外,在一实施例中,在运行时,多个warp 202A和202B的每一个均可继续从该输入队列获取任务集合进行处理,其中每个集合可对于每线程包含一个任务。另外,多个warp202A和202B的每一个均可对于每warp使用单全局存储器原子加法运算(atomic add)来更新队列头(queue head)。进一步的,在多个warp 202A和202B的每一个中的每个线程均计算其将要生成的输出任务204的数量。更进一步的,在多个warp 202A和202B的每一个中的每个线程均计算出其将要生成的输出任务204的数量之后,在多个warp 202A和202B的每一个中的所有线程参与全warp的前缀和(warp-wide prefix sum)206以计算它们的输出任务相对于多个warp 202A和202B的每一个的共有基础的偏移。在一实施例中,在多个warp 202A和202B的每一个中的第一线程可执行单全局存储器原子加法运算以计算在多个warp 202A和202B的输出队列中的基础地址。在一实施例中,还可以每层使用一单独的队列,这可使所有的处理在单内核调用之内被执行,而同时能产生广度优先树布置。在一实施例中,构建加速结构可包括使用一个或多个算法来创建标准LBVH和高质量SAH的混合。请参见,例如,“HLBVH:用于动态几何体的实时光线跟踪的分级的LBVH构建(HLBVH-Hierarchical LBVH construction for real-time ray tracing of dynamicgeometry)”(Pantaleoni 等所著,高性能图形(High-Performance Graphics) 2010,美国计算机协会计本文档来自技高网...

【技术保护点】
一种方法,包括:识别与场景相关联的多个基元;和利用所述基元来构建加速结构。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:基里尔·弗拉基米罗维奇·加兰扎雅各布·潘塔莱奥尼戴维·基尔克·麦卡利斯特
申请(专利权)人:辉达公司
类型:发明
国别省市:美国;US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1