小伙伴们都知道Houdini供应了一套非常强大的仿照流体工具,怎么才能让流体效果看上去逼真是一项非常富有寻衅性的事情。
现在不只是电影,就连电视剧集对视觉效果也有了很高的哀求,制作周期越来越紧张,质量效果却要与电影媲美。

So,本日

须要解释的是,这些技巧针对付熟习FLIP解算器的小伙伴们,如果刚好你是萌新级别选手,还请考试测验SideFX的教程。

Kevin Pinga

美国Houdini FX Artist

用Houdini若何才能模拟出理想的流体大年夜佬给出10条技巧

Kevin Pinga目前在FuseFX担当Houdini FX Artist,毕业于萨凡纳艺术与设计学院视觉效果专业,辅修技能方向,后来担当学校视觉效果讲师。
曾在Luma Pictures、Ingenuity Studios、Zoic Studios、Gradient Effects等有名团队任职。
曾参与《蜘蛛侠:英雄远征》《行尸走肉》《城堡岩》等影视作品的殊效制作,也为Taylor Swift、Billie Eilish和Maroon 5的音乐MV完成过殊效制作。
总结一句话,也是Kevin Pinga对自己的描述,“看重细节的Houdini FX Artist,具有创建逼真效果的履历”。

Kevin Pinga FX Showreel 2020

好,10条Houdini FLIP流体仿照技巧来咯!

1. 获取源流体要用 POP Source,而不是FLIP Source

FLIP获取源流体的默认方法是利用 FLIP Source节点,本色便是创建了一个VDB,由DOP中的Volume Source节点读取。
这是利用shelf tools时自动获取的。

对付须要从较大模糊形状中获取源流体的情形来说,这是种不错的方法,但会占用大量资源,相称耗时。
而且在进入仿照阶段之前,想要得到更精准sourcing而增加VDB分辨率的话,还会进一步降落速率。

相反,大佬采取方法的是直策应用基于多边形的常规SOP几何图形,无需转换为VDB。
source可以与FLIP解算器本身的Sourcing input相连接的POP Source节点读取,与为常规粒子仿照导入source的办法相同。

POP Source节点掌握起来非常直不雅观,大多数艺术家该当在利用常规粒子的过程中非常熟习了。
这样可以通过预测的办法来掌握和监视粒子计数,而与FLIP工具本身的粒子分离无关。

利用 POP Source的源流体供应熟习的emission, activation和velocity属性

2. FLIP fluids利用POP节点

很多刚入行的伙伴很随意马虎会忘却的,FLIP实质上便是一系列中间带有容积平流步骤的POP节点,根本本身只是粒子,意味着DOP中所有的POP节点都可以用于FLIP fluids。
这便是为什么上一个技巧可以用POP Source节点得到source的缘故原由。

POP Force节点是用于处理常规粒子时创建运动的基本所在,那么,为什么不将其与FLIP流体一起利用呢?用POP Force节点可在产生很小噪波的情形下产生更有魅力的流体效果,低频噪波也可以有助于创建细节,无需增加粒子数量或粒子分离。
但须要把稳的是,不要添加过多噪波,可能会导致仿照看上去不是很真实。

FLIP仿照中其余一个有用的POP节点是POP Speed Limit。
结合 POP Drag节点,非常适宜掌握可能不太好掌握的高速粒子。

利用POP Force节点添加少量噪点对FLIP细节仿照有很大帮助

3. 利用Bounds qL来设置FLIP limits

Bounds qL 节点是一个非常好的工具,包含很多大略实用的功能,它是非常大型的开源Houdini工具集 qLib的一部分。
大多数事情室默认安装qLib,由于它的开拓因此实际制作而驱动的。
如果你还没有用到的话,可以按照GitHub上的解释轻松安装。

将Bounds qL紧张用于设置FLIP和Pyro仿照的体积限定。
这是从标准Bound节点开始的步骤,它包括一个选项,可以根据输入动画来创建边界。

最有用的功能是Output: Values checkbox,可解锁 bounding box的大小和中央值。
然后可以把这些值复制到FLIP解算器Volume Limits选项卡的任何参数,或须要 bounding box的其他任何操作。
具有集中的 bounding box信息可以避免用户缺点,有助于创建更多程序性设置。

参考Bounds qL中的参数有助于设置仿照极限

4. 在FLIP求解器中启动有用的属性

在大多数FLIP仿照中打开FLIP解算器上的一些参数。
有三个紧张的参数是ID、age和vorticity,可用于仿照后的调度(正如下一条技巧会先容到),在Behavior and Vorticity选项卡的FLIP Solver中就能找到。

相信很多Houdini用户都很熟习ID属性和它的功能。
缓存额外的属性可能会对数据大小有一些影响,但是能够获取到这些信息还是有用的。

通过Age Particles checkbox(也可导出life属性) 获取Age属性,可以随着韶光掌握仿照的外不雅观,尤其是当粒子源在恒定发射的时候。

vorticity属性对付获取激流/湍流这种次级仿照来源来说非常方便,而且对处理着色也非常有用。

启用额外的FLIP属性:就像Houdini的其他操作一样,只须要勾选几个复选框

5. 通过仿照后的调度来挽救失落败的仿照

一样平常情形下更依赖于FLIP仿照作为终极结果输出,这是最空想的事情流程。
可由于韶光限定,在实际情形中我们不一定总是拥有重新仿照的机会来办理问题。
在这种情形下,FLIP粒子仿照后进行一些调度可以“挽救”失落败的状况。

例如,添加ID属性的缘故原由之一是可以利用Retime节点对仿照进行重置韶光。

