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

技术编号:32507155 阅读:16 留言:0更新日期:2022-03-02 10:31
本发明专利技术涉及光线跟踪系统中的相交测试。描述了用于相对于框对光线束执行相交测试的光线跟踪系统和计算机实施的方法。从所述光线束的视角标识所述框的轮廓边缘。针对标识的轮廓边缘中的每一个,获得向所述光线束提供边界的向量的分量,并确定所述向量是在所述轮廓边缘的内部还是外部穿过。使用针对所述标识的轮廓边缘中的每一个确定所述向量是在所述轮廓边缘的内部还是外部穿过的结果来确定所述光线束相对于所述框的相交测试结果。束相对于所述框的相交测试结果。束相对于所述框的相交测试结果。

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


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

技术介绍

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

d树)或边界体积层次结构(bounding volume hierarchy)。节点可以表示场景中的合适形状或区域(其在本文中可以被称为“框”)。在一些示例中,节点表示场景中的轴对齐边界框(AABB)。
[0004]可以使用加速结构,通过首先测试光线与加速结构的根节点的相交(例如,以递归方式)对光线执行相交测试。如果发现光线与父节点(例如,根节点)相交,则测试可以进行到所述父节点的子节点。相比之下,如果发现光线不与父节点相交,则可以避免对所述父节点的子节点的相交测试,从而节省计算工作量。如果发现光线与叶节点相交,那么可针对由叶节点表示的区域内的物体对其进行测试,从而确定光线与哪个(些)物体相交。如果发现光线有超过一个交点,那么可以标识与光线原点最接近的交点(即,光线在场景中遇到的第一次相交),并确定光线在此标识的最接近交点处相交。使用加速结构(而非直接利用场景中的物体测试光线)减少了需要执行的相交测试的次数,并简化了相交测试。相交测试是更简单的,因为加速结构的节点表示基本形状(例如,轴对齐边界框或球),对于这些基本形状,相交测试比更复杂的物体形状更简单,例如,按照并未预先确定取向的三角形图元定义基本形状。

技术实现思路

