如何减少Krakatoa粒子渲染的颗粒感

上传人:壹****1 文档编号:564966243 上传时间:2024-01-07 格式:DOCX 页数:28 大小:1.96MB
返回 下载 相关 举报
如何减少Krakatoa粒子渲染的颗粒感_第1页
第1页 / 共28页
如何减少Krakatoa粒子渲染的颗粒感_第2页
第2页 / 共28页
如何减少Krakatoa粒子渲染的颗粒感_第3页
第3页 / 共28页
如何减少Krakatoa粒子渲染的颗粒感_第4页
第4页 / 共28页
如何减少Krakatoa粒子渲染的颗粒感_第5页
第5页 / 共28页
点击查看更多>>
资源描述

《如何减少Krakatoa粒子渲染的颗粒感》由会员分享,可在线阅读,更多相关《如何减少Krakatoa粒子渲染的颗粒感(28页珍藏版)》请在金锄头文库上搜索。

1、如何减少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渲染的一般准则总是如此:使场景中具有尽可能多的粒子,并让每

2、一个粒子的密度相对都较低,这些低密度的海量粒子累积在一起就能够得到过渡非常光滑的渲染结果,实际上单独渲染其中任意一个粒子都是几乎不可见的。 至少在渲染火焰、等离子体(plazma)和丝状烟的情况下,这是正确的方法。在这几种情况下需要大量的partitions(分区)以及非常低的每粒子密度值才能避免粒子渲染的颗粒感。 下文将会测试不同粒子数量和不同密度情况下的渲染结果,用于演示在Kraktoa中如何得到一张“干净的、光滑的、无颗粒感的”渲染图像。1.2 基础场景 为了探究粒子数量及每粒子density对最终渲染效果的影响,我们用一套非常简单的Particle Flow粒子流在100帧的时间里产生

3、100w粒子。 这套Particle Flow粒子流中使用了一个Force Operator用以给粒子施加一个带Turbulence的Wind力场,同时也用了一个默认参数的Drag力场。 这套粒子流之后用Krakatoa做了partition。每一个partition的第100帧都包含100w个位置稍有不同的粒子,这种位置上的不同是由position operator上的random seed的变化产生的。 这些partition之后都用一个PRT Loader加载进场景,视口中只显示一个partition的粒子量,但渲染却会使用各种数量的partition以及不同density的组合来测试最

4、终渲染图像的变化。1.3 100w粒子,不同的密度渲染测试及结论 首先,让我们看看单个partition用”density:5.0,exponent:-1或-2或-3或-4”几个不同值的渲染效果:density:5.0,exponent:-1density:5.0,exponent:-2density:5.0,exponent:-3density:5.0,exponent:-4 从图中容易看出,第一张图(density:5.0,exponent:-1)颗粒感最重,此时粒子密度值为0.5. 从YouTube网站的视频中,很容易发现那些想要每一颗粒子都可以完全被看到,为那几百万粒子产生的效果而感到

5、印象深刻的艺术家们(稍带讽刺意味)。 可以看到在0.005的密度下大多数的颗粒感都不见了,而在0.0005(5.0/-4)的情况下渲染的结果可以用来做丝状的香烟烟雾。1.4 1000w粒子渲染测试及结论 现在让我们读入10个partitions(共1000w粒子),并把密度设为0.0005渲染的结果,与读入1个partition(100w粒子),并把粒子密度设置为0.005(也就是密度为之前的10倍)的渲染结果做比较:前者:1000w粒子,密度0.0005后者:100w粒子,密度0.005 可以看到,最终的空间密度(1000w*0.0005 = 100w*0.005)是相等的,但是密度只有后者

6、十分之一的1000w粒子产生的图像几乎比前者光滑10倍。 And here is the rendering of 10 partitions with Density of 0.005 (left)compared to 1 partition with Density of 0.05: 下面的渲染测试则是:A图10个partitions,1000w粒子,密度0.005,B图1个partition,100w粒子,密度0.05:A:10个partitions,1000w粒子,密度0.005B:1个partition,100粒子,密度0.05 同上一次的测试结果一样,使用10倍多的粒子数量配合1

7、0倍少的密度会产生类似的体积渲染效果,但是噪点会少很多。 为了读者能看到更多的信息,下面是10个partitions共1000w粒子的渲染日志,包含了读取粒子数据、灯光计算和渲染计算总共花费了大约17.5秒:PRG: Rendering frame 100STS: Section Retrieving Particles:STS: Total 00h00m 05.000s Called 1 times Avg 00h 00m 05.000sPRG: Rendering 10000000 particles.PRG: Producing volumetric lighting with 1 li

