光线追踪、光线投射、光线行进和路径追踪之间有什么区别?

jan*_*b04 19 algorithm rendering raytracing terminology

据我所知,标题中提到的所有技术都是看起来非常相似的渲染算法。所有基于光线的技术似乎都围绕着通过图像的每个像素投射光线来表示真实光线。这允许渲染非常逼真的图像。

\n

事实上,我正在制作一个简单的程序,根据光线追踪在一个周末自行渲染此类图像。

\n

现在的问题是我想以某种方式命名这个程序。我使用了术语 \xe2\x80\x9cray Tracer\xe2\x80\x9d,因为这是书中使用的术语。

\n

然而,我听过很多不同的术语,我有兴趣知道光线追踪、光线匹配、光线投射、路径追踪和任何其他常见的光线相关算法之间到底有什么区别。我能够在网上找到这些技术的一些比较,但它们都只比较了其中的两种,并且一些定义重叠,所以我想问这个关于所有四种技术的问题。

\n

Spe*_*tre 16

我对此的理解是:

  1. 射线投射

    使用光栅图像来保存场景,并且通常在第一次命中时停止(没有反射和光线分裂),并且不一定基于每个像素(通常是屏幕的每行或每列)投射光线。其 3D 版本称为体素空间光线投射,但贴图不是体素空间,而是RGB,Height使用 2 个光栅图像。

    欲了解更多信息,请参阅:

  2. (后)光线追踪

    这通常遵循光的物理特性,因此光线在反射和折射中分裂,并且我们通常在经过一定次数的撞击后停止。场景用 BR 网格或解析方程或两者来表示。

    欲了解更多信息,请参阅:

    back意味着我们将光线从相机投射到场景(基于每个像素),而不是从光源投射到任何地方......以错误的照明为代价大大加快了过程(但这可以通过顶部的其他方法来补救)这个的)...

其他Therms我不太确定,因为我不使用这些技术(至少有意地):

  1. 路径追踪

    是使用蒙特卡罗(随机)方法避免光线追踪中递归光线分裂的优化技术。因此,它实际上不会分割光线,而是在两个选项之间随机选择(类似于光子在现实世界中的行为),然后将更多渲染的帧混合在一起。

  2. 雷行进

    是一种优化技术,通过使用 SDF(有符号距离函数)来确定沿光线的安全前进,使其不会击中任何物体,从而加速光线追踪。但它仅限于分析场景。