首页>文档>Redshift文档>Redshift 渲染设置:如何正确的设置Redshift采样

此组别内的文章

需要支持?

如果通过文档没办法解决您的问题,请提交工单获取我们的支持!

Redshift 渲染设置:如何正确的设置Redshift采样

首先我们先要来了解一些基础原理和一些参数。

在渲染设置基础选项里面有一个Unifie Sampling(统一采样的选项)

Redshift 渲染设置:如何正确的设置Redshift采样

这里有一些基础的参数我们先来了解一下:

Samples Min/Max:最小最大采样(最少最多发射射线数量)

Adaptive Error Threshold:自适应错误阈值控制检测噪点灵敏度

之后还有一些本地采样,如灯光的采样,材质球里面反射折射的采样。包括渲染设置的统一采样,还有GI的光线数量。

Redshift 渲染设置:如何正确的设置Redshift采样

渲染设置里面的本地采样覆盖,会附带掉场景所有对应的采样

Redshift 渲染设置:如何正确的设置Redshift采样

灯光里面的采样

Redshift 渲染设置:如何正确的设置Redshift采样

材质球里面的采样

以上就是一些基础参数,之后我们来简单了解一下采样原理。

渲染器通过在摄像机视野范围内发射多条光线来实现景深,运动模糊和抗锯齿等效果。这些射线称为“原射线”。当每个像素得到的主光线不足时,结果可能就会有噪点或者锯齿。但是,并非图像的所有部分都需要相同数量的主光线!例如,与静止物体相比,快速运动的物体需要更多的主光线以实现平滑的运动模糊。同样,与焦点对准的物体相比,焦点对准的物体需要更多的光线才能获得准确/平滑的景深。这意味着为屏幕上的所有像素得到相同数量的主光线可能是浪费的。每个像素拍摄相同数量的一次光线称为“固定速率采样”。固定速率采样与“自适应采样”完全相反。

统一采样是一种自适应采样技术,可检测图像中有噪点/锯齿状的部分,并自动调整每个像素的主光线数量。这样可以大大加快渲染速度。那么自适应错误阈值就控制着什么时候停止对该像素发射光线继续采样。

在计算渲染器对每个像素发射多少光线有一个公式可以计算:

本地采样÷最大采样=每像素多少射线

但是有一个比较重要的地方就是,假设我们本低采样低于最大采样,这个在实际采样的时候是不允许的,因此如果最后的每像素射线低于1,都默认以1处理。

256本地采样÷512最大采样=0.5条每像素射线。(实际发射1条光线)

利用以上的公式我们可以知道每一个样本有多少采样被触发。(用一下公式)

每像素射线×最小采样=最小每像素采样

每像素射线×最大采样=最大每像素采样

假如我们最小采样是16,最大采样是512,本地采样是1024,那么计算的方法如下:

1024本地采样÷512最大采样=2条每像素射线

2条每像素射线×16最小采样=32个最小每像素采样

2条每像素射线×512最大采样=1024个最大每像素采样

那么现在我们对于每个像素有多少采样就有了一个范围32-1024。那么这时候我们就能够对每个像素产生对应的采样,但是有时候并不是所有像素都需要1024个那么多的采样。因此我们就需要通过自适应阈值,来控制渲染器什么时候停止采样。

Redshift 渲染设置:如何正确的设置Redshift采样 这是光线图,我们发现如果最大采样为2,那么之前4个本地采样就被一分为二

之后我们就来看一下自适应阈值,在之前我们需要再了解一个参数,显示采样:它可以把花费采样多少显示出来,越暗的地方采样就越少,越亮的地方采样就越多。

Redshift 渲染设置:如何正确的设置Redshift采样 Redshift 渲染设置:如何正确的设置Redshift采样 这里显示了采样的分布,以及不同本地采样的灰白对比度

上面有四个梯度,每个的最大采样和本地采样都依次增加一倍,自适应阈值会保证都在合适的噪点情况下停止,也就是说就算我们再增加光线他也只会在对应的阈值停止。由于场景一致所以四个梯度最终停止采样的阈值也是基本一致的。

但是我们会发现灰白度有变化。这是因为在最小采样不便的情况下,最大采样增加了因此他的光谱尺度增加了,也即是能够检测的范围增加了有更多的细节。同时我们也会发现后面三个梯度渲染时间基本一致,这是因为当前范围内自适应阈值停止的值基本一致。

如果你的场景中没有运动模糊或者景深,那么一般512个最大样本就可以了。

Redshift 渲染设置:如何正确的设置Redshift采样 这了显示了四个梯度的光谱

红色线代表一些花费较低采样的阈值点。我们会发现512/1024/2048的灰度颜色基本一致,但是对于256就已经很亮了。所以我们看第一个梯度的场景整体就很亮,并且噪点不能很好的消除。

蓝色代表了能够消除噪点的采样阈值,我们会发现256根本就达不到,但是后面的512/1024/2048都达到了,因此后三个梯度花费的时间要比第一个长一些,但是能够降低噪点。同时一般我们256-512个最大采样就足够了。

Redshift 渲染设置:如何正确的设置Redshift采样

之后还有一个隐藏的机制,Redshift渲染器将采样发送的时候会打包进行处理,一般是4/8/16/32最小4最大32。

之后上面的自适应阈值也就控制着发送多少包之后停止。同样他也有基本的公式

(最小采样数到最大采样数)÷打包值(优先32)=多少个包,如果有余数,则用余数继续计算较小的打包值如16/8/4。

比如:

(32到1024的采样数)÷32的打包值=31个包(1024÷32=32,32÷32=1,32-1=31也就是31个包)

有时候也会有不是整数的情况:

(16-512的采样数)÷32的打包值=15.5(512÷32=16,但是16÷32=0.5.那么实际的也就只有15.5。同理由于发送不了半个32包,所以就会拆分成,发送15个32包,再加一个单独的16包,这样就解决了这个问题。(但是从之前的15个,加了一次变成了16个)

所以如果我们没有足够的包数,那么渲染器就不知道何时停止因为他到不了我们的自适应阈值。所以一般我们渲染需要有15-35个包。

Redshift 渲染设置:如何正确的设置Redshift采样

之后我们来看一下包的数量如何影响我们的渲染

左侧的图像,我们把本地采样改为1,增加最大最小采样。

右侧的图像,本地采样改为2048,但是最小最大采样减少了,这是为了保证追钟的每像素分配采样一致。

我们会发现左边花费的时间比右变长。有两个主要原因:

  1. 左边由于本地采样为1所以就只有一条采样射线,他无法受到自适应阈值的控制,因为它直接对所有像素都使用课最大的采样,但是右边却有两条采样射线,因此它可以先发射一次看是否满足,如果不行就发射第二条。
  2. 左边的包数我们可以算出大致需要61个包。右边31个包,左边的包数太多了,并且自适应阈值已经失去了作用,因此61个包就会全部发射完。但是右边只有31个包并且有自适应阈值来控制所以部分像素就不需要使用到31个包。

Redshift 渲染设置:如何正确的设置Redshift采样 因此包的数量不能够太多

下面我们来演示包的数量较少:

左侧同样是一个本地采样,丢失了自适应的功能,但是它有24个包。在24个包内刚搞能够清楚大部分的噪点。右边虽然有更多的采样射线,但是包数太少了,只有4个4的包值。这导致没有更多的包数发送,无法到达自适应阈值,因此质量和速度都要比左边慢。

Redshift 渲染设置:如何正确的设置Redshift采样

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索
  • muhisnp007对文章纸纹理-宣纸 (30)发布评论!
  • muhisnp007对文章米色细纹理石头材质发布评论!