【技术实现步骤摘要】
光线跟踪系统中的相交测试
[0001]本公开涉及在光线跟踪系统中执行相交测试的技术。
技术介绍
[0002]光线跟踪是一种计算渲染技术,其用于通过通常从相机的视角在场景中跟踪光路(
‘
光线
’
)来生成场景(例如,3D场景)的图像。每条光线被建模为源自相机,并通过像素进入场景。当光线横越场景时,其可能与场景内的对象相交。可对光线和其相交的对象之间的相交建模以创建逼真的视觉效果。例如,响应于确定光线与对象相交,可以针对相交执行着色器程序(即,计算机代码的一部分)。程序员可以编写着色器程序以定义系统如何对相交(所述相交例如可能导致向场景中发射一个或多个二次光线)作出反应,例如,以表示光线从相交对象的反射或光线通过对象的折射(例如,如果对象是透明或半透明的)。作为另一示例,着色器程序可以使一条或多条光线发射到场景中,以用于确定对象是否处于交点处的阴影中。执行着色器程序(和处理相关的二次光线)的结果可以是计算光线穿过的像素的颜色值。
[0003]使用光线跟踪渲染场景的图像可以涉及执行许多相交测试,例如执行数十亿个相交测试以渲染场景的图像。为了减少需要执行的相交测试的数量,光线跟踪系统可以生成加速结构,其中加速结构的每个节点表示场景内的区域。加速结构通常是分层的(例如,具有树结构),使得其包含多个级别的节点,其中靠近加速结构的顶部的节点表示场景中相对大的区域(例如,根节点可以表示整个场景),靠近加速结构的底部的节点表示场景中相对小的区域。“树节点”是指具有指向分层加速结构中的其他节点的 ...
【技术保护点】
【技术特征摘要】
1.一种在光线跟踪系统中执行光线相对于多个凸多边形的相交测试的方法,其中所述凸多边形中的每个凸多边形由有序顶点集合定义,并且其中所述顶点中的至少一个顶点是用于定义所述凸多边形中的两个或更多个凸多边形的共享顶点,所述方法包括:将所述凸多边形的顶点投影到与光线方向正交的一对轴上,其中所述一对轴的原点对应于光线原点,并且其中顶点排序方案定义投影顶点的排序,所述排序独立于定义所述凸多边形的所述有序顶点集合中的顶点的排序;和对于所述凸多边形中的每个凸多边形:对于所述凸多边形的由所述投影顶点中的两个投影顶点定义的每条边,确定指示所述光线在所述边的哪一侧通过的参数,其中如果确定所述光线与所述边上的点相交,则基于由所述顶点排序方案定义的定义所述边的所述投影顶点的排序是否与定义所述凸多边形的所述有序顶点集合中的所述顶点的所述排序相匹配来确定所述参数;和基于针对所述凸多边形的所述边所确定的参数来确定所述光线是否与所述凸多边形相交;其中对于所述凸多边形中的两个或更多个凸多边形中的每个凸多边形,所述光线被确定为与所述凸多边形的边上的点相交。2.根据权利要求1所述的方法,其中所述确定指示所述光线在所述边的哪一侧通过的参数包括使用定义所述边的所述两个投影顶点的位置的函数来确定有符号参数;并且其中所述确定所述光线是否与所述凸多边形相交是基于针对所述凸多边形的所述边确定的所述有符号参数的所述符号。3.根据权利要求2所述的方法,其中所述确定所述光线是否与所述凸多边形相交包括:如果针对凸多边形的所述边确定的有符号参数都具有相同的符号,则确定所述光线与所述凸多边形相交;并且如果不是以下情况,则确定所述光线不与所述凸多边形相交:针对所述凸多边形的所述边确定的所述有符号参数都具有相同的符号。4.根据权利要求2所述的方法,其中所述确定所述光线是否与所述凸多边形相交包括:确定所述凸多边形的具有零量值的任何边的有符号参数具有特定符号;和确定所述凸多边形的具有非零量值的边的有符号参数具有彼此一致的符号。5.根据权利要求2至4中任一项所述的方法,其中所述函数是定义边的两个投影顶点v
i
和v
j
的位置的2D叉积f(v
i
,v
j
),其被定义为f(v
i
,v
j
)=p
i
q
j
‑
q
i
p
j
,其中p
i
和q
i
是所述投影顶点v
i
沿着所述一对轴的相应轴的分量,并且其中p
j
和q
j
是所述投影顶点v
j
沿着所述一对轴的相应轴的分量。6.根据权利要求5所述的方法,其中如果定义边的所述两个投影顶点的所述位置的所述2D叉积具有零的量值,则确定所述光线与所述边上的点相交。7.根据权利要求5或6所述的方法,其中以由定义所述凸多边形的所述有序顶点集合中的所述顶点的排序所定义的顺序,将定义边的所述两个投影顶点v
i
和v
j
提供给所述2D叉积f(v
i
,v
j
),并且其中边的所述有符号参数的符号被确定为:如果确定所述光线未与所述边上的点相交,则所述符号与f(v
i
,v
j
)的符号相同,并且如果所述光线被确定为与所述边上的点相交,则所述符号为的符号,其中根
据所述顶点排序方案,如果所述投影顶点v
i
在所述投影顶点v
j
之前,则v
i
<v
j
=1,并且其中根据所述顶点排序方案,如果所述投影顶点v
j
在所述投影顶点v
i
之前,则v
i
<v
j
=0。8.根据权利要求5或6所述的方法,其中定义边的所述两个投影顶点v
i
和v
j
以由所述顶点排序方案定义的顺序提供给所述2D叉积,使得所述2D叉积被确定为f(max(v
i
,v
j
),min(v
i
,v
j
)),其中边的所述有符号参数的符号被确定为与的符号相同,其中根据所述顶点排序方案,如果所述投影顶点v
i
在所述投影顶点v
j
之前,则v
i
<v
j
=1,max(v
i
,v
j
)=v
j
并且min(v
i
,v
j
)=v
i
,并且其中根据所述顶点排序方案,如果所述投影顶点v
j
在所述投影顶点v
i
之前,则v
i
<v
j
=0,max(v
i
,v
j
)=v
i
并且9.根据任一项前述权利要求所述的方法,其中如果确定所述光线与凸多边形的边上的点相交,则所述方法还...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。