在光线跟踪系统中遍历加速结构的设备和方法
【专利说明】在光线跟踪系统中遍历加速结构的设备和方法
[0001]本申请要求于2014年5月27日提交到韩国知识产权局的第10-2014-0063725号韩国专利申请的权益,所述韩国专利申请的公开内容通过引用被全部包含于此。
技术领域
[0002]本公开涉及一种在光线跟踪系统中遍历加速结构的设备和方法。
【背景技术】
[0003]通常,三维(3D)渲染指用于将3D对象数据合成为从给定的相机的视点看见的图像的图像处理。
[0004]渲染的示例包括光栅化和光线跟踪,所述光栅化涉及通过将3D对象投影到像平面上来产生图像,光线跟踪涉及通过跟踪从相机的视点沿着穿过像平面中的每个像素的光线(ray)入射的光的路径来产生图像。
[0005]在它们当中,光线跟踪具有如下优点:由于在渲染的结果上反映了光的物理属性(例如,反射、折射和透射),所以其可产生高质量图像;但是光线跟踪具有如下缺点:由于相对较大量的计算,所以难以以高速执行渲染。
[0006]在光线跟踪中需要大量的计算的处理包括:生成并遍历加速结构(AS)的处理以及执行光线与图元(primitive)之间的相交测试(1ST)的处理,在所述加速结构中,将要被清染的场景对象被空间地划分。
【发明内容】
[0007]提供了一种在光线跟踪系统中遍历加速结构(AS)的设备和方法,所述设备和方法可在AS遍历处理期间高效地执行每个子节点与光线之间的相交测试。
[0008]其他的方面将部分地在随后的描述中阐述,部分地将通过所述描述而变得明显,或者可通过对本示例性实施例的实施而了解。
[0009]根据示例性实施例的一方面,一种在光线跟踪系统中遍历加速结构(AS)的方法,所述方法包括:获取与AS中包括的目标节点的多个子节点有关的信息;基于获取的信息确定所述多个子节点中的各个子节点是否与光线相交;
[0010]从与光线相交的至少一个子节点中确定下一个目标节点;执行与确定的下一个目标节点的类型对应的操作。
[0011]确定所述多个子节点中的各个子节点是否与光线相交的步骤可包括:同时确定所述多个子节点是否与光线相交。
[0012]确定所述多个子节点中的各个子节点是否与光线相交的步骤可包括:基于与第一子节点和第二子节点有关的信息,同时确定第一子节点和第二子节点是否与光线相交。
[0013]确定下一个目标节点可包括:如果存在与光线相交的一个子节点,则将所述一个子节点确定为所述下一个目标节点;如果存在与光线相交的两个或更多个子节点,则将所述两个或更多个子节点中具有最短的到光线的相交距离的子节点确定为所述下一个目标节点。
[0014]确定下一个目标节点可包括:如果不存在与光线相交的子节点,则从不从属于来自AS的目标节点的多个节点中提取任意一个节点;将提取的节点确定为所述下一个目标节点。
[0015]执行与确定的下一个目标节点的类型对应的操作可包括:如果所述下一个目标节点是内节点,则移动到所述下一个目标节点的至少一个子节点;如果所述下一个目标节点是叶节点,则确定所述叶节点中包括的至少一个图元是否与所述光线相交。
[0016]执行与确定的下一个目标节点的类型对应的操作还可包括:当确定所述至少一个图元与光线不相交时,则遍历与光线相交的另一子节点。
[0017]所述方法还可包括:如果下一个目标节点是叶节点,则确定所述叶节点中包括的至少一个图元的预设边界框是否与光线相交。
[0018]如果被包括在根节点中的目标节点是叶节点,则所述方法还可包括:对目标节点中包括的至少一个图元进行划分;基于划分的至少一个图元产生目标节点的子节点。
[0019]根据另一示例性实施例,一种用于在光线跟踪系统中遍历加速结构(AS)的设备,所述设备包括:信息获取器,获取与AS中包括的目标节点的多个子节点有关的信息;相交测试器,基于获取的信息确定所述多个子节点中的各个子节点是否与光线相交;控制器,从与光线相交的至少一个子节点中确定下一个目标节点,并执行与确定的下一个目标节点的类型对应的操作。
[0020]相交测试器可同时确定所述多个子节点是否与光线相交。
[0021]基于与第一子节点和第二子节点有关的信息,相交测试器可同时确定第一子节点和第二子节点是否与光线相交。
[0022]当存在与光线相交的一个子节点时,控制器可将所述一个子节点确定为所述下一个目标节点;当存在与光线相交的两个或更多个子节点时,控制器可将所述两个或更多个子节点中具有最短的到光线的相交距离的子节点确定为所述下一个目标节点。
[0023]当不存在与光线相交的子节点时,控制器可从不从属于来自AS的目标节点的多个节点中提取任意一个节点,并将提取的节点确定为所述下一个目标节点。
[0024]当所述下一个目标节点是内节点时,控制器可移动到所述下一个目标节点的至少一个子节点,而当所述下一个目标节点是叶节点时,控制器可确定所述叶节点中包括的至少一个图元是否与光线相交。
[0025]当确定所述至少一个图元与光线不相交时,控制器可遍历与光线相交的另一子节点。
[0026]当所述下一个目标节点是叶节点时,相交测试器还可确定所述叶节点中包括的至少一个图元的预设边界框是否与光线相交。
[0027]当被包括在根节点中的目标节点是叶节点时,控制器可划分目标节点中包括的至少一个图元,并基于划分的至少一个图元产生目标节点的子节点。
【附图说明】
[0028]通过下面结合附图对示例性实施例进行的描述,这些和/或其他方面将变得明显和更加易于理解,附图中:
[0029]图1是用于解释光线跟踪的示图;
[0030]图2是示出光线跟踪系统的框图;
[0031]图3是示出根据示例性实施例的在光线跟踪系统中用于遍历加速结构(AS)的设备的框图;
[0032]图4是用于解释根据示例性实施例的存储与目标节点的子节点有关的信息的数据结构的示图;
[0033]图5是根据示例性实施例的在光线跟踪系统中遍历AS的方法的流程图;
[0034]图6是用于解释根据示例性实施例的所述设备如何执行与光线相交的子节点的类型所对应的操作的详细流程图;
[0035]图7是示出根据示例性实施例的光线跟踪系统的状态的示图;
[0036]图8是示出根据示例性实施例的光线跟踪系统中的设备的详细框图。
【具体实施方式】
[0037]如这里所使用的,术语“和/或”包括相关的列出项的一项或更多项的任意和所有的组合。当诸如“中的至少一个”的表述位于元件的列表之后时,所述表述修饰元件的整个列表,而不修饰列表中的单个元件。
[0038]现在将参照附图来更加充分地描述发明构思,在附图中示出了示例性实施例。
[0039]图1是用于解释光线跟踪的示图。
[0040]如图1中所示,三维(3D)模型可包括:光源80、第一对象31、第二对象32和第三对象33。虽然为了便于解释,第一对象31、第二对象32和第三对象33中的每个对象在图1中看起来像二维(2D)对象,但是第一对象31、第二对象32和第三对象33中的每个对象均是3D对象。
[0041]在这种情况下,可以假定第一对象31具有大于0的反射比和大于0的折射率,且第二对象32和第三对象33中的每个对象具有等于0的反射比和等于0的折射率。S卩,可以假定第一对象31反射光且折射光,而第二对象32和第三对象33不反射光也不折射光。
[0042]在图1的3D模型中,渲染设备(例如,光线跟踪设备)可确定视点10以产生3D图像,并可根据确定的视点10确定像平面15。
[0043]—旦视点10和像平面15被确定,则光线跟踪设备100可产生来自视点10的针对像平面15的每个像素的光线。
[0044]例如,如图1中所示,当像平面15具有4*3的分辨率时,光线跟踪设备100可产生针对12个像素中的每个像素的光线。
[0045]现在将解释仅仅针对一个像素(例如,像素A)的光线。
[0046]参照图1,从视点10针对像素A产生主光线40。主光线40穿过3D空间并到达第一对象31。第一对象31可包括一组预定的单元区域(以下,称为图元(primitive)),图元可以是诸如三角形或四边形的多边形。下面将假设图元是三角形来进行解释。
[0047]可以在主光线40与第一对象31之间的击中点产生阴影光线50、反射光线60和折射光线70。在这种情况下,阴影光线50、反射光线60和折射光线70被称为次生光线。
[0048]阴影光线50从击中点产生并指向光源80。反射光线60以与主光线40的入射角对应的角度产生并根据第一对象31的反射比被分配权重。以与第一对象31的折射率和主光线40的入射角对应的角度产生折射光线70,并根据第一对象31的折射率分配折射光线70的权重。
[0049]光线跟踪设备100确定击中点是否通过阴影光线50暴露于光源80。例如,如图1中所示,当阴影光线50遇见第二对象32时,可在产生阴影光线50的击中点形成阴影。
[0050]另外,光线跟踪设备100确定折射光线70和反射光线60是否到达另一对象。例如,如图1中所示,在折射光线70行进的方向上不存在对象,而反射光线60到达第三对象33。因此,光线跟踪设备100检查第三对象33的击中点