用于通过复杂照明下路径追踪进行场景渲染的设备及方法技术

技术编号:18302664 阅读:42 留言:0更新日期:2018-06-28 12:21
通过路径追踪在图像网格上渲染由光源(L1、L2)照亮的3D场景(2)。在3D场景中追踪源自每个网格像素(P1A、P1B、P2)的至少一条射线,直到其在交叉点(M1A、M1B、M2)处遇到对象(21、22),将该射线向光源中的一个光源反射,在交叉点和该光源之间为该射线进行可见性测试,以及在交叉点处添加该光射线的作用,以在所涉及的像素处进行渲染。根据光源以集群方式在像素上进行可见性侧,根据分别与所述可见性测试相关联的光源的功能在计算和/或存储器存储方面集群可见性测试。应用于GPU。

Device and method for scene rendering by path tracking under complex illumination

The 3D scene (2) illuminated by light source (L1, L2) is rendered on the image grid through path tracking. At least one ray originating from each grid pixel (P1A, P1B, P2) is traced in the 3D scene until it meets an object (21, 22) at the intersection (M1A, M1B, M2), reflecting the ray to a light source in the light source, the visibility test for the ray between the intersection point and the light source, and the addition of the light at the intersection point. The function of the line is rendered at the pixel involved. The visibility side of the pixel is carried out in a cluster based on the light source, and the visibility test is clustered in computing and / or memory storage in accordance with the functions of the light source associated with the visibility test respectively. Applied to GPU.

