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

时间:2021-05-01 14:10:33

标签: algorithm rendering terminology raytracing

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

事实上,I am making a simple program 是基于 Raytracing in one Weekend 自己渲染此类图像的。

现在的问题是我想以某种方式命名这个程序。我使用了“光线追踪器”这个词,因为这就是书中所用的。

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

1 个答案:

答案 0 :(得分:3)

我的理解是:

  1. 光线投射

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

    有关更多信息,请参阅:

  2. (背面)光线追踪

    这通常遵循光的物理特性,因此光线在反射和折射中分裂,我们通常会在一定数量的命中后停止。场景用 BR 网格或解析方程或两者都表示。

    有关更多信息,请参阅:

    back 意味着我们将光线从相机投射到场景(以每个像素为基础)而不是从光源投射到任何地方......以错误照明为代价大大加快过程(但是那可以在此基础上使用其他方法进行补救)...

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

  1. 路径追踪

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

  2. 光线行进

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

相关问题