上周我把XP particle更新到了最新版本,终于可以用它的NeXus了,也就是我们说的GPU模拟。
本来想用之前开会的内容,用Nexus来做然后写文章。
但是我感觉要写完所有的文章需要很长的时间,所以我打算分两篇来写。先说说使用NeXus的最初感受。
以前我们的操作步骤通常是首先新建发射器:
然后再添加修改器例如湍流场来对粒子的运动形态等进行控制:
在最新版的XP套装里,可以直接添加NeXus的湍流场修改器:
添加以后你会发现发射器的图标变成橙色了,在粒子的显示选项卡里可以看到,橙色代表的就是在使用GPU模拟:
1、关于修改器
修改器方面目前GPU可使用大部分常规的修改器,我并没每个修改器都尝试,官方倒是提到了湍流场的可控性更高了:
另外我发现杀死场有缺少了我个人觉得很常用的对象模式功能,以前可以直接拖入对象杀死对象以外的粒子:
GPU里的杀死场默认情况下是只有立方体和球体的模式,没有对象模式:
所以如果你想粒子离开对象后就杀死它可以这么操作一下,首先将体积改为对象以内,这样在立方体或者球体杀死场以内的粒子都会被杀死:
然后在衰减里把对象拖进来,模式改为体积,这样杀死场其实就衰减到和对象的大小一致了:
我们移动一下钻石体,可以看到粒子接触到钻石体就会被杀死:
如果你想要粒子超出钻石体就被杀死就很简单了,直接在衰减里再添加一个反向就可以了:
其他修改器我没有做过多尝试,就不做过多说明,另外GPU里的修改器是可以和CPU里的修改器混合使用的。
例如GPU里没有表面攀爬修改器,我这里可以使用CPU的修改器来做,并且同时使用GPU的湍流场:
但是这样操作应该是会对模拟速度有一定的影响,例如我这里全部使用CPU的功能,帧速是117:
把湍流换成GPU的湍流以后,帧速反而变成52了:
并且有时候混合使用可能会出错,例如我这里载入一个XP预制的流体场景:
当我把流体模拟换成GPU的,而使用的重力是CPU的修改器时,模拟是正常的:
但当我流体模拟用CPU,重力用GPU时就会出错:
要解决这个问题就只能提高系统的子帧步幅才可以:
除此之外,XP的GPU目前也是不支持问题和动作的,例如目前我的场景里只有发射器和重力:
现在我给发射器添加一个问题,当粒子年龄大于90的时候给它添加一个动作:
可以看到可添加的动作全部都是以前CPU的修改器内容:
就算我直接新建修改器也是没有办法拖进去的:
所以目前来说XP的GPU修改器常规功能基本都能用,但是想要可控性高一些,可能还需要再等等。
2、动力学模拟
动力学模拟NeXus暂时只有三个功能,动力学约束、流体动力学和泡沫。
其中流体动力学包括PBD和SPH,可以模拟液体流体以及颗粒流体,但是目前暂时没有模拟烟雾等功能:
动力学的其他部分例如布料,我简单尝试了一下把约束和力场换成GPU的好像也可以用,由于我很少用XP布料,所以不确定会不会存在其他的问题:
XP的动力学标签也可以:
破碎好像也可以,总之使用粒子来驱动的动力学部分,理论上应该都能用一用,但是是否存在BUG有待验证:
然后以前如果想要在场景中使用xpFluidFX既模拟液体又模拟颗粒,就需要在两个不同的发射器的流体属性里去进行参数的调整:
更新GPU以后会多一个流体标签:
给发射器添加流体标签以后,流体属性直接在标签里调整,相当于接管了原发射器的流体属性功能:
这样大家可以看到,虽然我的流体模拟里选择的液体,但添加了流体标签以后也能结合流体模拟里面的参数同时模拟颗粒:
3、关于模拟速度的提升
最后再来说说大家比较关心的模拟速度的提升吧,确实会比以前快,我的显卡不太好,是GTX1070,直接使用XP的一个预设流体场景模拟,可以看到帧速8左右:
换成Nexus的GPU模拟以后,同样的粒子数量帧速到了18左右,视窗移动也变得顺畅了许多:
但是仅仅限于粒子数量不是特别多的情况下哈,如果你的粒子数量特别多的话,只能说会比以前CPU模拟快,但是该卡还是会卡。
最后附上一张我在写文章的时候顺便测试的缓存时间截图吧,粒子数量113W,缓存时间20小时17分:
以上就是我短时间使用XP新功能NeXus的感受,下篇案例文章我抓点紧争取尽快发出来,我们下次见吧!
文章来源 公众号:野鹿志(ID:yeluzhi666)作者:马鹿野郎(微信ID:maluyelang666)
|
预设, 粒子插件, 图文教程, 显卡, 衰减, 场景, 流体动力学, 运动, 动力学标签, 缓存, X粒子
|