光线跟踪系统架构和方法技术方案

技术编号:7156972 阅读:193 留言:0更新日期:2012-04-11 18:40
本发明专利技术的多个方面包括根据示例性架构的实现光线跟踪功能的系统。在一个例子中,针对加速结构的元素将光线收集到集合中,在一些例子中,这些元素与构成进行光线跟踪的场景的对象相关联。还可以在输出缓存器中收集检测到的光线相交的指示,并且在一些例子中,该输出缓存器可以包括多个部分,每个部分与一个场景对象相关联,或者该输出缓存器可以包括要在描影期间知悉的代码的公共部分。可以按块读取方式访问缓存器内容。相交描影资源可以载入数据以用于对标识出的光线的相交进行描影并在本地存储该数据以供对这些相交进行描影。

【技术实现步骤摘要】
【国外来华专利技术】
以下涉及利用光线跟踪再现由形状构成的三维场景的二维表示,更具体而言,涉及在三维场景中对光线进行相交测试的系统、方法和装置。
技术介绍
在计算机图形学技术中,利用光线跟踪从三维场景描述再现照片真实二维图像是公知的。光线跟踪通常涉及获得由几何形状构成的场景描述,该几何形状描述了场景中结构的表面并且可以称为基元(primitive)。常见的基元形状是三角形。从视点(“摄像机”)跟踪可见的光线到场景中;各光线被发出并穿过在二维表示中该光线能够影响到的相应像素。利用场景基元来测试光线的相交以识别各光线的第一相交基元(如果存在的话)。在识别出给定光线的相交后,与该基元相关联的描影器(shader)确定接下来进行何种操作。例如,如果该基元是镜(mirror)的一部分,则发出反射光线以确定光是否从光源射到该相交点,或者在更复杂的情况下,可以模拟亚表面(subsurface)反射和散射, 这会导致对发出的即将相交的不同光线进行测试。在另外的例子中,如果一个对象的表面是粗糙的而非光滑的,则该对象的描影器发出光线来模拟该表面上的漫反射。这样,由于仍需要确定何种光照在基元上,因此在借助于给定光线确定光能是否可以到达像素以及何种光能可以到达像素时,第一步是找到光线与基元之间的交点。因此,最常规的算法随意地创建当光线对场景进行跟踪时的光线树,在该场景中该树沿着各分支持续直到其离开该场景或者射到不发出新光线的光源。因此,对于射到发光对象的那些分支而言,这些分支在基元交点累积(roll up),从而确定了沿着该路径各基元交点对射到该基元交点的光的影响。最后,可以确定最初发出的摄像机光线的光的颜色和强度并存储在缓存器中。通过提供对要再现的二维场景的像素的不同部分进行操作的处理资源,能够直观地使光线跟踪并行化。然而,仅提供更多的计算能力并不一定能够使光线跟踪速度和效率成适当比例地增大。其中的一个原因是,这种并行化无法解释数据是如何构成场景,或者无法解释能够以有效方式访问使得跟踪效率增大的加速结构。仍需对光线跟踪架构进行多种改进。
技术实现思路
在一个方面中,光线跟踪系统包括输入部,其用于接收光线信息,其中已发现该光线信息与构成正进行光线跟踪的三维场景的基元相交。该系统还包括多个缓存器。排序器耦合至所述输入部和所述多个缓存器。所述排序器被配置为通过使用一个或更多个公共描影器代码和公共描影器数据,在相应缓存器中将希望进行描影的光线的信息组合在一起而在所述多个缓存器之间划分所接收的信息。该系统还包括输出部,其用于将所选择的缓存器的内容输出至计算资源,该计算资源被配置为对所选择的缓存器中存储有其信息的光线的相交进行描影。在一个实施方式中,各光线的所述信息包括该光线的标识符。除了光线识别信息以外,可以与潜在相交的光线的标识信息相关联地存储可能相交的一个或更多个基元的标识信息。以最接近的检测到的相交的特征的其他信息,还可以在缓存器中存储或者在进行缓存器选择时从存储器检索得到。根据情况,输出部可以从缓存器提供信息作为流,例如光线标识符以及与这些光线标识符相关联的其他信息的流。在一些实施方式中,与给定光线潜在相交的基元可以具有相应的标识符。这些标识符用于确定这些基元作为其一部分的对象。进而,可以使用该对象的共性来推断在对涉及不同光线的相交进行描影时使用的一个或更多个描影器代码和描影器数据的共性。在一些实施方式中,对象可以与离散描影器代码模块相关联,并且在一些实施方式中,各基元可以与描影器代码模块或部分描影器代码模块相关联。根据上述实施方式和多个方面的光线跟踪系统还可以包括被配置为对光线相交进行描影的计算资源,该计算资源被配置为在对来自所选择的缓存器的光线的所指示的相交进行描影期间,对检索得到的描影数据在高速缓存中的存储进行设置以供本地访问。被配置为对相交进行描影的计算资源还可以被配置为执行多个标识出的基元的最终相交测试以标识出要进行描影的给定光线的真实相交,该多个标识出的基元可能已经与给定光线相交。还可以通过介于相交测试与描影之间的计算资源来实现这种功能。任意这种光线跟踪系统可以通过将光线标识符从所选择的缓存器流传输至用于对其相应的相交进行描影的计算资源而输出光线信息。示例性光线跟踪系统的其他方面可以包括具有相交测试输出部的相交测试资源, 该相交测试输入部用于接收要在所述相交测试资源中开始相交测试的光线的标识符。这种光线标识符可以从多个描影器代码模块接收,并且可以成块地输出以开始对这些光线标识符所标识的光线进行相交测试,优选的是,同时对这些光线标识符所标识的光线进行相交测试。这种同时测试可以由包括具有多个测试单元的相交测试资源的系统来执行,并且该系统被配置为在所述测试单元之间分派光线标识符块以同时测试所标识的光线。输入部被配置为采集从所述多个测试单元输出的光线的标识符作为所述光线信息。其他方面包括光线跟踪方法。该方法的一个例子包括提供对包括三维场景的对象进行定义的数据,该数据构成基元的定义数据,该基元包括所述对象;该方法还包括定义要处理的多个光线,对各光线的处理包括利用所述基元对如果存在的各最接近相交进行标识,以及通过执行一个或更多个代码模块对这种相交进行描影。该方法还包括以下步骤 输出已标识出最接近相交的分组光线信息,在对标识出的光线的相交进行描影期间基于一个或更多个的代码模块的期望共性和要使用的数据的期望共性而形成所述多组。在一些这样的方法中,该输出步骤包括在供输出的缓存器中存储所述多组的光线信息。该光线信息可以包括光线标识符、各标识出的光线所相交的一个或更多个基元的标识符、以及在一些实施方式中仅包括各光线首先且实际相交的基元。在这样的方法中,标识出相应的最接近相交的步骤可以包括生成所相交的基元的标识符与这些基元相交的光线的标识符之间的关联。基元的标识符可以用于确定要对涉及这些基元的相交进行描影时所执行的代码模块的期望共性。这种示例性方法还可以进一步包括在分布式存储器中存储所述多个光线的定义数据,并标识出多个测试单元中所述多个光线的相应最接近相交。各个测试单元具有所分配的至所述分布式存储器的端口。所述分布式存储器还存储了数据,以用于标识出各个光线的当前最接近的检测到的相交。在系统和相对应的方法中,控制器可以制作光线的集合,至少一些集合与构成三维场景的相应场景对象相关联。可以针对相交测试和描影二者形成所述集合。在一些例子中,所形成的用于描影的集合可以仅限于已标识出实际相交的光线。在其他例子中,可以由加速结构的叶节点形成集合,其中已将这些叶节点定义为包围公共场景对象的基元(还可以基于所确定的一个或更多个描影器代码和描影器数据的共性而定义这种叶节点)。其他方面包括提供光线跟踪系统的方法,该方法包括提供相交测试资源,该相交测试资源可操作用于对三维场景中的多个光线同时进行相交测试,从而对所述多个光线中的至少一些光线的检测到的有效相交进行标识。该方法还包括提供相交描影资源,并提供相交测试资源与相交描影资源之间的通信,该相交描影资源被配置为运行描影代码以对检测到的有效光线相交进行描影。可以通过输出检测到的相交的一组或更多组信息而实现所述通信,其中,基于利用一个或更多个公共描影代码和公共描影数据对各组的各个相交进行描影这一预期而确定所述多组。可以通过基本文档来自技高网
...

【技术保护点】
1.一种光线跟踪系统,其包括:输入部,其用于接收光线的信息,其中该光线的信息与构成正进行光线跟踪的三维场景的基元相交;多个缓存器;排序器,其耦合至所述输入部和所述多个缓存器,并被配置为通过使用一个或更多个公共描影器代码和公共描影器数据在相应缓存器中将希望进行描影的光线的信息组合在一起,而在所述多个缓存器之间划分所接收的信息;和输出部,其用于将所选择的缓存器的内容输出至计算资源,该计算资源被配置为对所选择的缓存器中存储有其信息的光线的相交进行描影。

【技术特征摘要】
【国外来华专利技术】...

【专利技术属性】
技术研发人员:路克·堤尔曼·彼特森
申请(专利权)人:柯斯提克绘图有限公司
类型:发明
国别省市:US

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

1
相关领域技术
  • 暂无相关专利