光线跟踪系统中的相交测试技术方案

技术编号:35056788 阅读:55 留言:0更新日期:2022-09-28 11:04
光线跟踪系统中的相交测试。提供了用于在光线跟踪系统中确定光线是否与3D轴对齐框相交的方法和相交测试模块。框表示由针对每个维度的前向平面和后向平面定义的体积。确定缩放的逆光线分量ρ

【技术实现步骤摘要】
光线跟踪系统中的相交测试


[0001]本公开涉及在光线跟踪系统中执行相交测试的技术。

技术介绍

[0002]光线跟踪是一种计算渲染技术,其用于通过通常从相机的视角在场景中跟踪光路(

光线

)来生成场景(例如,3D场景)的图像。每条光线被建模为源自相机,并通过像素进入场景。当光线横越场景时,其可能与场景内的对象相交。可对光线和其相交的对象之间的相交建模以创建逼真的视觉效果。例如,响应于确定光线与对象相交,可以针对相交执行着色器程序(即,计算机代码的一部分)。程序员可以编写着色器程序以定义系统如何对相交(所述相交例如可能导致向场景中发射一个或多个二次光线)作出反应,例如,以表示光线从相交对象的反射或光线通过对象的折射(例如,如果对象是透明或半透明的)。作为另一示例,着色器程序可以使一条或多条光线发射到场景中,以用于确定对象是否处于交点处的阴影中。执行着色器程序(和处理相关的二次光线)的结果可以是计算光线穿过的像素的颜色值。
[0003]使用光线跟踪渲染场景的图像可以涉及执行许多相交测试,例如执行数十亿个相交测试以渲染场景的图像。为了减少需要执行的相交测试的数量,光线跟踪系统可以生成加速结构,其中加速结构的每个节点表示场景内的区域。加速结构通常是分层的(例如,具有树结构),使得其包含多个级别的节点,其中靠近加速结构的顶部的节点表示场景中相对大的区域(例如,根节点可以表示整个场景),靠近加速结构的底部的节点表示场景中相对小的区域。“树节点”是指具有指向分层加速结构中的其他节点的指针的节点,即,树节点在分层加速结构中具有子节点。“叶节点”是指具有指向一个或多个图元的一个或多个指针的节点,即,叶节点在分层加速结构中不具有子节点。换句话说,加速结构的叶节点表示场景中定义一个或多个图元的区域。加速结构在不同示例中可具有不同结构,例如栅格结构、八叉树结构、空间分割结构(例如k

d树)或边界体积层次体系。节点可以表示场景中的合适形状或区域(其在本文中可以被称为“框”)。在一些示例中,节点表示场景中的轴对齐边界框(AABB)。
[0004]可以使用加速结构,通过首先测试光线与加速结构的根节点的相交(例如,以递归方式)对光线执行相交测试。如果发现光线与父节点(例如,根节点)相交,则测试可以进行到所述父节点的子节点。相比之下,如果发现光线不与父节点相交,则可以避免对所述父节点的子节点的相交测试,从而节省计算工作量。如果发现光线与叶节点相交,则可针对由叶节点表示的区域内的对象对光线进行测试,从而确定光线与哪个(些)对象相交。如果发现光线有多于一个交点,则可以标识与光线原点最接近的交点(即,光线在场景中遇到的第一次相交),并且可以确定光线在此标识的最接近交点处相交。有可能存在光线的多个最接近命中,并且在这种情况下,可以使用一些平局决胜(tie

break)逻辑来选择多个最接近命中中的一个以用作标识的最接近交点。对于一些类型的光线,可能不需要标识最接近的交点。例如,在处理阴影光线时,存在至少一个交点的指示是足够的,而无需确定哪一个交点最接
近,并且一些API可以允许加速结构针对阴影光线的遍历响应于发现任何交点而终止,从而减少需要执行的相交测试的数量。使用加速结构(而非直接利用场景中的物体测试光线)减少了需要执行的相交测试的数量,并简化了相交测试。相交测试更加简单,因为加速结构的节点表示基本形状(例如,轴对齐边界框或球),针对这些基本形状的相交测试比针对更复杂的物体形状的相交测试更简单,例如,按照并未预先确定相对于坐标系轴的对齐的三角形图元定义基本形状。
[0005]光线(r)可以被定义为r=O+Dt,其中O是表示光线原点的向量,D是表示光线方向的向量,并且t表示沿着光线离原点的距离。根据一种方法,可以通过针对x、y和z维度中的每一个发现区间t来针对轴对齐框测试光线,在所述区间内,光线在表示框的垂直于所述维度的侧面的两个平面之间。这针对t的值给出了三个区间(一个用于x维度,一个用于y维度,并且一个用于z维度)。如果这三个区间的交点(其本身是一个区间)是空的,则光线不与轴对齐框相交;而如果这三个区间的交点不是空的,则光线可以与轴对齐框相交。这种相交测试方法涉及执行六个测试以发现三个区间t,然后执行比较以确定那些区间的交点是否为空。
[0006]根据另一方法,可以从光线的视角针对形成框的2D轮廓的框的边缘测试光线。如果光线在每一个轮廓边缘的内部通过,则确定光线与框相交,而如果光线在框的一个或多个轮廓边缘的外部通过,则确定光线不与框相交。AABB通常具有6个轮廓边缘(取决于从光线的视角看的AABB的取向),因此这种方法通常需要执行六个测试。
[0007]上述测试将确定与光线对齐的无限长的线是否将与框相交。然而,光线的长度通常不是无限的,并且光线可以具有一个或多个有效区间。例如,光线可以具有距光线原点的某一最小距离和某一最大距离,其可以按照t的最小值(被称为最小剔除距离,t
min
)和t的最大值(被称为最大剔除距离,t
max
)来定义。因此,可执行最小距离测试,以检查最小剔除距离不大于到光线与框的交点的最大相交距离;并且可以执行最大距离测试,以检查最大剔除距离不小于到光线与框的交点的最小相交距离。
[0008]由于光线针对与加速结构的节点对应的形状(例如轴对齐框)的相交测试已执行多次,因此在专用硬件模块中例如使用固定功能电路系统来实施用于执行这些相交测试的功能而不使用在通用处理单元上执行的软件模块来实施这些相交测试可以是有益的。软件实施方案通常更加灵活,因为软件在被设计和/或创建之后比硬件实施方案更容易改变。然而,硬件实施方案通常在延迟和功耗方面提供更有效的实施方案,因此如果所需功能是事先已知的,则硬件实施方案可能优于软件实施方案。当设计被配置为用于执行相交测试的相交测试模块的硬件实施方案时,通常存在以下竞争目标:(i)有更小的尺寸(即,更小的硅面积),(ii)有更低的延迟,以及(iii)有更低的功耗。