【技术实现步骤摘要】
用于通过复杂照明下路径追踪进行场景渲染的设备及方法
本专利技术涉及计算机图形学中的图像渲染领域,尤其是在复杂照明下的虚拟3D场景的交互式渲染。它更具体地针对GPU实时渲染(图形处理单元)。在本公开中,术语“渲染”大体上指的是几何和材料数据到可见图像的转换。
技术介绍
通过考虑所有直接和间接照明的作用(contribution),真实照明效果的渲染需要场景中的全(full)光交换的适当模拟。具有挑战性的任务包括求解渲染方程,该渲染方程表示到达以所有方向被散射的表面的所有照明作用的积分。在如JamesT.Kajiya所著的“TheRenderingEquation”,ACMSIGGRAPHComputerGraphics,n°143-150,1986的文章中描述了这样的方程。然而,求解该渲染方程并不繁琐,也没有解析解存在,主要是因为由复杂场景几何引起的可见性问题。随机射线追踪方法,比如路径追踪(参见尤其是上述ACMSIGGRAPH文献)需要追踪大量的光路径来求解它。由于许多随机路径不能直接到达光源,路径追踪引擎往往依赖于沿着路径的直接光采样策略,称为下一个事件模拟。该方法通过在沿着路径的每次反射处直接对光源进行采样,并将其光作用添加到由路径携带的能量中,从而提高路径追踪的收敛速度。这种技术极大地有助于在路径中添加能量,但在需要的计算时间内可以被增强。在D.vanAntwerpen所著的“ImprovingSIMDEfficiencyforParallelMonteCarloLighttransportontheGPU”,HighPerformanceGraphics,2011的文章中,蒙特卡洛(MonteCarlo)光传输算法尤其比如路径追踪是相对于任意行走的随机终止被增强,这通常导致在样品之间的不均匀工作量,从而降低了SIMD(单输入多数据)效率。在这方面,将流压缩与样本重生相结合,在每次扩展之后在流的结尾处重新生成新的样本。由于新生成的样本被并排放置在流的结尾处,所以在样本重生期间SIMD效率保持很高。虽然增强了计算效率,后者取决于任意的俄罗斯轮盘终止和相关线程束中并排的新生成的样本的数量。双向路径追踪技术也是众所周知的。在这样的实现中,从像素和光源追踪光射线,更准确地说,在任意行走阶段期间,为每个样本构建眼睛路径和光路径,并且当两者都被终止时,在连接阶段期间评估这些路径之间的所有连接。因此,眼睛和光路径的随机终止会导致样本之间的不均匀工作量。通过由D.vanAntwerpen在上述文章中提出的方案受制于上述效率的限制,部分地解决了该问题。在E.P.Lafortune和Y.D.Willems所著的“ReducingtheNumberofShadowRaysinBidirectionalPathTracing”,WSCG’95,1995的文章中,提出了用于降低在双向路径追踪中阴影射线的数目的算法。联合增加样本的数目能够补偿随机过程方差的轻微增加。更准确地说,阴影射线是基于它们作用的重要性而被选择的。取决于不同的实现方式,在以下组中,为每一组选择单个阴影光射线:光路径上每个点的一组照明作用,或者眼睛路径上每个点的一组照明作用,或者一组所有的照明作用。选择每个像素的样本数目,以大约获得射线的恒定总数目。由于与在阴影射线交叉试验上花费的时间相比是重要的开销,特别是对于小场景,因此虽然缩小了RMS(均方根)误差,该方案往往会影响计算效率。
技术实现思路
本公开的目的是仍然缩小关于现有路径追踪技术的计算时间以及加快在渲染算法中的阴影计算,同时使得可以保持相同的采样策略。本公开的目的尤其是兼容于现有的射线追踪系统或延期的渲染引擎的渲染设备,并且有利地易于在图形硬件上实现。在这个方面,本公开涉及一种用于通过路径追踪由至少两个光源照亮的3D场景对图像网格进行渲染的设备,图像网格包括像素。该设备包括至少一个处理器,该至少一个处理器被配置用于:-为像素中的每个像素追踪源自3D场景中的该像素的至少一条射线,直到该射线在交叉点处遇到3D场景的对象;-将来自交叉点的该射线向3D场景的光源中的至少一个光源反射到对象上;-对交叉点和光源之间的该射线进行可见性测试;-只当可见性测试导致正输出时,在交叉点处添加光源的作用,以在图像网格的该像素处执行渲染;根据本公开,至少一个处理器还被配置用于根据光源以集群方式在像素上继续进行可见性测试,根据分别与可见性测试相关联的光源的功能在计算和/或存储器存储方面集群可见性测试。由于在GPU上并行计算的光可见性射线与3D空间中的同一区域(即所考虑的光源)相关联,因此对于该组像素的可见性测试的集群有利地具有改善射线一致性的效果。光可见性射线(或阴影射线)是从3D场景的一个点发送到另一个点的光线,以便测试这两个点之间的可见性。通常情况下,GPU在被称为线程束(warp)的并行线程块的网格上实例化内核程序,比如射线交叉。每个线程块都包含一组运行同一内核的并发运行线程。块中的线程可以访问一级缓存存储器或L1缓存,而块之间的线程共享稍慢的共享二级缓存存储器或二级缓存。为了清楚起见,在具体实施例中的GPU包括24个线程束,其中每个线程束包括8个线程的4个块—这在GPU中产生768个线程。在另一个具体实施例中,GPU包括唯一的线程束,其包括32个线程的16个块—这在GPU中相当于512个线程。上述设备有利地提供了相对于具有直接光采样的现有方案的速度处理的增加。事实上,后者倾向于破坏GPU缓存一致性,因为光源是被随机选择的。此外,在那些已知的技术中,随机光源选择导致无组织的阴影射线(被用于可见度测试),即在GPU线程束中计算的一组射线正在追踪从任意表面出发到达任意光源的射线。阴影射线的无组织分布对于存储器一致性是不利的,并且需要处理延迟。本设备可以帮助在同一GPU线程束中计算的阴影射线之间获得更好的一致性。也就是说,连接路径可以由光源在其路径追踪实现方式中分类。可视性测试在计算和/或存储器存储方面的集群能够可能是特别具有成本效益的。在这个方面,在给定的反弹步骤处(在特定实施例中:在每个给定的反弹步骤处),给定GPU线程束的所有线程有利地与光源中的同一光源相关联。在特定的实现方式中,这对于所有采用的GPU线程束都是有效的。而且,在给定的反弹步骤处(在特定实施例中:在每个给定的反弹步骤处),光样本有利地集群到分别与由路径追踪器潜在选择的光源中的那些光源相关联的缓存器中。然后可以在这些缓存器上运行射线查询以便进行可见性测试。在传统的射线集群中,将这种可见性测试的集群应用到光源的功能中显得非常出乎意料和令人惊讶,而且将传统的可见性测试应用到下一个事件模拟的路径跟踪也是一样。在特定的实现方式中,至少一个处理器被配置用于通过从光源向交叉点发射可见光射线,在交叉点和光源之间为像素中的每个像素执行可见性测试。使用反向阴影射线的实现方式特别有趣,因为在GPU上并行计算的射线通常粗略地从3D空间中的同一点开始。与经典的光射线查询相比,当射线可以从3D场景中的任何表面开始时,极大地缩小了可能射线的来自光源的开始位置。可以使用多种方法中的一种来实现集群方案,比如在包含射线查询的缓存器上进行快速GPU缩小。这样实现方式的示例(简称为流压本文档来自技高网
...
用于通过复杂照明下路径追踪进行场景渲染的设备及方法

【技术保护点】
1.用于通过路径追踪由至少两个光源(L1、L2)照亮的3D场景对图像网格(3)进行渲染的设备(1、5),所述图像网格包括像素,所述设备包括至少一个处理器,所述至少一个处理器被配置用于:‑为所述像素中的每个像素追踪源自所述3D场景中的所述像素中的所述每个像素的至少一条射线,直到所述至少一条射线在交叉点(M1A、M1B、M2)处遇到所述3D场景的对象(21、22);‑将来自所述交叉点的所述至少一条射线向所述3D场景的所述光源中的至少一个光源反射到所述对象上;‑对所述交叉点和所述光源中的所述至少一个光源之间的所述至少一条射线进行可见性测试;‑只当所述可见性测试导致正输出时,在所述交叉点处添加所述光源中的所述至少一个光源的作用,以在所述图像网格的所述像素处执行所述渲染;其中,所述至少一个处理器还被配置用于根据所述光源以集群方式在所述像素上继续进行所述可见性测试,根据分别与所述可见性测试相关联的所述光源的功能在计算和/或存储器存储方面集群所述可见性测试。

【技术特征摘要】
2016.12.20 EP 16306739.01.用于通过路径追踪由至少两个光源(L1、L2)照亮的3D场景对图像网格(3)进行渲染的设备(1、5),所述图像网格包括像素,所述设备包括至少一个处理器,所述至少一个处理器被配置用于:-为所述像素中的每个像素追踪源自所述3D场景中的所述像素中的所述每个像素的至少一条射线,直到所述至少一条射线在交叉点(M1A、M1B、M2)处遇到所述3D场景的对象(21、22);-将来自所述交叉点的所述至少一条射线向所述3D场景的所述光源中的至少一个光源反射到所述对象上;-对所述交叉点和所述光源中的所述至少一个光源之间的所述至少一条射线进行可见性测试;-只当所述可见性测试导致正输出时,在所述交叉点处添加所述光源中的所述至少一个光源的作用,以在所述图像网格的所述像素处执行所述渲染;其中,所述至少一个处理器还被配置用于根据所述光源以集群方式在所述像素上继续进行所述可见性测试,根据分别与所述可见性测试相关联的所述光源的功能在计算和/或存储器存储方面集群所述可见性测试。2.根据权利要求1所述的设备(1、5),其中,所述至少一个处理器被配置用于通过从所述光源向所述交叉点发射可见光射线,在所述交叉点和所述光源之间对所述像素中的每个像素进行所述可见性测试。3.根据权利要求1或2的设备(1、5),其中所述图像网格被提供有缓存存储器(S),所述至少一个处理器还被配置用于:-只当所述可见性测试导致正输出时,将在所述交叉点处的所述光源的所述作用存储在所述缓存存储器中;-在进行所述可见性测试之前,分布所述缓存存储器为向所述可见性测试提供的、被称为缩小的光缓存器(RB1、RB2)的至少两个缓存器,所述缩小的光缓存器中的每一个对应于与所述像素(P1A、P1B、P2)的一个相关联的所述光源(L1、L2)中的一个光源;-通过查询所述缩小的光缓存器进行可见性测试。4.根据权利要求3所述的设备(1、5),其中,所述缓存存储器包括分别映射到所述像素的缓存器元件。5.根据权利要求4所述的设备(1、5),其中,所述至少一个处理器被配置用于对于所述像素中的每个像素,将与所述像素中的所述每个像素相关联的所述光源的索引存储至映射到所述像素中的所述每个像素的缓存器元件中。6.根据权利要求4或5所述的设备(1、5),其中,所...

【专利技术属性】
技术研发人员:A迪费P勒科克JE马维尔
申请(专利权)人:汤姆逊许可公司
类型:发明
国别省市:法国,FR

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

1