【问题标题】:Doubts on some results: from raytracing to distributed raytracing对一些结果的质疑:从光线追踪到分布式光线追踪
【发布时间】:2015-07-22 14:26:31
【问题描述】:

我有一个前段时间做的简单光线追踪器。我现在要做的是改进它并将其转换为分布式光线追踪器。我要做的第一件事是通过每个像素拍摄一束光线而不是单条光线。我的每一束光线都从相对像素的中心略微抖动。然后将像素的最终颜色确定为这些光线给出的结果的平均值。我想问你的是我得到的结果是否正确,以及它们正确的原因或是否有问题。您可以在下面找到一些图片:

普通光线追踪:

分布式光线追踪,每个像素有 10 条光线:

分布式光线追踪,每个像素有 10 条光线,光线增加:

所以我的问题是:

1) 当我从 1 条光线切换到 10 条光线时,我需要增加光线强度是否正常?

2) 第三张图的结果合理吗?

我猜这是错误的原因:如果不使用 10 条光线,我只使用 1 条光线,但总是从中心抖动,我会得到类似的结果。见下图:

提前致谢!

【问题讨论】:

    标签: graphics sampling raytracing


    【解决方案1】:

    分布式光线追踪并不是要为每个像素拍摄多条光线。一个像素非常小,通过它射出 10 条光线对图像没有显着影响。在分布式光线追踪中,多条光线从交叉点射出,用于模拟柔和阴影、运动模糊、光泽反射等。您通过像素添加到光线的抖动实际上应该应用于阴影光线。

    1) 当我从 1 条光线切换到 10 条光线时,我需要增加光线强度是否正常?

    这取决于您如何组合每条光线的颜色。如果计算每条光线的照度并取平均值,像素应该不会那么暗。

    2) 第三张图的结果合理吗?

    我认为它比单射线产生的锯齿更严重。

    【讨论】:

    • 好吧.. 我一直在阅读,分布式光线追踪的第一个特征是抗锯齿效果。为了获得这一点,我必须在每个像素中发射一束光线而不是单条光线。每条穿过像素中心的光线都会被随机的 dx 和 dy 抖动一点。我想逐步实现每个功能。抗锯齿、柔和阴影、运动模糊等。所以我瞄准的第一个因为确实是抗锯齿效果..但似乎我失败了..你认为我的渲染器有什么问题?
    • 如何“混合”从抖动光线返回的颜色?
    • 简单平均。我对每条光线给出的结果求和,然后将最终总和除以光线的数量。错了吗?
    【解决方案2】:

    您用来存储颜色的对象是否有限制范围?如果是(例如每个通道 8 位的颜色),累积 10 条光线将使其最大化,然后除以 10 将产生深色。您可以在添加之前将每条光线除以 10,或者使用允许更大范围的颜色类(不限制为 1.0 的浮动颜色等)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-08
      • 2019-11-29
      • 2011-12-08
      • 2014-06-18
      • 2012-05-23
      相关资源
      最近更新 更多