技术实现思路

[0009]提供本
技术实现思路
是为了以简化的形式介绍下文在具体实施方式中进一步描述的一系列概念。本
技术实现思路
不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于限制所要求保护的主题的范围。
[0010]提供一种在光线跟踪系统中确定光线是否与三维轴对齐框相交的方法,其中所述框表示由所述三维轴对齐框的每个维度的前向平面和后向平面定义的体积,所述方法包
括:
[0011]确定缩放的逆光线分量ρ
u
和ρ
v
,其中和其中第三缩放的逆光线分量其中D
u
,D
v
和D
w
是光线的光线方向向量D的分量,其中D
w
是光线方向向量的主分量,使得|D
w
|≥|D
u
|且|D
w
|≥|D
v
|,并且其中A是标量值;本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种在光线跟踪系统中确定光线是否与三维轴对齐框相交的方法,其中所述框表示由所述三维轴对齐框的每个维度的前向平面和后向平面定义的体积,所述方法包括:确定缩放的逆光线分量ρ
u
和ρ
v
,其中和其中第三缩放的逆光线分量其中D
u
,D
v
和D
w
是所述光线的光线方向向量D的分量,其中D
w
是所述光线方向向量的主分量,使得|D
w
|≥|D
u
|且|D
w
|≥|D
v
|,并且其中A是标量值;使用将所述光线的未缩放的最小剔除距离t
min,unscaled
乘以AD
w
的量值的结果来确定缩放的最小剔除距离t
min,scaled
;使用将所述光线的未缩放的最大剔除距离t
max,unscaled
乘以AD
w
的量值的结果来确定缩放的最大剔除距离t
max,scaled
;使用所述缩放的逆光线分量来确定到定义所述框的所述平面的缩放的相交距离;标识所确定的到所述框的前向平面的所述缩放的相交距离中的最大距离;标识所确定的到所述框的后向平面的所述缩放的相交距离中的最小距离;确定是否:(i)所标识的到所述框的前向平面的最大缩放的相交距离不大于所标识的到所述框的后向平面的最小缩放的相交距离;(ii)所标识的到所述框的前向平面的最大缩放的相交距离不大于所述缩放的最大剔除距离t
max,scaled
;并且(iii)所标识的到所述框的后向平面的最小缩放的相交距离不小于所述缩放的最小剔除距离t
min,scaled
;以及如果满足所述三个确定(i)至(iii)中的全部,则确定所述光线与所述框相交,并且如果不满足所述三个确定(i)至(iii)中的一个或多个,则确定所述光线未命中所述框。2.根据权利要求1所述的方法,其中A=1。3.根据权利要求1或2所述的方法,所述框表示由针对所述三维轴对齐框的维度u,v和w中的每一个维度的前向平面和后向平面所定义的体积,其中b
min,u
是针对u维度的所述前向平面的恒定u分量值,b
max,u
是针对u维度的所述后向平面的恒定u分量值,所述b
min,v
是针对v维度的所述前向平面的恒定v分量值,b
max,v
是针对v维度的所述后向平面的恒定v分量值,b
min,w
是针对w维度的所述前向平面的恒定w分量值,并且b
max,w
是针对w维度的所述后向平面的恒定w分量值,其中所述使用所述缩放逆光线分量确定到定义所述框的所述平面的缩放的相交距离包括:通过将b
min,u
和ρu相乘来确定到针对u维度的所述前向平面的缩放的相交距离τ
u,min
;通过将b
max,u
和p
u
相乘来确定到针对u维度的所述后向平面的缩放的相交距离τ
u,max
;通过将b
min,v
和ρ
v
相乘来确定到针对v维度的所述前向平面的缩放的相交距离τ
v,min
;通过将b
max,v
和ρ
v
相乘来确定到针对v维度的所述后向平面的缩放的相交距离τ
v,max
;确定到针对w维度的所述前向平面的缩放的相交距离τ
w,min
,使得τ
w,min
=b
min,w
ρ
w
;确定到针对w维度的所述后向平面的缩放的相交距离τ
w,max
,使得τ
w,max
=b
max,w
ρ
w
。4.根据权利要求3所述的方法,还包括:
如果b
min,u
,b
max,u
,b
min,v
,b
max,v
,b
min,w
或b
max,w
值中的任一者的量值为零,则将所述值的所述量值设置为等于非零的替代值,所述非零的替代值足够小,使得在确定和比较所述叉乘值中的两个叉乘值的运算中,所述非零的替代值将表现得像零;以及如果ρ
u
值或ρ
v
值的量值为无穷大,则将所述值的所述量值设置为等于有限替代值,所述有限替代值足够大,使得在确定和比较所述缩放的相交距离中的两个缩放的相交距离的运算中,所述有限替代值将表现得像无穷大。5.根据权利要求3或4所述的方法,还包括从定义所述框的所述前向平面和所述后向平面的位置的相应分量中减去所述光线的原点的相应分量,从而确定b
min,u
,b
max,u
,b
min,v
,b
max,v
,b
min,w
和b
max,w
的值。6.根据任一项前述权利要求所述的方法,其中所述光线方向向量利用空间坐标系中的分量D
x
,D
y
和D
z
来定义,并且其中所述方法还包括选择性地置换所述光线的x、y和z分量以及所述框的所述分量,以确定所述空间坐标系的x、y和z分量如何映射到u、v和w维度上,从而确保D
w
是所述光线方向向量的所述主分量,使得|D
w
|≥|D
u
|和|D
w
|≥|D
v
|。7.根据任一项前述权利要求所述的方法,还包括选择性地反转所述光线的所述分量的所述轴和所述轴对齐框,使得D
u
≥0,D
v
≥0和D
w
≥0。8.根据权利要求7在从属于权利要求3时所述的方法,还包括:如果t
min,caled
≥0和t
max,scaled
≥0,则确定是否b
max,u
≥0,b
max,v
≥0和b
max,w
≥0,其中所述确定到定义所述框的所述平面的缩放的相交距离是响应于确定b
max,u
≥0,b
max,v
≥0和b
max,w
≥0而执行,其中如果b
max,u
,b
max,v
和b
max,w
中的任一者都大于零,则确定所述光线未命中所述框,而无需确定到定义所述框的所述平面的缩放的相交距离;如果t
min,scaled
≤0和t
max,scaled
≤0,则确定是否为b
min,u...

【专利技术属性】
技术研发人员:R
申请(专利权)人:想象技术有限公司
类型:发明
国别省市:

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

1