如何减少Krakatoa 粒子渲染的颗粒感 本文库经验由瑞云科技渲染农场提供 § 1.1 概述 § 1.2 基础场景 § 1.3 100w 粒子,不同的密度渲染测试及结论 § 1.4 1000w 粒子渲染测试及结论 § 1.5 输出分辨率对粒子渲染效果的影响 § 1.6 1000w 粒子的体素渲染测试及结论 § 1.7 1 亿粒子渲染测试及结论 § 1.8 消除阴影的摩尔纹瑕疵 § 1.9 丝状烟的效果 § 1.10 结论 1.1 概述 § 一般对 Krakatoa 渲染器有个通常的误解:因为它是一个粒子渲染器,而点渲染(point rendering)本来就应该是带有颗粒感的。 § Krakatoa 渲染的一般准则总是如此:使场景中具有尽可能多的粒子,并让每一个粒子的密度相对都较低,这些低密度的海量粒子累积在一起就能够得到过渡非常光滑的渲染结果,实际上单独渲染其中任意一个粒子都是几乎不可见的。 § 至少在渲染火焰、等离子体(plazma)和丝状烟的情况下,这是正确的方法。在这几种情况下需要大量的partitions(分区)以及非常低的每粒子密度值才能避免粒子渲染的颗粒感。 § 下文将会测试不同粒子数量和不同密度情况下的渲染结果,用于 演 示 在 Kraktoa中如何得到一张 “ 干 净 的、光滑的、无 颗粒感的” 渲染图 像 。 1.2 基础场景 § 为了 探 究 粒子数量及每粒子density对最 终 渲染效果的影响,我 们 用一套 非常简 单的Particle Flow粒子流 在 100 帧 的时 间 里 产 生 100w 粒子。 § 这套 Particle Flow粒子流中使用了一个 Force Operator用以给粒子施加一个带 Turbulence的 Wind力场,同时也用了一个默认参数的 Drag力场。 § 这套粒子流之后用 Krakatoa做了 partition。每一个 partition的第 100帧都包含 100w个位置稍有不同的粒子,这种位置上的不同是由 position operator上的random seed的变化产生的。 § 这些 partition之后都用一个 PRT Loader加载进场景,视口中只显示一个partition的粒子量,但渲染却会使用各种数量的 partition以及不同 density 的组合来测试最终渲染图像的变化。 1.3 100w粒子,不同的密度渲染测试及结论 § 首先,让我们看看单个 partition用”density:5.0,exponent:-1或-2或-3或-4”几个不同值的渲染效果: density:5.0,exponent:-1 density:5.0,exponent:-2 density:5.0,exponent:-3 density:5.0,exponent:-4 § 从图中容易看出,第一张图(dens...