0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

光线追踪如何实现实时三维图形

电子设计 ? 来源:电子设计 ? 作者:电子设计 ? 2022-02-14 16:22 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

作者:Kristof Beets,Imagination Technologies PowerVR产品管理资深总监

我们所处的世界充满着由太阳或其他人造光源发射出的数以亿计的光线。当光照射到物体表面时,光线会以各种方式反弹、分散和反射,直至最终到达我们的眼睛。正是这种复杂的交互作用创造了我们的现实“视界”。光线追踪是一种用于三维(3D)图形的照明技术,它可以模拟真实世界中的光线照射方式。虽然它能产生最逼真的效果,但是从传统上看,其过程对于计算机而言还是过于复杂,以致无法实时创建三维图形。

如今,它被广泛用于为广告和电影创建超逼真的渲染效果,但是在这些应用中,即使利用当今功能非常强大的计算服务器,生成每一帧数据仍需花费数小时。光线追踪是个时髦词,作为实时图形的发展方向,它令人们感到非常兴奋(也有人将其视为炒作,这取决于你的看法)。在本文中,我们将认识光线追踪,并了解实现它的方法。

简化问题

在三维游戏中,场景由各种物体组成,当这些物体组合在一起时,就会形成数百万个三角形。光线追踪最基本的功能就是发射出一条光线,然后沿着它在三维场景中的路径来定位它所到达的第一个物体,进而确定应该如何对该物体进行照明。然而,用场景中的每个物体去测试一条光线以确定它们是否相交,这样的做法效率太低、计算成本太高,完全无法实时进行。

因此,为了使用光线追踪技术,我们需要解决这一问题。

使用场景层次结构将兔子划分到多个小方框中

这可以通过建立光线追踪加速结构来实现。为了做到这一点,我们可以围绕整个游戏场景绘制一个方框,然后将其划分为多个较小的方框,再将这些小方框细分为更小的方框,我们按这种方式不断将方框进行细分,直到小方框中的三角形数量达到便于管理的程度为止。我们将其称为场景层次结构,它帮助我们将问题简化到一定程度,使现有的图形处理器可以有效地进行处理。

这种方法之所以有用,是因为当我们向游戏场景中发射光线时,可以根据场景层次结构逐层进行检查。首先,我们要检查光线到底有没有射入最大的方框(即我们的场景)。如果有,我们将继续检查下一层的小方框。在这个阶段,我们会发现光线射入了一些方框,但没有射入另一些方框。接下来,我们可以不断将光线未射入的方框排除在外,只重点关注光线射入的那些方框,直至我们找到光线与三角形相交的地方。至此,我们终于找到了自己的目标。

这种层次结构使我们能够找到光线和三角形最近的交点,而不必测试场景中的每个三角形。这极大地简化了问题,因此可以更快地完成处理过程。

在几何处理阶段(该阶段硬件会完成物体的动画处理工作)之后,我们会将那些三角形置入一个称为场景层次生成器的专用硬件中,该生成器可以生成上面所述的加速结构。我们还添加了一些专门的光线/方框/三角形测试器,它们是专用的固定功能硬件,用于通过加速结构进行光线追踪,并确定光线与三角形的交点。与使用软件可编程管线相比,在专用硬件中完成所有这些操作要快得多,而且更节省面积和功耗。

那么,当硬件确定光线照射到一个三角形之后,下一步该做什么?接下来我们会触发一个片段着色器,这是一个小程序,可以确定该三角形特定位置的颜色,这一步和传统的渲染方式基本相似。然后,通过该片段着色器程序,我们将更多的光线发射到三维场景中,随着此过程的不断重复,就可以建立起我们的光线追踪场景。

一致性问题

但是,现在我们又有一个新问题。我们向场景中发射了大量光线,那么该如何高效地进行所有处理工作呢?我们需要从存储器内的加速结构中获取方框和三角形,并且当每条光线每次照射到一个物体上时都会触发一次片段程序。

