System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 用于光线追踪的部分加速结构的生成和遍历制造技术_技高网
当前位置: 首页 > 专利查询>辉达公司专利>正文

用于光线追踪的部分加速结构的生成和遍历制造技术

技术编号:40635261 阅读:7 留言:0更新日期:2024-03-13 21:19
本公开涉及用于光线追踪的部分加速结构的生成和遍历。光线和路径追踪的替代的根树或图形结构使得构建时间决策能够动态实例化,从而以开发者透明、几乎存储器存储中性并且遍历高效的方式来拆分任何数量的几何结构加速结构。所得到的遍历仅需要部分地遍历加速结构,这提高了效率。一个示例使用减少了假阳性实例加速结构到几何结构加速结构转变的数量,用于相同几何结构的许多空间上分开的实例。

【技术实现步骤摘要】

本技术涉及计算机图形,并且更具体地涉及光线追踪器。更具体地,本技术涉及计算机图形处理的硬件加速,包括但不限于基于硬件的实时或接近实时的光线和路径追踪。本文中的示例非限制性技术进一步提供用于加速光线和路径追踪的实例化加速结构,所述实例化加速结构定义遍历拓扑以增加光线追踪器相交测试的效率。


技术介绍

1、在过去几十年中,实时计算机图形学取得了巨大的进步。随着1980年代提供了3d硬件图形管线的功能强大的图形处理单元(gpu)的发展,可以基于纹理映射的多边形图元对用户输入实时响应地来产生3d图形显示。这种实时图形处理器构建于被称为扫描变换光栅化的技术之上,这是一种从单个点或角度确定可见性的方法。使用这种方法,可以从由几何结构图元(通常是多边形,例如三角形)构成的表面对三维对象建模。扫描变换过程建立图元多边形顶点并将其投影到视图平面上,并填充图元边缘内部的点。参见例如foley、vandam、hughes等,《计算机图形学:原理与实践》(computer graphics:principles andpractice)(第2版addison-wesley 1995年和第3版addison-wesley 2014年)。

2、硬件长期以来一直用于确定应如何对每个多边形表面进行着色和纹理贴图,以及对着色的、纹理贴图的多边形表面进行光栅化以进行显示。典型的三维场景通常由数百万个多边形构成。快速的现代gpu硬件可以对用户输入实时响应地有效地处理每个显示帧(每1/30或1/60秒)的数百万个图形图元。所得的图形显示已用于各种实时图形用户界面中,包括但不限于增强现实、虚拟现实、视频游戏和医学成像。但是传统上,这样的交互式图形硬件无法准确地对反射和阴影进行建模和描绘。

3、存在另一种图形技术,其确实执行了对于反射和阴影的物理上现实的可见性确定。这称为“光线追踪”。光线追踪是指将光线投射到场景中,并确定该光线是否以及在何处与场景的几何结构相交。此基本光线追踪可见性测试是以计算机图形学中各种渲染算法和技术为基础的基本图元。光线追踪是在1960年代末开发的,并在1980年代得到了改进。参见,例如,appel,“固体的阴影机器渲染的一些技术(some techniques for shadingmachine renderings of solids)”(sjcc 1968),第27-45页;whitted,“一种改进的阴影显示照明模型(an improved illumination model for shaded display)”,第343-349页,communications of the acm,第23卷,第6期(1980年6月);以及kajiya,“渲染方程式(therendering equation)”,computer graphics(siggraph 1986proceedings,第20卷,第143-150页)。从那时起,光线追踪已用于非实时图形应用程序中,例如设计和电影制作。任何看过《finding dory》(2016年)或其他皮克斯动画电影的人都可以看到光线追踪方法对计算机图形学的效果,即逼真的阴影和反射。参见,例如,hery等人,“走向皮克斯的双向路径追踪(towards bidirectional path tracing at pixar)”(2016)。