在运行等分辨率仿照时还会碰着一个常见的问题,liquid droplets在仿照高密度区的大小很好,在稀疏密度区就会很大。
在这种情形下,可以考试测验利用pcfind,函数可以帮助标记稀疏区域并降落它们的pscale值。

利用的代码段:

一个大略的VEX谈论,根据点云密度调度粒子大小。
全尺寸图片在这里。

6. 利用xyzdist处理高分辨率碰撞表面

另一个仿照后的调度方法便是,xyzdist非常好用,(Kevin Pinga认为)是到目前为止和 primuv齐名的。

在VEX或VOP文本中,xyzdist 打算的是表面上到最近插值点的间隔。
它与primuv结合起来,就可以从工具的参数UV中提取任何属性。

在上述情形下,提取高分辨率碰撞表面位置,并用于将粒子推向该表面。
在某些情形下,也可以直接在网非分特别面位置进行这个操作,尤其是针对付那些可以看到碰撞表面的镜头(例如将液体倒入透明玻璃杯中)。
要确保把间隔限定在一个很小的值上,才能加快打算速率。

利用的代码:

//initializing variables

int p_prim;

vector p_puv;

//getting the distance and the parametric position of the closest point

float dist = xyzdist(1,@P,p_prim,p_puv);

vector P2= primuv(1,\公众P\"大众,p_prim,p_puv);

//mixing the P of the points, influenced by a mapped distance

@P = fit(dist,chf(\"大众min_dist\"大众),chf(\"大众max_dist\"大众),P2,@P);

在制作中,更为实际的用法是在仿照过程中利用较低分辨率的碰撞,然后再后期仿照调度中运行这个功能,使流体看起来像是在于高分辨率碰撞产生的交互。

建议查阅Henry ‘toadstorm’ Foster的博客文章,详细理解xyzdist 和primuv。

https://www.toadstorm.com/blog/?p=465

利用xyzdist和primuv将粒子推向碰撞表面

7. 利用ID属性肃清有问题的粒子

当碰着仿照完成98%,差不多快完事的时候,而剩余2%的粒子不起浸染的情形时,有一个大略而又有效的办理技巧。
如果存储了前面提到的ID属性,就可以用它来肃清有问题的粒子。
如果没有ID属性,随着point count在帧与帧之间的变革,就没法标记标记精确粒子以进行删除。

有一个很好的方法,进入point selection模式,在键盘上按9,这时会显示出Group Selection 窗格,按ID选择,点击齿轮图标,选择Attributes > id,然后只需在视窗中选择要删除的粒子,点击[Delete]即可。
Blast节点会自动天生,参考的是 point ID,而不是point number。

一种通过ID属性精确打消有问题粒子的大略方法

8. 利用reseeding来增加稀疏区域

在制作中,大部分的仿照开拓事情都是利用等分辨率容器完成的。
有时候,得到的等分辨率FLIP仿照可能达到了你的所有哀求,唯独在终极网格渲染的时候看上去粒子不太够。
碰着这种情形的办理办法是,在FLIP解算器中降落Particle Separation设置(提高分辨率和粒子数),将仿照提交到渲染农场,(回家享受一下周末)第二天早上创造仿照效果看起来完备不同了。

不过在这种情形下,更建议大家启用reseeding参数,而不是改变 particle separation。
在默认情形下利用reseeding参数,增加Surface Oversampling参数可以通过散布粒子来帮助增加稀疏区域中的粒子数量。
这样,在保持了仿照的总体外不雅观的同时,还得担保有足够粒子来避免网格流体看起来像瑞士奶酪一样。

增大surface oversampling来添补稀疏区域的仿照

这里有一个视频,来看一下操作流程。

FROM:Dave Stewart

9. 直策应用原始 FLIP 仿照作为不同元素

在进行流体仿照时的目标之一是最大限度地利用原始FLIP仿照,包括直接将其用作湍流/急流效果。

仿照湍流的传统办法是仿照FLIP流体,然后再其之上运行湍流解算器。
当然第二步并不总是非要有的,尤其对付飞溅和喷水等快速运动的流体来说。
还有一个问题便是在对粒子进行网格化的时候,想让流体看上去真实一些也很不随意马虎。

建议大家用FLIP 仿照本身,直接加湍流着色器进行渲染,既可以渲染粒子本身,也可以将其光栅格为VDB,进行体积渲染。
有时Kevin Pinga会根据镜头的实际效果将两种方法结合到一起利用。
利用Houdini海洋工具时自动创建的湍流着色器非常适宜光栅化的粒子。

将原始FLIP仿照直接渲为湍流

10. 优化仿照和缓存

高分辨率FLIP 仿照具有的寻衅之一是须要处理天生大量的数据。
一种常见的做法是在缓存仿照的任何部分之前删除不须要的属性。

其余一个可以减少内存占用的操作是打消相机可视范围以外的粒子。
在Houdini中有很多实行这个操作的方法,大家可以选用自己喜好的一种。

其余,如果已经准备好了要渲染的几何图形,最好将其缓存并启用Delay Load Geometry checkbox,Mantra不会将几何图形嵌入到IFD文件中,而是将其引用到硬盘的文件中。
这将有助于减少加载韶光,大大减少IFD天生韶光和文件大小。
如果你有渲染农场而且不想太麻烦的话,这个方法会很好用。

利用 File Cache节点中的Delay Load Geometry复选框可加快高分辨率仿照的事情

好啦,关于Kevin Pinga先容的10条Houdini FLIP流体仿照技巧我们先先容到这里,可能个中会有一些不准确的地方,还请大家多多包涵,附上原文链接方便小伙伴们自行查阅,希望可以帮到你们。
收工!

来源:

http://www.cgchannel.com/2020/03/10-expert-tips-for-better-houdini-flip-fluid-simulations/