【技术实现步骤摘要】
【国外来华专利技术】加速实时光线追踪的三角形可见性测试
[0001]相关专利和申请的交叉引用
[0002]本申请要求
2021
年9月
16
日提交的美国临时专利申请第
63/245,155
号的优先权,其全部内容通过引用并入本文
。
此外,同时提交的美国申请第
17946235(6610
‑
126)
号“微网格,用于计算机图形的结构化几何体
(Micro
‑
Meshes,A Structured Geometry For Computer Graphics)”、
美国申请第
17946515(6610
‑
125)
号“用于光线和路径追踪的位移微网格
(Displaced Micro
‑
meshes for Ray and path Tracing)”和美国申请第
17946563(6610
‑
129)
号“位移微网格压缩
(Displaced MicroMesh Compression)”中的每个申请的全部内容通过引用并入本文
。
[0003]本技术涉及计算机图形,尤其涉及光线追踪器
。
更具体地,该技术涉及计算机图形处理的硬件加速,包括光线追踪
。
本文的示例非限制性技术还涉及针对可见性的高效光线相交测试
。
[0004]
技术介绍
和
技术实现思路
r/>[0005]光线追踪是指将光线投射到场景中,并确定该光线是否以及在何处与场景的几何体相交
。
此基本光线追踪可见性测试是以计算机图形学中各种渲染算法和技术为基础的基本图元
。
通常,光线追踪是一种渲染方法,其中光线用于确定场景中各种元素的可见性
。
光线追踪用于各种渲染算法中,算法包括例如路径追踪和
Metropolis
光传输
。
在示例算法中,光线追踪通过对遍历场景的光传输进行建模来模拟光的物理现象以使用光线光学计算所有全局效应
(
包括例如来自发亮表面的反射
)。
在这样的光线追踪的用法中,当光线遍历三维场景从潜在的多个光源传播到视点时,可能会尝试追踪成百上千的光线中的每一个
。
通常,遍历场景相对于眼睛追踪此类光线,并针对场景中所有几何体
(geometry)
的数据库进行测试
。
可以从光到眼睛向前追踪光,或者从眼睛到光反向追踪光,或者可以追踪光线以查看从虚拟相机开始并从眼睛开始的路径是否具有清晰的视线
。
该测试可以确定最近的相交
(
以便确定从眼睛可见的东西
)
,也可以追踪从物体表面朝向光源的光线,以确定是否有任何干涉会阻止光到空间中该点的透射
。
因为光线与现实中的光的光线相似,所以它们提供了许多现实效果,而这些效果是使用许多其他
3D
图形技术无法实现的
。
由于来自场景中每个光源的每个照明光线在遍历场景中的每个对象时都经过评估,因此得到的图像看起来就像是在现实中拍摄的一样
。
因此,这些光线追踪方法长期以来一直在专业图形应用程序
(
例如设计和电影
)
中使用,其中在基于光栅的渲染方面它们占据了主导地位
。
[0006]光线追踪可用于确定沿光线是否有任何东西可见
(
例如,测试几何图元上的阴影点与光源上的点之间的遮挡物
)
,还可用于评估反射
(
例如,可能涉及执行遍历以确定沿视线的最近可见表面,以便在流处理器上运行的软件可以评估与所命中的事物相对应的材质着色功能
——
其反过来根据相交的对象的材料属性又可以向场景中发射一个或更多个附加光线
)
以确定沿光线返回向眼睛的光
。
在经典的怀特德
(Whitted)
风格光线追踪中,光线是从视点通过像素网格射入场景的,但是其他路径遍历也是可能的
。
通常,对于每条光线,
找到最接近的对象
。
然后,可以通过将光线从相交点发射到场景中的每个光源并发现它们之间是否存在任何对象来确定该相交点是被照明还是处于阴影中
。
不透明的对象会挡住光,而透明的对象会减弱光
。
可以从相交点产生其他光线
。
例如,如果相交表面是发亮的或镜面的,则在反射方向上产生光线
。
光线可以接受相交的第一个对象的颜色,然后对它的相交点进行阴影测试
。
递归地重复此反射过程,直到达到递归限制或后续反弹的潜在贡献降至阈值以下
。
光线也可以在透明固体对象的折射方向上生成,然后再次递归地进行评估
。
因此,光线追踪技术允许图形系统依据物理规律开发正确的反射和阴影,其并不经受扫描变换技术的限制和伪像
。
[0007]光线追踪的主要挑战通常是速度
。
光线追踪要求图形系统为每一帧计算和分析照射在构成场景的每个表面上
(
并可能被其反射
)
的数百万条光光线中的每一条
。
[0008]现代
GPU 3D
图形管线如此快地渲染着色的
、
纹理映射的表面的原因之一是它们有效地使用了相干性
。
在常规的扫描变换中,假定所有内容都可以通过公共图像平面中的公共窗口查看并向下投影到单个有利点
。
每个三角形或其他图元通过图形管线发送,并覆盖一定数量的像素
。
可以针对从该三角形渲染的所有像素共享所有相关计算
。
因此,对应于遍历窗口的相干视线的像素的矩形图块可以对应于在同一流处理器中以锁步方式运行的线程组
。
假定落在三角形的边之间的所有像素都是运行相同着色器并从相同纹理获取相邻纹理像素组的相同材质
。
相反,在光线追踪中,光线可能在公共点
(
光源或虚拟相机镜头
)
处开始或结束,但是当它们在场景中传播并与不同的材质相交时,它们会迅速发散
。
例如,每条光线执行搜索以找到最接近的对象
。
可以执行对结果的一些高速缓存和共享,但是由于每条光线都可能命中不同的对象,因此不存在
GPU
传统上已经与纹理映射的
、
着色的三角形结合利用的那种相干性
(
例如,共同的优势点
、
窗口和图像平面没有用于光线追踪
)。
与其他图形方法相比,这使光线追踪在计算上更具挑战性,因此在交互基础上执行起来要困难得多
...
【技术保护点】
【技术特征摘要】
【国外来华专利技术】1.
一种光线追踪加速硬件设备,包括:存储器访问电路,其被配置为读取加速结构
(AS)
的节点,所述
AS
包括至少一个节点以及与所述至少一个节点相对应的可见性掩模
(VM)
,所述至少一个节点包括定义多个区域的多边形网格图元,其中所述
VM
包括多边形网格的多个区域中的每一个区域的相应可见性状态;光线存储,其被配置为存储表示光线的数据;以及加速电路,其被配置为执行操作,所述操作包括:检测所述节点与所述光线在交点处的相交;从所述
VM
中获得所述网格中与所述交点相对应的区域的可见性状态;以及基于所述可见性状态来确定如何处理所述相交
。2.
根据权利要求1所述的光线追踪加速硬件设备,其中所述
VM
中的相应区域的可见性状态至少包括不透明可见性状态和透明可见性状态
。3.
根据权利要求2所述的光线追踪加速硬件设备,其中所述操作还包括:当所述可见性状态为透明可见性状态时,忽略所述相交;以及当所述可见性状态为不透明可见性状态时,提交所述相交;其中所述确定被执行而无需处理所述光线追踪加速硬件设备外部的所述相交
。4.
根据权利要求2所述的光线追踪加速硬件设备,其中所述
VM
中的相应区域的可见性状态还至少包括未知的可见性状态
。5.
根据权利要求4所述的光线追踪加速硬件设备,其中所述操作还包括:当所述可见性状态为透明可见性状态时,忽略所述相交;当所述可见性状态为未知的可见性状态时,提供与所述相交相关联的数据以用于所述光线追踪加速硬件设备外部的处理;以及当所述可见性状态为不透明可见性状态时,提交所述相交;其中当所述可见性状态为所述透明可见性状态或所述不透明可见性状态时,所述确定被执行而无需处理所述光线追踪加速硬件设备外部的所述相交
。6.
根据权利要求2所述的光线追踪加速硬件设备,其中所述
VM
中的相应区域的可见性状态还至少包括未知
‑
不透明可见性状态和未知
‑
透明可见性状态
。7.
根据权利要求6所述的光线追踪加速硬件设备,还包括:当所述可见性状态与所述未知
‑
不透明可见性状态或未知
‑
透明可见性状态相对应时,将所述可见性状态重新映射为所述不透明可见性状态或所述透明可见性状态;当所述可见性状态为所述透明可见性状态时,忽略所述相交;以及当所述可见性状态为所述不透明可见性状态时,提交所述相交;其中所述确定被执行而无需对与所述相交相关联的数据进行外部处理
。8.
根据权利要求1所述的光线追踪加速硬件设备,其中从所述
VM
中获得所述多边形网格中的区域的可见性状态,包括:基于所述交点来确定进入到所述
VM
的索引;以及通过使用所述索引访问所述
VM
来获得所述区域的所述可见性状态
。9.
根据权利要求9所述的光线追踪加速硬件设备,其中所述多边形网格为覆盖在三角形几何图元上的微三角形的网格,并且其中确定进入到所述
VM
的索引包括:
基于所述交点的坐标来计算所述区域的重心坐标;以及基于所述重心坐标来计算所述索引
。10.
根据权利要求9所述的光线追踪加速硬件设备,其中计算所述索引是基于所述重心坐标和所述多边形网格的预定遍历顺序
。11.
根据权利要...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。