8、ghtsSTS: Section Lighting:Matte Objects:STS: Total 00h00m 00.000s Called 1 times Avg 00h 00m 00.000sSTS: Section Lighting:Sorting Particles:STS: Total 00h00m 01.312s Called 1 times Avg 00h 00m 01.312sSTS: Section Lighting:Generating Attenuation:STS: Total 00h00m 06.110s Called 1 times Avg 00h 00m 06

9、.110sSTS: Section Render:Matte Objects:STS: Total 00h00m 00.016s Called 1 times Avg 00h 00m 00.016sSTS: Section Render:Sorting Particles:STS: Total 00h00m 01.203s Called 1 times Avg 00h 00m 01.203sSTS: Section Render:Drawing Particles:STS: Total 00h00m 03.969s Called 1 times Avg 00h 00m 03.969sPRG:

10、Finished rendering frame: 1001.5 输出分辨率对粒子渲染效果的影响 当使用粒子渲染模式(与体素渲染模式相对)来进行渲染时,请记住:输出分辨率会影响到最终渲染结果,影响程度几乎可以比肩粒子数量对最终渲染结果的影响。 当输出分辨率改变时,同时也改变了真实世界中每像素所占的空间大小。 这就意味着在一个较低的分辨率图像中,一个像素代表了一个更大的体积空间,因此也意味着在单位体积内包含了更多的粒子,这样就会降低渲染的颗粒感,并使渲染出来的粒子看起来更紧密充实。 提高分辨率会使粒子分布变稀疏,因此需要更多的粒子才能覆盖画面中(原有画面比例的)像素区域去得到流畅光滑的渲染结果。

11、 下图中,Iterative模式的下的缩放特性被用于减少输出的分辨率到原来的50%,但粒子的密度并没有发生改变。 左边的图是0.005的密度,1000w粒子,右边的图是0.05密度,100w粒子。 能观察到,右边的图在100%分辨率的情况下看起来非常粗糙有颗粒感(见本文之前的100%测试大图),但缩小50%之后看起来像是1000w粒子在100%分辨率时候的效果,而左边的图像看起来就光滑的很完美了。1.6 1000w粒子的体素渲染测试及结论 使用比一个像素稍微大一点儿的体素来进行渲染会得到较少颗粒感的结果,这是因为所有的体素都一个一个地邻接在一起,因此没有空的体素在他们之间,这会导致更光滑的过渡

12、。 此外,体素渲染模式下的Filter Radius参数能够使相邻体素的衔接更为光滑,因为它在着色的时候会把自身体积外的粒子也考虑进来(进行过渡着色),但是Filter Radius的代价就是渲染时间,值越大渲染时间越长。 下面的图片是10个partitions,密度0.05,使用不同的Voxel Sizes和Fiter Radius参数组合的结果:A:Voxel Size 0.5 ,Filter Radius 1,这个效果与之前同数量的粒子渲染模式的效果类似B:Voxel Size 0.5 ,Filter Radius 2,抹去了一些噪点C:Voxel Size 1 ,Filter Radi

13、us 1,和B图很相似D:Voxel Size 1 ,Filter Radius 2,产生了过度模糊的图像1.7 1亿粒子渲染测试及结论 下图是1亿粒子与1000w粒子的效果对比:A:100个partitions,1亿粒子,密度0.0005B:10个partitions,1000w粒子,密度0.005 看起来粒子好像用的太多了?记住在比如“超人归来”的某些镜头里使用了大约每帧7-10亿的粒子,才能去得到在2K分辨率的画面上看起来光滑流畅的效果。 需要注意的是,1亿粒子能够支持到原画面200%的分辨率(见下图)。 以下是1亿粒子的渲染日志,和预测的一样,10倍的粒子数量花费了10倍的时间去完成各

14、项渲染内容!PRG: Rendering frame 100STS: Section Retrieving Particles:STS: Total 00h 00m 49.000s Called 1 times Avg 00h 00m 49.000sPRG: Rendering 100000000 particles.PRG: Producing volumetric lighting with 1 lightsSTS: Section Lighting:Matte Objects:STS: Total 00h 00m 00.000s Called 1 times Avg 00h 00m 00

15、.000sSTS: Section Lighting:Sorting Particles:STS: Total 00h 00m 13.890s Called 1 times Avg 00h 00m 13.890sSTS: Section Lighting:Generating Attenuation:STS: Total 00h 01m 00.610s Called 1 times Avg 00h 01m 00.610sSTS: Section Render:Matte Objects:STS: Total 00h 00m 00.016s Called 1 times Avg 00h 00m 00.016sSTS: Sect

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 建筑资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号