4、通常,光线追踪是一种渲染方法,其中光线用于确定场景中各种元素的可见性。光线追踪一种用于各种渲染算法中的图元(primitive),算法包括例如路径追踪和metropolis光传输。在示例算法中,光线追踪通过对遍历场景的光传输进行建模来模拟光的物理现象以使用光线光学计算所有全局效应(包括例如来自发亮表面的反射)。在这样的光线追踪的用法中,当光线遍历三维场景从潜在的多个光源传播到视点时,可能会尝试追踪成百上千的光线中的每一个。通常,遍历场景相对于眼睛追踪此类光线,并针对场景中所有几何结构(geometry)的数据库进行测试。可以从光到眼睛向前追踪光线,或者从眼睛到光反向追踪光线,或者可以追踪光线以查看从虚拟相机开始的路径以及从眼睛开始的路径是否具有清晰的视线。该测试可以确定最近的相交(以便确定从眼睛可见的东西),也可以追踪从对象表面朝向光源的光线,以确定是否有任何干涉会阻止光到空间中该点的透射。因为光线与现实中的光的光线相似,所以它们提供了许多现实效果,而这些效果是使用过去三十年来实施的基于光栅的实时3d图形技术无法实现的。由于来自场景中每个光源的每个照明光线在遍历场景中的每个对象时都经过评估,因此得到的图像看起来就像是在现实中拍摄的一样。因此,这些光线追踪方法长期以来一直在专业图形应用程序(例如设计和电影)中使用,其中在基于光栅的渲染方面它们占据了主导地位。

5、光线追踪可用于确定沿光线是否有任何东西可见(例如,测试几何结构图元上的阴影点与光源上的点之间的遮挡物),还可用于评估反射(例如,可能涉及执行遍历以确定沿视线的最近可见表面,以便软件可以评估与所命中的事物相对应的材质着色功能-其反过来根据相交的对象的材料属性又可以向场景中发射一个或更多个附加光线)以确定沿光线返回向眼睛的光。在经典的whitted风格光线追踪中,光线是从视点通过像素网格射入场景的,但是其他路径遍历也是可能的。通常,对于每条光线,找到最接近的对象。然后,可以通过将光线从相交点发射到场景中的每个光源并发现它们之间是否存在任何对象来确定该相交点是被照明还是处于阴影中。不透明的对象会挡住光,而透明的对象会减弱光。可以从相交点产生其他光线。例如,如果相交表面是发亮的或镜面的,则在反射方向上产生光线。光线可以接受相交的第一对象的颜色,进而对它的相交点进行阴影测试。递归地重复此反射过程,直到达到递归限制或后续反弹的潜在贡献降至阈值以下。光线也可以在透明固体对象的折射方向上生成,然后再次递归地进行评估。因此,光线追踪技术允许图形系统依据物理规律产生正确的并不经受扫描变换技术的限制和伪像的反射和阴影。

6、光线追踪已经与光栅化和z-缓冲一起使用或作为其替代,用于采样场景几何结构。它也可以用作环境贴图和阴影纹理的替代方法(或与之结合使用),以产生比通过纹理化技术或其他光栅“技巧(hack)”所能实现的更为逼真的反射、折射和阴影效果。光线追踪还可以用作基本图元,以在基于物理的渲染算法(例如路径追踪、光子映射、metropolis光传输和其他光传输算法)中精确模拟光传输。

7、过去光线追踪的主要挑战通常是速度。光线追踪要求图形系统为每一帧计算和分析照射在构成场景的每个表面上(并可能被其反射)的数百万条光线中的每一条。过去,如此庞大的计算复杂性无法实时执行。

8、现代gpu 3d图形管线如此快地渲染着色的、纹理映射的表面的原因之一是它们有效地使用了相干性。在常规的扫描变换中,假定所有内容都可以通过公共图像平面中的公共窗口查看并向下投影到单个优势点(vantage point)。每个三角形或其他图元通过图形管线发送,并覆盖一定数量的像素。可以针对从该三角形渲染的所有本文档来自技高网...

【技术保护点】

1.一种构建用于由至少一个处理器执行的光线追踪的加速结构的方法,包括:

2.根据权利要求1所述的方法,其中自动地添加包括:添加被指定为替代根并且还被链接到所述加速结构中的父节点的节点,所述替代根的指定被构造成使所述光线追踪器在被指定为替代根的所述节点处开始遍历所述加速结构并且将遍历限制于所述替代根的子树,而不会在从所述子树向上遍历所述加速结构时逃逸到所链接的父节点。

3.一种光线追踪方法,包括:

4.根据权利要求3所述的光线追踪方法,其中所述指示符包括单个位。

5.根据权利要求3所述的光线追踪方法,其中调节包括将所述指示符复制到所述遍历堆栈条目。

6.根据权利要求3所述的光线追踪方法,其中小树数据结构与所述加速结构的实例化节点相对应。

7.一种光线追踪器,包括:

8.根据权利要求7所述的光线追踪器,其中所述堆栈管理硬件被进一步配置成当从所述加速结构的所述子集以所述节点作为其根向上遍历时,即使该节点在所述加速结构中指定父节点,也不允许所述加速结构的遍历从被指定为替代根的所述节点上方逃逸。

