【maya特效】}Maya粒子渲染插件Krakatoa(KK)如何重定粒子数
综合文库 898 0
实名

通过了实名认证的内容创造者

发布于 2021-6-25 11:09:05

您需要 登录 才可以下载或查看,没有账号?注册

x
本帖最后由 视觉诈骗师 于 2021-6-27 10:39 编辑

软件:Autodesk Maya
插件:Krakatoa for Maya 2.0为例
前言:非专业者请移步,本篇非新人小白。

Krakatoa for Maya(众所周知也可以简写为Krakatoa MayaKK MayaMaya KK渲染器)是一个体积粒子渲染插件, 支持Mac OSX和微软Windows操作系统。它实现了各种专门的场景对象像PRT外部文件加载粒子序列,PRT体积和PRT表面几何量和表面点云转换。
而当我们使用Maya的particle模式制作的时候,往往需要大量粒子才会得到一个比较平滑的结果,有时候我们的粒子源并不是许多或者数百万级别的粒子,或者数据已经做好(不好更改)。对于这些情况,krakatoa提供了一个可以增加粒子数的功能,能增加多少粒子就要看你的内存了。本图采用realflow(流体特效软件)模拟,输出prt粒子。导入maya建了一个相似的场景。用一盏聚光灯照明,同时放置一台摄影机。
image.png image.png
这一帧包含的粒子数十八万多个:

因为现在粒子数很少,场景看起来像沙子,而不是流体。

为了让整个场景看起来更充实,显得粒子数多,(实际没有增加),我如下设置

增加final pass density,让粒子更加不透光,这样更多的灯光停留在粒子表面,显得更亮


开启16级抖动运动模糊,图片看起来更加动感充实。




增加repopulation modifier(重定数目修改器):

1、选中PRT加载器

2、点击shelf工具架上krakatoa便签下的MOD图标for maya中文教程(三)----重定粒子数" action-data="http%3A%2F%2Fs9.sinaimg.cn%2Fbmiddle%2F71e688edtda2bd4bb96d8%26690" action-type="show-slide" style="border: 0px; list-style: none;">

3、在弹出的对话框中点击“+populate particles”

4、这样PRT加载器的属性面板中会新增加一个属性

5、关掉运动模糊,然后点击渲染:

现在图像中大约有13,000,000个粒子,默认下设置下,参与渲染的粒子增加了160倍左右。


渲染用了24秒,粒子数似乎不需要这么多,为了节省渲染时间,我们把每单元粒子数降低:



这样参与渲染的粒子数减少了一半

渲染用了8秒

图像有些噪点,咋一看还是不错的。开启8级运动模糊,在渲染一下:(图像更平滑了)



渲染用了62秒
进一步调整参数:

population particles 修改器提供了一下参数:

1、fill radius(填充半径) : 默认为0.1。新增的粒子会填充在源粒子周围,这个值定义这个范围的大小。(苦逼翻译注:不要认为这个范围是圆形的。这个值越小,最终增加的粒子数越多。不是说“范围越大,能放的粒子更多;房子越大装的人越多”。正确的解释是:放多少粒子,不是由范围大小决定。而是由下面的细分值(radius subdivs)和每单元粒子数(particles per subdiv)决定。粒子数确定了,房子越大,只会浪费空间)

2、radius subdivs  :对上面的范围进行细分。细分1次,将得到2x2x2个单元。细分2次,得到3x3x3个单元。(苦逼翻译注:好像和我以前理解的细分方式有点出入,以前我以为进行两次细分会得到64个单元。错在于两次细分的“次”字,应该说:在一条线段上插入两个断点,这样就把一点线段分成三段)

3、particles per subdiv (每单元所放粒子数):对细分出来的每个单元,放入多少个粒子。这个值从1变2,粒子数会大约增加两倍,(之所以说“大约”,是因为如果粒子在单元(voxel)里面,却在fill radius外面。这样的粒子是不会被生成的。蛋疼,这种情况是怎么发生的呢?不理解)

4、density falloff (密度减少值):这一段看不太懂这个“surface”是什么意思,上原文:

The Density Falloff value can range from 0.0 to 1.0 and defines the falloff of the Density channel based on the distance from the "surface" of the volume defined by all Fill Radii. When the value is 0.0, all particles will get the same Density regardless of their distance to the surface. A value of 1.0 produces a linear falloff. A value of 0.5 produces constant density if the new particle is farther away from the surface than half of the Fill Radius value, and linear falloff in the range from half the distance to the actual surface.
5、总的来说是:先确定一个范围,在对这个范围进行细分,得到n个单元,在把一些粒子放入每一个单元。


现在以下面这个参数进行渲染



关掉运动模糊

这次生成了22,600,000个粒子左右

图像看起来比细分1次,每单元放入2个粒子更好。(废话,粒子数比人家多了将近10,000,000个)。但是渲染时间是一样的。因为进行多次细分比放入多个粒子要快。(就是说,分成4单元,每单元放1个粒子;和分成2个单元,每单元放入2个粒子相比,前者更省时)


注:22,600,000比85,400大了将近270倍


按照原文说的细分方法:细分为2,每单元放1个粒子。就是说分成3x3x3=27个单元,每单元放1个粒子。就是说粒子数多了约27倍。(可是上面是270倍)。我的小学数学应该是过关的。这个和fill radius=0.1有关。1/0.1=10,正好27和270相差10倍。但是这个我还不知道怎么解释。因为原文没有提到fill radius是如何确定填充范围的,我也不好猜测。


增加填充半径(fill radius)

把填充半径fill radius调为0.15,渲染.

粒子数变为9,600,000个左右,所以渲染时间减了不少

由于填充范围变大,细节丢失了很多。(就像realflow中给模拟的流体加网格后,网眼越大,细节越少)


增加density fallof(密度衰减):


density fallof调为1.0

是不是相当于一个羽化值的效果?也有点像加了运动模糊,但是运动模糊是不会有这么多噪点的,呵呵


channel propagation(传播):

在上面的例子中,源粒子的通道信息是被传播到新粒子的通道的,比如新粒子的速度就继承与源粒子(要不然新生成的粒子傻傻的呆在那里,整个动画就毁了),对于其他通道也是一样的道理,我们可以基于速度给粒子一个颜色来检验一下速度通道的存在。

1、点击MOD图标

2、在弹出的窗口中点击“+copy channel”


3、在PRT加载器的属性面板中Extra Attributes面板下,在“Source channel输入“Velocity”,在“Target channel输入“Color(注意大小写)

场景中的粒子变成了这个样子(其实就是把速度值拷贝给色相值)

这仅仅是是源粒子的数量,现在让我们渲染看看数千百万个粒子时会是什么样子。(一些速度值为负号将显示为黑色)。

在渲染设置中勾选override background color



颜色有些强烈,为了降低颜色强度,我们可以scale(放缩)color channel

1、点击MOD图标,在弹出的窗口中点击“+Scale Channel”


2、转到PRT加载器的属性面板,Channel Scale输入0.1


渲染



添加Emission channel

1、现在我们不想要这个彩色的效果了,如何去掉呢?这个彩色效果是因为我们刚刚进行拷贝速度通道到颜色通道引起的。我们可以在MOD对话框中双击相应条目(前面的加号会变成负号)。或者在属性面板中取消勾选

2、在MOD对话框中单击“+Set Float[3] Channel,这会给PRT添加一个新通道





想要成大触天天上元素
使用道具 <
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表