Graphics 对某些结果的质疑:从光线跟踪到分布式光线跟踪

Graphics 对某些结果的质疑:从光线跟踪到分布式光线跟踪,graphics,sampling,raytracing,Graphics,Sampling,Raytracing,我有一个简单的光线跟踪器,我以前做过。我现在要做的是改进它,并将其转换为分布式光线跟踪器。我要做的第一件事是拍摄一束光线,而不是通过每个像素拍摄一条光线。我的束中的每一条光线都从相对像素的中心轻微抖动。然后,像素的最终颜色决定为这些光线给出的结果的平均值。我想问你的是,我得到的结果是否正确,以及它们正确的原因,或者是否有错误。您可以在下面找到一些图片: 正常光线跟踪: 通过每个像素10条光线的分布式光线跟踪: 分布式光线跟踪,每像素10条光线,光线增加: 因此,我的问题是: 1) 当我从1

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

正常光线跟踪:

通过每个像素10条光线的分布式光线跟踪:

分布式光线跟踪,每像素10条光线,光线增加:

因此,我的问题是:

1) 当我从1射线切换到10射线时,我需要增加光的强度,这正常吗

2) 第三张图片中的结果是否合理

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


提前谢谢

分布式光线跟踪不是每像素拍摄多条光线。像素非常小,通过它发射10条光线对图像没有明显影响。在分布式光线跟踪中,从交叉点拍摄多条光线,以模拟软阴影、运动模糊、光泽反射等。通过像素添加到光线的抖动实际上应应用到阴影光线

1) 当我从1射线切换到10射线时,我需要增加光的强度,这正常吗

这取决于如何组合每条光线的颜色。如果计算每条光线的照明度并将其平均,则像素不应如此暗

2) 第三张图片中的结果是否合理


我认为它比单光线拍摄时产生的失真更严重。

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

Ok。。我一直在阅读有关分布式光线跟踪的第一个特征是抗锯齿效果的文章。为了获得这一点,我必须在每个像素中发射一束光线,而不是一条光线。通过像素中心投射的每条光线都会因随机dx和dy而略微抖动。。我想一步一步地实现每个功能。。抗锯齿、软阴影、运动模糊等。。因此,我的第一个目标确实是抗锯齿效果。。但是我似乎失败了。。您认为我的渲染器存在什么问题?如何使用简单的平均值“混合”抖动光线返回的颜色。我对每条光线给出的结果求和,然后将最后的和除以光线数。错了吗?