>9.根据权利要求7所述的光线追踪器,其中所述堆栈条目包括从与加速结构节点相对应的压缩小树复制的替代根指示符。

10.根据权利要求7所述的光线追踪器,其中所述堆栈管理硬件被进一步配置成初始化所述堆栈以便在被指定为替代根的所述节点处而不是在所述根处开始遍历。

11.根据权利要求7所述的光线追踪器,其中所述包围体-光线相交测试器被进一步配置成同时用光线测试包围所述几何结构加速结构的不同部分的多个包围体,并且当所述多个包围体中的任一个与所述光线相交时指示包围体-光线相交。

12.根据权利要求7所述的光线追踪器,其中所述节点包括所述实例化加速结构。

13.一种非暂时性存储器,其存储指令,所述指令在由至少一个处理器执行时执行以下操作,包括:

14.根据权利要求13所述的非暂时性存储器,其中自动地添加包括:添加被指定为替代根并且还被链接到所述加速结构中的父节点的节点,所述替代根的指定被构造成使所述光线追踪器在被指定为替代根的所述节点处开始遍历所述加速结构并且将遍历限制于所述替代根的子树,而不会在从所述子树向上遍历所述加速结构时逃逸到所链接的父节点。

15.根据权利要求14所述的非暂时性存储器,其中所述替代根的指定进一步被构造成控制光线追踪器,所述光线追踪器具有硬件堆栈、硬件光线-包围体相交测试电路和硬件光线-三角形相交电路,所述替代根的指定限定小树,所述小树提供用于将一组多边形顶点从第一坐标空间变换到多个其他不同坐标空间的变换。

16.一种非暂时性存储器,其存储信息,包括:

17.根据权利要求16所述的非暂时性存储器,其中子树或子图形表示几何结构的空间分离实例且限定允许将所述几何结构变换为那些空间分离实例中的每一个的变换。

18.根据权利要求16所述的非暂时性存储器,其中所述加速结构包含多个子树或子图形,每个子树或子图形由相应的替代根节点成根。

19.根据权利要求16所述的非暂时性存储器,其中所述加速结构表示待显示的几何结构。

20.根据权利要求16所述的非暂时性存储器,其中所述加速结构表示待测试与光线的相交的多边形。

21.根据权利要求16所述的非暂时性存储器,其中所述加速结构表示待进行光线或路径追踪的多边形。

...

【技术特征摘要】

1.一种构建用于由至少一个处理器执行的光线追踪的加速结构的方法,包括:

2.根据权利要求1所述的方法,其中自动地添加包括:添加被指定为替代根并且还被链接到所述加速结构中的父节点的节点,所述替代根的指定被构造成使所述光线追踪器在被指定为替代根的所述节点处开始遍历所述加速结构并且将遍历限制于所述替代根的子树,而不会在从所述子树向上遍历所述加速结构时逃逸到所链接的父节点。

3.一种光线追踪方法,包括:

4.根据权利要求3所述的光线追踪方法,其中所述指示符包括单个位。

5.根据权利要求3所述的光线追踪方法,其中调节包括将所述指示符复制到所述遍历堆栈条目。

6.根据权利要求3所述的光线追踪方法,其中小树数据结构与所述加速结构的实例化节点相对应。

7.一种光线追踪器,包括:

8.根据权利要求7所述的光线追踪器,其中所述堆栈管理硬件被进一步配置成当从所述加速结构的所述子集以所述节点作为其根向上遍历时,即使该节点在所述加速结构中指定父节点,也不允许所述加速结构的遍历从被指定为替代根的所述节点上方逃逸。

9.根据权利要求7所述的光线追踪器,其中所述堆栈条目包括从与加速结构节点相对应的压缩小树复制的替代根指示符。

10.根据权利要求7所述的光线追踪器,其中所述堆栈管理硬件被进一步配置成初始化所述堆栈以便在被指定为替代根的所述节点处而不是在所述根处开始遍历。

11.根据权利要求7所述的光线追踪器,其中所述包围体-光线相交测试器被进一步配置成同时用光线测试包围所述几何结构加速结构的不同部分的多个包围体,并且当所述多个包围体中的任一个与所述光线相交时指示包围体-光线相交...

【专利技术属性】
技术研发人员:G·穆特乐J·伯吉斯M·安德森T·维塔宁L·奥利弗
申请(专利权)人:辉达公司
类型:发明
国别省市:

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

1