保存粒子序列
所用场景和上一节相同,请用场景原来的的设置,如果你没有场景
在前面的教程中,你可以缓存粒子以减少计算时间。现在我们更进一步,让你可以保存整个动画序列到硬盘。 一旦把粒子保存到硬盘,你可以关掉或者删除粒子系统 从硬盘加载只需要几秒钟时间,因为krakatoa为每一帧保存相应文件 如何保存粒子到硬盘: 右键RENDER FRAME选择action segment[0-100]Nth:1,(在渲染设置面板,你也应该设置相应的帧范围) 在粒子渲染节点下拉列表中选择save particle to file sequence
RENDER按钮会变成SAVE PARTICLE,此时save particle卷展栏也会自动出现。注意此时>Iterative[Full]已经变成灰色 通常,你都要选择一个保存路径
选择渲染通道: n krakatoa已经默认设置一些常用通道保存到文件 n 你也可以根据需要添加和删除一些通道(废话好多) n 例如: 在所有粒子都是单一的绿色时,保存每粒子颜色是没有什么意义的。这只会增加文件大小,(因为)你已经知道了粒子颜色可以在渲染时重写,但也可以在PRT Loader object或通道修改器或材质指定时设置物体颜色。 保存法线也是没有什么意义的,除非你要把粒子对应到模型上 IDs在将来我们要把粒子导回particle flow时要用,但是现在是没用的 所有粒子密度默认为1.0,在这里这个通道是多余的,即使你不保存density,将来导入粒子时krakatoa没有读取到density,也会将其默认设置为1.0,反正都是1.0,又何必浪费硬盘空间来保存这个1.0呢 所以,选中以上说的四个通道,移除
保存粒子: 单击SAVE PARTICLES按钮开始处理粒子 等待。。。。。所有的粒子都缓存到硬盘文件。在这个例子中,包含1000000个粒子和100帧,花费1.6Gb的存储空间和5分钟的时间(此数根据电脑配置和通道数目而不同,我的电脑好像没到3分钟,嘿嘿)
读取粒子: 选择现在场景中的粒子流,并将其关掉(取消勾选“粒子发射”) 在max主菜单栏上,打开krakatoa菜单,按住shift同时选择“crate a PRT Loader - Hold SHIFT to create at world origin”(将粒子导入并放置在世界坐标原点) 找到之前保存粒子的路径,选择其中一个文件,单击“打开”。如果序列中没有存储颜色通道,krakatoa将随机指定一个颜色给粒子 你可以在对象颜色面板中,把粒子颜色设置为浅绿色 屌丝翻译注:如果颜色没有改变,滑动一下时间滑块,就刷新过来了 这是在70帧时,默认导入1%粒子,所以粒子看起来很少,但是渲染时用的是100%的粒子 PRTLoader可以导入单帧,范围帧,还是很好用的,此处你自己仔细研究一下:
渲染PRTLoader: 把粒子渲染 模式改回到render scene particles 渲染第50帧 渲染速度是很快的,无论你要渲染哪一帧,速度都差不多,不用等待粒子升级。
观察粒子速度: 之前我们把粒子的位置和速度信息保存到文件 在场景中选中PRTLoader,在右边的修改面板,下拉选中display velocities,如图所示(如果图示不清楚请直接问我): 现在你可以观察到速度了: 粒子变成了线条,每个线条的长度表示两帧之间,粒子的位移变化。在0帧,你什么都看不见,因为粒子还没有发生位移,位移是0,线条长度是0;简单的说,是粒子速度是0所以神马都没有
给粒子动画重置时间 (也叫子弹时间,可以做慢镜头或快进效果) 到目前为止,PRT Loader存储着粒子的位置和速度信息。而PRT Loader的另一项强大功能是重置动画时间(根据位置和速度通道) 请把之前显示速度(display velocities)的下拉列表中选回display as large dots 勾选Graph[a] 你会发现所有粒子都回到了0帧时的状态,这是因为我们没有给Graph[a]设置动画,单击向右的两个小三角 选中create LINEAR playback keys。你会发现好像,动画又回到原样子。其实不一样,你看看时间滑块,在时间滑块的开始和结束位置(本场景是第0帧和第100帧)分别创建了关键帧。这个关键帧是干什么用的呢?你把第100帧处的关键帧移到50帧处,播放动画你会发现,仅用50帧的时间就把整个粒子序列给播放完了,速度快了一倍,是不是相当于加速了?不过这种加速时线性的,因为我们刚才点击向右双三角时选的是create LINEAR playback keys(线性模式)。你还可以试试下面几个选项,分别是加速模式,减速模式,乒乓模式。 下面三个,都不难理解,分别是范围外方式,反转动画,删除关键帧 范围外方式的“范围”指的是两个关键帧之间的范围。一般来说粒子序列都只会在“范围”播放,除非你进行了帧偏移。 把时间范围做如下更改: 两关键帧还是在第0帧和第100帧(现在的“范围”是0到100帧) 拖动时间滑块,你会发现“范围”之外没有粒子序列播放 进行帧偏移(20帧): 拖动时间滑块观察,你会发现在-20到0帧有粒子序列播放,就是说“范围之外”有了动画。这个动画应该以什么方式(type)进行?你可以在out-of-range types中选择了……
在时间配置把帧范围改回0到一百。帧偏移改回0,单击向右双箭头把graph[a]的模式改为乒乓模式,时间滑块滑到32帧处。我们接着往下看。
在渲染中使用速度信息: 存储在文件序列的速度信息不仅可以用来重置时间,还可以在渲染时做运动模糊 krakatoa提供内置的运动模糊节点,并且(在每一帧)只会对照明计算一次,然后把多个通道合成都一张图像 点击渲染你会发现进行了4次渲染(particle segments为4),并且把渲染的4个运动模糊合成到了一张图像,这种图像中包含了4000000个粒子(4*1000000)(渲染了4次嘛) 现在把快门调到360,右键向右双箭头在下拉列表中选择 渲染你会发现运动模糊加强了(屌丝翻译只用过傻瓜相机,不知道快门的具体意思) 边缘有很明显的条带(数一数,好像是4条哦)为什么是4呢?屌丝翻译又要啰嗦一下了:particle segment为4(segment“分割,分段”的意思),上面提到了用线段显示速度,这里就是把线段4等分,分别放上4个粒子(所以最终图像中粒子总数为4*1000000),于是四张图像合并的效果就是这样子了。你可以把particle segment分别设为1,2,3,4,分别渲染一下,就应该明白了 要消除这些条带同时不增加渲染时间,你可以打开“抖动运动模糊” (懒虫翻译嫌打英文麻烦,直接上图) 粒子会在速度方向上做随机抖动,产生一些噪乱,减少统一性 边缘是不是好多了呢 你还可以再加一些分段(particle segment设为8),渲染时间会增加一倍哦 效果似乎更加细腻些了 (屌丝翻译注:在我们做一些光束效果的时候,可以提高模糊的分段值,这样光束效果会更强烈)
渲染序列图像: 取消选择>Iterative[full] 右键RENDER勾选“active segment[0-100]Nth:1” 右键RENDER单击“set render output filename”设置输出路径和格式 单击RENDER开始渲染图像
谢谢你耐心看到这里……我也只是菜鸟,做的不好还请见谅
|