[0005]提供本
技术实现思路
是为了介绍在以下详细描述中进一步描述的一些概念。本
技术实现思路
不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于限制所要求保护的主题的范围。
[0006]提供了一种在光线跟踪系统中执行相交测试的计算机实施的方法,所述方法包括:
[0007]接收要测试与框的相交的光线束;
[0008]从所述光线束的视角标识所述框的轮廓边缘;
[0009]针对标识的轮廓边缘中的每一个:
[0010]获得向所述光线束提供边界的向量的分量;以及
[0011]确定所述向量是在所述轮廓边缘的内部还是外部穿过;以及
[0012]使用针对所述标识的轮廓边缘中的每一个确定所述向量是在所述轮廓边缘的内部还是外部穿过的结果,确定所述光线束相对于所述框的相交测试结果。
[0013]针对所述标识的轮廓边缘中的每一个,所述获得向量的分量可以包括获得向所述光线束提供单个边界的单个向量的分量。
[0014]针对所述标识的轮廓边缘中的每一个,确定所述向量是在所述轮廓边缘的内部还是外部穿过所针对的所述向量可以是针对所述光线束确定所述向量是在所述轮廓边缘的内部还是外部穿过的唯一向量。
[0015]可以使用针对所述标识的轮廓边缘中的每一个确定所述向量是在所述轮廓边缘的内部还是外部穿过的所述结果而不使用确定任何其它向量是在所述轮廓边缘的内部还是外部穿过的任何其它结果来确定所述光线束相对于所述框的所述相交测试结果。
[0016]针对所述标识的轮廓边缘中的每一个,所述向量可以相对于所述标识的轮廓边缘向所述光线束提供外部边界,使得如果所述向量不在所述标识的轮廓边缘的外部穿过,则已知所述束的所述光线均不在所述标识的轮廓边缘的外部穿过。如果针对所述标识的轮廓边缘中的每一个确定所述向量在相应的标识的轮廓边缘的内部穿过,则所述光线束相对于所述框的所述相交测试结果可以是所述光线束中的所有所述光线均与所述框相交。如果针对所述标识的轮廓边缘中的一个或多个确定所述向量在所述相应的标识的轮廓边缘的外部穿过,则所述光线束相对于所述框的所述相交测试结果可能不是所述光线束中的所有所述光线均与所述框相交。如果所述光线束相对于所述框的所述相交测试结果不是所述光线束中的所有所述光线均与所述框相交,则所述方法还可以包括确定所述光线束中的所述光线中的任一个是否与所述框相交。
[0017]针对所述标识的轮廓边缘中的每一个,所述向量可以相对于所述标识的轮廓边缘向所述光线束提供内部边界,使得如果所述向量不在所述标识的轮廓边缘内部穿过,则已知所述束的所述光线均不在所述标识的轮廓边缘的内部穿过。如果针对所述标识的轮廓边缘中的每一个确定所述向量在相应的标识的轮廓边缘的内部穿过,则所述光线束相对于所述框的所述相交测试结果可能不是所述光线束中的所有所述光线均错过所述框。如果针对所述标识的轮廓边缘中的一个或多个确定所述向量在所述相应的标识的轮廓边缘的外部穿过,则所述光线束相对于所述框的所述相交测试结果可以是所述光线束中的所有所述光线均错过所述框。如果所述光线束相对于所述框的所述相交测试结果不是所述光线束中的
所有所述光线均错过所述框,则所述方法还可以包括确定所述光线束中的所述光线中的哪些与所述框相交。
[0018]所述框可以是轴对齐边界框。
[0019]所述方法还可包括:
[0020]执行方向检查以确定所述框是否在所述光线束的原点后方,其中如果所述方向检查确定所述框在所述光线束的所述原点后方,则所述相交测试结果是所述光线束错过所述框;和/或
[0021]执行距离检查以确定所述光线束是否终止于所述框前方的点,其中如果距离检查确定所述光线束终止于所述框前方的点,则所述相交测试结果是所述光线束错过所述框。
[0022]向所述光线束提供边界的所述向量的获得分量可以与所述束的所述光线中的一个的方向向量的分量相同。
[0023]向所述光线束提供边界的所述向量的所述获本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种在光线跟踪系统中执行相交测试的计算机实施的方法,所述方法包括:接收要测试与框的相交的光线束;从所述光线束的视角标识所述框的轮廓边缘;针对标识的轮廓边缘中的每一个:获得向所述光线束提供边界的向量的分量;以及确定所述向量是在所述轮廓边缘的内部还是外部穿过;以及使用针对所述标识的轮廓边缘中的每一个确定所述向量是在所述轮廓边缘的内部还是外部穿过的结果,确定所述光线束相对于所述框的相交测试结果。2.根据权利要求1所述的方法,其中,针对所述标识的轮廓边缘中的每一个,所述获得向量的分量包括获得向所述光线束提供单个边界的单个向量的分量。3.根据权利要求1或2所述的方法,其中,针对所述标识的轮廓边缘中的每一个,确定所述向量是在所述轮廓边缘的内部还是外部穿过所针对的所述向量是针对所述光线束确定所述向量是在所述轮廓边缘的内部还是外部穿过的唯一向量。4.根据任一前述权利要求所述的方法,其中使用针对所述标识的轮廓边缘中的每一个确定所述向量是在所述轮廓边缘的内部还是外部穿过的所述结果而不使用确定任何其它向量是在所述轮廓边缘的内部还是外部穿过的任何其它结果来确定所述光线束相对于所述框的所述相交测试结果。5.根据任一前述权利要求所述的方法,其中,针对所述标识的轮廓边缘中的每一个,所述向量相对于所述标识的轮廓边缘向所述光线束提供外部边界,使得如果所述向量不在所述标识的轮廓边缘的外部穿过,则已知所述束的所述光线均不在所述标识的轮廓边缘的外部穿过。6.根据权利要求5所述的方法,其中如果针对所述标识的轮廓边缘中的每一个确定所述向量在相应的标识的轮廓边缘的内部穿过,则所述光线束相对于所述框的所述相交测试结果是所述光线束中的所有所述光线均与所述框相交;并且其中如果针对所述标识的轮廓边缘中的一个或多个确定所述向量在所述相应的标识的轮廓边缘的外部穿过,则所述光线束相对于所述框的所述相交测试结果不是所述光线束中的所有所述光线均与所述框相交。7.根据权利要求6所述的方法,其中如果所述光线束相对于所述框的所述相交测试结果不是所述光线束中的所有所述光线均与所述框相交,则所述方法还包括确定所述光线束中的所述光线中的任一个是否与所述框相交。8.根据权利要求1至4中任一项所述的方法,其中,针对所述标识的轮廓边缘中的每一个,所述向量相对于所述标识的轮廓边缘向所述光线束提供内部边界,使得如果所述向量不在所述标识的轮廓边缘内部穿过,则已知所述束的所述光线均不在所述标识的轮廓边缘的内部穿过。9.根据权利要求8所述的方法,其中如果针对所述标识的轮廓边缘中的每一个确定所述向量在相应的标识的轮廓边缘的内部穿过,则所述光线束相对于所述框的所述相交测试结果不是所述光线束中的所有所述光线均错过所述框;并且
其中如果针对所述标识的轮廓边缘中的一个或多个确定所述向量在所述相应的标识的轮廓边缘的外部穿过,则所述光线束相对于所述框的所述相交测试结果是所述光线束中的所有所述光线均错过所述框。10.根据权利要求9所述的方法,其中如果所述光线束相对于所述框的所述相交测试结果不是所述光线束中的所有所述光线均错过所述框,则所述方法还包括确定所述光线束中的所述光线中的哪些与所述框相交。11.根据任一前述权利要求所述的方法,还包括:执行方向检查以确定所述框是否在所述光线束的原点后方,其中如果所述方向检查确定所述框在所述光线束的所述原点后方,则所述相交测试结果是所述光线束错过所述框;和/或执行距离检查以确定所述光线束是否终止于所述框前方的点,其中如果所述距离检查确定所述光线束终止于所述框前方的点,则所述相交测试结果是所述光线束错过所述框。12.根据权利要求1所述的方法,其中所述光线束的所有所述光线均具有相同的原点并且其中,针对所述标识的轮廓边缘中的每一个,所述确定所述向量是在所述轮廓边缘的内部还是外部穿过包括根据下式执行比较:(p
o,i

o
i
)d
j
<(p
o,j

o
j
)d
i
,其中p
o,i
是表示形成所述轮廓边缘的所述框的第一侧的第一平面上的点的...

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

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

1