不幸的是,光线是不稳定的,它们不一定会沿着同一方向传播。在专业术语中,我们将此描述为不一致性——这会带来问题。不一致的数据访问对现代的图形处理器(GPU)来说是不利的。这有点像在按字母顺序排列的名片簿中查找信息,但给我们的名字却是按完全随机的顺序排列的——这就需要我们不停地来回翻查,会占用宝贵的时间和精力。

pIYBAGAICPCAGiW0AACSIuKF_SQ951.png

光线追踪加速结构

更糟糕的是,当光线随机地向四处反弹时,它们还会照射到不同的物体和三角形上,这些物体和三角形需要分别着色和添加阴影,这将触发不同的着色器程序。然而,GPU喜欢以并行方式处理着色器。这正是GPU的强大之处:以大规模并行方式处理数据的能力使其比其他处理器(如CPU)更具优势。这是因为GPU的算术逻辑单元(ALU)本质上采用了单指令多线程(SIMT)方式。但是,如果每条光线会触发一个不同的着色器,那么将无法在GPU上运行,因为这需要多指令多线程(MIMT)架构,该架构在芯片面积和功耗方面的效率都很低。

针对此问题的一种解决方案是采用Imagination Technologies开发的一致性引擎,该引擎可以追踪光线,并且在场景中所有混乱的光线之间找到秩序。

如果你看下面的图片,一开始可能会觉得光线是随机的。但是,如果你更仔细地观察,会发现实际上是存在一致性的。

为了更清楚地对此进行解释,请注意图中物体的某些部分是如何反射相同黄色对象的。尽管看起来很混乱,但还是会发现有一些光线是沿着同一方向传播的,并照射到了相似的对象上。我们的一致性引擎会对此进行查找,并将这些光线分组,从而使它们更易于被GPU处理。这就是“魔法”,我们重新实现了高效的数据访问和执行,从而降低了处理的功耗以及对带宽的需求。

混合渲染的好处

太好了,我们现在可以高效地进行光线追踪了。然而,正如我们前面说的,现实世界中会有数以亿计的光线向四面八方反射,从而形成我们眼睛看到的图像。因此,即使考虑到我们实现的所有效率提升,使用光线追踪来创建整个场景仍然是有问题的。那么解决方案是什么?混合渲染。

虽然传统的栅格化渲染在如今是一种很好的方法,但它却困扰于空间交互问题,例如灯光/阴影、反射和折射——而这些复杂的事情正是光线追踪所擅长的。通过混合渲染方法,我们可以同时利用两者的优势,对简单的物体使用栅格化渲染,然后从着色器发射一些光线,并有选择性地创建数量有限的空间光线追踪查询,进而创建超逼真的阴影、照明效果和精确的反射。通过使用这种混合渲染方法,我们极大地减少了所需追踪的光线数量,这最终使我们实现了实时性能。

手机上的光线追踪:真的会实现吗?

答案很简单:是的,会实现。如今智能手机中的GPU相比其首次推出时已经取得了巨大的进步,这不仅体现在功能方面,在实际可实现的性能方面亦是如此。事实上,高端智能手机已经突破了1 TFLOPS(每秒万亿次浮点运算)的计算壁垒,而这曾是专用游戏机的专属能力。这其中的核心问题是效率。智能手机依赖于电池续航时间,而光线追踪相比传统的渲染方法更高效,因此它很有可能会很快地被添加到移动设备体验中。

利用上述创新,Imagination可以实现高效的光线追踪。在智能手机中,使用传统的栅格化方法在游戏中“伪造”阴影和反射的成本非常高。在Unity或Unreal等现代游戏引擎中,反射是使用级联阴影贴图生成的。这需要多次渲染屏幕中的几何体,并将阴影贴图查找表写入存储器中,所有这些操作都会消耗周期和带宽,并产生大量的GPU和系统功耗。

通过使用光线追踪,我们可以向光源发射一条光线,如果该光线碰到了光以外的任何东西,我们就知道该片段处于阴影中。所以,使用我们简化且高度优化的光线追踪解决方案会简单得多,相比级联阴影贴图所需的预处理,它是一种功耗更低的解决方案。

