Chunky光源估计优化¶
Chunky面对太阳光和发光方块时,不一定完全靠“随机碰运气”去采样。为了更快收敛,它提供了一组光源估计优化选项。理解这些选项,能帮助你判断为什么有些场景几十SPP就已经很稳,而有些场景几百SPP仍然满是噪点。
太阳采样¶
开启太阳光时,Chunky默认会使用下一事件估计(Next Event Estimation,NEE)来采样太阳,也就是在每次光线与场景相交时,额外估计太阳对该点的贡献,而不必真的等一条随机路径恰好撞上太阳。
这也是为什么普通白天场景通常比室内火把场景更快变干净。
太阳采样的代价¶
太阳采样虽然能明显加速收敛,但会牺牲一部分特殊效果。文档特别提到,水面上下的焦散等效果在启用太阳采样时可能出不来。
如果你就是想保留这类效果,就要准备接受更高的噪点和更长的渲染时间。
太阳光采样策略¶
Chunky把这组选项放在光照相关设置中,常见名称是太阳光采样策略(Sunlight Sampling Strategy,SSS)。文档提到至少有下面几种思路:
| 模式 | 含义 | 适合场景 |
|---|---|---|
| 默认快速模式 | 保留太阳采样,加快白天场景收敛。 | 普通室外宣传图。 |
HIGH_QUALITY | 只部分关闭快速太阳采样。 | 既想保留部分效果,又不想完全回到纯随机采样。 |
OFF | 完全关闭太阳采样。 | 焦散、水体特殊光效优先。 |
如果你只是要常规白天展示图,不建议轻易关闭。
发射器采样策略¶
对于火把、岩浆、发光石、灯这类发光体,Chunky另外提供发射器采样策略(Emitter Sampling Strategy,ESS)。它的目标和太阳采样类似,也是用更主动的方式估计发光体的贡献,从而降低噪点。
默认情况下,发光体并不会像太阳那样天然“很好采”。原因很简单:场景里可能有很多发光体,而且很多离当前像素很远,没必要每次都全部检查。
Emitter Grid在做什么¶
为了解决“发光体很多”这个问题,Chunky会把世界划分成许多立方体单元,并记录每个单元及其相邻单元里的发光体位置。这套结构由发射器网格(Emitter Grid)支持。
光线命中某个位置后,Chunky只会优先考虑该位置所在单元及附近单元的发光体,而不是把全场景发光体全都算一遍。
这就是为什么Emitter grid size既会影响速度,也会影响ESS效果范围。
ESS各模式怎么选¶
文档给出的常见模式有:
| 模式 | 特点 | 一般倾向 |
|---|---|---|
NONE | 不做发射器估计。每样本最快,但噪点最多。 | 白天场景、发光体不重要时。 |
ONE | 每次相交只采一个随机发射器。 | 常见折中方案。 |
ONE_BLOCK | 比ONE更激进,会采一个随机发射器的全部面。 | 需要更快压低发光噪点时。 |
ALL | 每次都采当前单元和相邻单元中的所有发射器。 | 每样本最慢,但可能最快收敛。 |
要注意,“每样本更慢”和“整体更慢”不是一回事。ALL虽然单次计算最贵,但在某些火把、灯带、室内场景里,可能反而更快达到可用结果。
这两个高级选项有什么影响¶
Emitter grid size¶
这个值决定发射器网格单元的大小。值越大,被纳入采样考虑的发光体范围可能越广,但每次采样成本也可能上升。它更像是调ESS工作范围的旋钮。
Prevent normal emitter when using emitter sampling¶
文档提到,在新版ESS里,这个选项能让ESS差异更明显。开启后,更容易看到ESS本身带来的去噪效果;关闭后,结果可能更接近正常发光逻辑,但为了把噪点压下去,往往要渲染更久。
怎么选比较稳¶
室外白天¶
- 先保持太阳采样开启。
- ESS通常可以维持较保守设置,甚至关闭。
夜景、室内、火把光¶
- 重点观察ESS。
- 一般从
ONE开始试。 - 如果噪点主要来自大量发光体,可以继续试
ONE_BLOCK或ALL。
水下焦散、特殊水面效果¶
- 先评估是否真的需要关闭太阳采样。
- 关闭前要准备接受明显更长的渲染时间。
一个实际的测试顺序¶
如果你不确定场景该用哪种设置,可以按这个顺序试:
- 先保留默认太阳采样。
- ESS从
NONE切到ONE。 - 如果发光噪点仍然很重,再试
ONE_BLOCK或ALL。 - 只有在你明确需要焦散或相关效果时,才考虑关闭太阳采样。
这样通常比一上来乱改所有高级选项更容易看出差别。