机器学习中的光线追踪算法入门

530 阅读6分钟

在玩视频游戏时,你有没有想过是如何或者说是什么让游戏中的光线看起来与现实生活中的光线相似?这是因为光线追踪技术的存在。通过这个过程,游戏设计师可以使可见的光束跳入物体,产生真实的阴影,并创造出栩栩如生的反射。

光线追踪对当今世界产生了巨大影响,修改和创新了科技界的各个领域。在这篇文章中,我们将了解光线追踪算法以及它是如何用于机器学习的。

前提条件

  • 读者应该知道什么是算法,以及它是如何在编程中使用的。
  • 读者应该熟悉数据结构和神经网络。

目录

什么是光线追踪算法?

光线追踪算法是一种绘制合成图像的有效方法。它是一种渲染方法,有可能产生更大的真实性,可能比其他扫描仪的真实性更高。然而,这涉及到一个巨大的计算成本。

它给出的结果几乎与扫描线渲染和射线投射相似,但也可以实现更复杂的光学效果,如精确的折射和反射模拟。在需要高质量输出的情况下,它也很有用。

光线追踪的历史

它是由Robert Goldstein和Arthur Appel在60年代创造的。根据维基百科,在1968年,阿瑟-阿佩尔是第一个使用计算机用光线追踪生成阴影图像的人。他用光线追踪法计算出在每个图像点上哪个表面离摄像机最近,然后从每个阴影点追踪到光源的次级光线,看它是否在阴影中。

Robert Goldstein随后使用光线追踪,通过反向模拟摄影过程来创建固体的阴影图像。他使用了一种非递归的基于光线追踪的算法,称为 光线投射.光线追踪被广泛认为是图像合成的最有效方法。

射线追踪是如何工作的

在当今的数字世界中,计算机图像已经成为一种非常基本的需求。当我们需要创建一个看起来真实且与拍摄的标准图像无异的图像时,计算机图形就会发挥作用。这可以通过各种方式来实现。光线追踪就是这样一种方式。它是通过追踪光的路径,如图像平面中的像素,并模仿其遇到物体时的效果来产生图像。

这个过程的目的是通过模仿光线强度的行为将真实的光线带到模拟中。它是通过反射来自摄像机的光线,"跟踪 "它们直到它们遇到一个物体,并计算每条光线在广场上切割物体的位置。这样就可以计算出像素是如何被光线影响的,并在光线在场景上跳跃时对其进行跟踪。这就要求计算机跟踪从每个交叉点到反射光模型的一定数量的光线,从而在广场上形成越来越多的光线。

光线追踪模仿光线在由不同几何体形成的空间中的路径。模仿假定光束可以被一个广泛的体所吸收,当体是反射的时候,它就会被反射,或者在体显示出来的情况下被分散。

为了实现这种模拟,射线追踪器在观看者和显示位置之间放置一个屏幕(见下图)。渲染器从观看者的眼睛发出一条射线,穿过像素,进入每个像素的场景。

然后计算出射线和射线路径上的第一个场景元素的对比度。然后,该光束被分离出一条或两条与物体材料相对应的次级射线。反射和折射射线被反复跟踪,以计算每一步的交汇点,直到获得一个预先确定的深度。

Ray tracing

图片来源。

光线追踪算法的类型

各种方法都是为了诱导光线追踪的有效性。有三种类型的光线追踪算法,它们包括:混合光线追踪算法、前向光线追踪算法、后向光线追踪算法。

混合型光线追踪算法

它是后向和前向光线追踪技术的结合,因此使其更加有效,因为它具有两种技术的优点。

使用基本的光栅图像处理系统(如Vulkan)对场景进行第一遍的渲染。第一遍之后是光线追踪阶段,为第一遍创建的图像添加更多信息。

前向光线追踪算法

它也可以被称为光线追踪。这是因为它跟随光子从光源到特定物体。这是确定物体颜色的最佳技术,尽管它是最低效的方法。这是因为有几条来自光源的光线从来没有穿过视线平面并进入眼睛。

在这里,我们假设反射的光线与眼睛的表面相交,尽管在现实中光线会向各个方向反射。来自源头的光线将沿直线方向行进,直到它碰到一个表面,然后改变到其他可能的方向。

后向光线追踪算法

在后向光线追踪中,产生了一条眼睛光线,它穿过视图平面并进入空间。眼睛应该与物体接触,这样才能被眼射线击中,因此,眼睛是来自视点平面的。然后,光线追踪器会在光束反弹后找出视平面内这一点的确切颜色和阴影。

与前向光线追踪一样,后向光线追踪也有一个假设。它假定只有穿过视平面然后进入眼睛的光线才能产生最终的图像。这个假设可能不是真的,因为在某些情况下,许多光线可能会穿过视平面。后向光线追踪也被称为眼球追踪。

光线追踪算法的应用

如今,光线追踪被应用于PC游戏中。然而,这项技术的主要实现特征被用于有限的方面,如提供真实的视觉效果或阴影。

这种算法也可以用来记录广场上物体之间的显著的相互作用。广谱互动在许多场景中占主导地位,这可以归因于标准的跟踪照明模型,但包括辐射度数据算法。光线追踪可用于游戏行业,使用光线追踪的游戏例子包括;GodFall、 resident evil village和Minecraft。

其他可以应用光线追踪的领域包括产品开发(CAE/CAD)、媒体和娱乐应用。

结论

光线追踪算法正变得越来越流行。这篇文章提供了关于这种算法的令人兴奋的细节。

总结一下。

  1. 我们获得了关于什么是光线追踪算法的概述。
  2. 我们回顾了这种算法的历史。
  3. 我们了解了光线追踪算法的工作原理。
  4. 我们看了各种类型的光线追踪算法。
  5. 我们还对这种算法的应用有了一个概述。

学习愉快