在分析我们自2016年以来的原型光线追踪硬件时,我们发现相比阴影、反射和其他技术,光线追踪的功耗通常不到一半,但获得的质量却高得多。这里需要意识到的是,一种复杂但“虚假”的技术比简单的光线追踪技术功耗更高,而光线追踪技术实现的效果却逼真得多,这使得它不仅适合现代的高端智能手机,而且是非常理想的选择。

人工智能和超分辨率

虽然在智能手机中应用光线追踪是一种选择,但我们同样对云游戏的日益普及感到兴奋,这得益于5G网络和边缘计算的发展。在云游戏中,我们的光线追踪架构所实现的带宽和功效很可能也是至关重要的。

我们需要不断地进行创新,才能以更少的成本实现更多的成果,因此,我们对人工智能(AI)处理的飞速发展感到非常兴奋。再加上神经网络,它们可以与光线追踪结合使用,从而提供更高的效率。例如,当我们为了提高效率仅追踪相关光线时,可能会得到含有噪声的结果。神经网络在降噪方面有很好的前景,可以利用学到的“智能”来填补缺失的细节。这和现实中的工作方式是一致的,因为我们的大脑也会填补有限的人类视觉系统留下的许多空白。

神经网络可以用来提高图像质量,同时无需使用更高的分辨率

另一个极具潜力的概念是超分辨率。它同样是利用神经网络的能力,去智能地学习如何填补缺失的细节,以支持GPU以较低的分辨率进行渲染,从而提高性能并降低功耗,同时仍然保持视觉质量。

面向未来

毫无疑问,实时光线追踪拥有光明的前景,这对于任何对三维图形感兴趣的人来说无疑是令人兴奋的。由于光线追踪基于真实世界的物理原理,因此可以提供最高水平的真实感,同时相比我们迄今为止一直在使用的技巧和近似方法,它还可以提供很高的效率。低功耗的栅格化图形处理、开创性的光线追踪操作,再加上人工智能和神经网络的持续创新,所有这些结合在一起,有助于将图形处理提升到一个新的高度。

作者简介:


Kristof Beets,现任Imagination Technologies的PowerVR产品管理资深总监,他已在Imagination工作超过19年,先后担任过各种开发、产品和营销职位。

申请转载文章
公众号:物理演示实验室(UPC-Phy-Demo-Lab)
审核编辑:何安

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 光线追踪
    +关注

    关注

    0

    文章

    185

    浏览量

    21848
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    VirtualLab:光学系统的三维可视化

    元件和探测器的位置,以及快速了解光在系统内的传播。所应用的三维视图建模技术可与经典的光线追迹相媲美。 如何生成一个系统视图文档 一个光学系统的三维视图可以通过两种不同的方式生成: 1.使用“
    发表于 05-30 08:45

    光线追踪及降噪技术综述

    作者:胡梁来源:CUIT数据生态与智慧空间研究中心引言渲染是将三维场景的描述转换为二图像的过程。在动画[1-2]、电影特效[3]、高端游戏[4]、几何建模、纹理处理等应用中都必须通过某种形式的渲染
    的头像 发表于 04-01 11:31 ?443次阅读
    <b class='flag-5'>光线</b><b class='flag-5'>追踪</b>及降噪技术综述

    【RA-Eco-RA4E2-64PIN-V1.0开发板试用】3D 图形显示

    如下图: 3D 矩形是一个三维图形,要将三维图形显示在平面显示屏上,需要进行投影计算,将三维的顶点坐标(x,y,z)转换成二顶点坐标(
    发表于 01-20 01:23

    实现实时三维测量的技术挑战

    随着科技的飞速发展,实时三维测量技术已成为现代工业和科研领域的重要工具。它能够提供精确的三维数据,帮助工程师和研究人员更好地理解和设计复杂的系统。 1. 数据采集速度 实时
    的头像 发表于 12-30 15:23 ?588次阅读

    三维测量在医疗领域的应用

    三维测量在医疗领域的应用十分广泛,为医疗诊断、治疗及手术规划等提供了重要的技术支持。以下是对三维测量在医疗领域应用的分析: 一、医学影像的三维重建与分析 CT、MRI等影像的三维重建
    的头像 发表于 12-30 15:21 ?728次阅读

    三维测量软件的使用技巧

    在现代工业和科研领域,三维测量技术已经成为不可或缺的一部分。它能够提供精确的空间数据,帮助工程师和研究人员更好地理解和设计复杂的三维结构。 选择合适的三维测量软件 功能需求分析 :根据项目需求,确定
    的头像 发表于 12-30 15:05 ?926次阅读

    三维扫描与建模的区别 三维扫描在工业中的应用

    三维扫描与建模的区别 三维扫描与建模是两种不同的技术,它们在操作过程、输出结果及应用领域上存在显著的区别。 操作过程 : 三维扫描 :主要通过激光或光学扫描设备,获取实物表面的形状、纹理信息等
    的头像 发表于 12-19 14:55 ?1150次阅读

    GPU在虚拟现实中的表现 低功耗GPU的优缺点

    数据,以实现沉浸式的体验。以下是GPU在虚拟现实中的几个关键表现: 图像渲染能力 :GPU需要快速渲染复杂的三维场景,以保持高帧率,这对于减少运动模糊和晕动症至关重要。 实时光线
    的头像 发表于 11-19 10:58 ?1118次阅读

    CASAIM与迈普医学达成合作,三维扫描技术助力医疗辅具实现高精度三维建模和偏差比对

    近期,CASAIM与广州迈普再生医学科技股份有限公司(简称:迈普医学)合作,基于CT数据三维重建和设计,在医疗辅具研究开发中实现高精度三维建模和偏差比对,实现与缺损区域的精确匹配。
    的头像 发表于 11-12 14:48 ?545次阅读

    基于光线追踪实现反射折射效果

    本文翻译自Scratchapixel3.0[1],是一个关于计算机图形学的系统性的学习教程。如果有误,欢迎在评论区讨论。光线追踪的另一个优点是,通过扩展光线传播的思想,我们可以非常容易
    的头像 发表于 11-09 01:07 ?637次阅读
    基于<b class='flag-5'>光线</b><b class='flag-5'>追踪</b><b class='flag-5'>实现</b>反射折射效果

    基于光线追踪的渲染算法实现

    我们已经涵盖了所有需要说的内容!我们现在准备写我们的第一个光线追踪器。你现在应该能够猜到光线追踪算法是如何工作的了。首先,注意到自然界中光的传播只是从光源发出无数条射线,反弹直到它们撞
    的头像 发表于 10-30 08:06 ?673次阅读
    基于<b class='flag-5'>光线</b><b class='flag-5'>追踪</b>的渲染算法<b class='flag-5'>实现</b>

    三维触摸面板-运用触感功能

    触摸面板可以用于控制机器人、机床等设备的运行。操作人员可以通过触摸和按压面板来发送指令,实现设备的启动、停止、调速等操作,提高生产效率和质量。 智能仓储 :在智能仓储系统中,三维触摸面板可以用于操作叉车
    发表于 09-18 13:55

    三维打印技术原理

    三维打印技术,又称3D打印技术,是一种快速成型技术,其核心原理在于将数字模型文件逐层转化为实体物体。以下是三维打印技术原理的详细阐述:
    的头像 发表于 09-16 15:31 ?1826次阅读

    详细介绍三维建模的优势和未来发展方向

    三维建模是一种广泛应用于多个领域的技术,通过使用计算机软件创建逼真的三维物体或场景。在过去几十年里,随着计算机图形学的发展和3D建模软件的普及,三维建模已经成为许多行业中不可或缺的工具
    的头像 发表于 09-12 14:30 ?917次阅读

    三维可视化技术主要领域及其具体运用

    三维可视化技术是一种强大的工具,它利用计算机图形学、图像处理和虚拟现实等技术,将复杂的数据转化为直观的三维图像,以便更好地理解和分析信息。这种技术在多个领域都有广泛的应用,以下是几个主
    的头像 发表于 09-11 16:40 ?961次阅读