小伙伴们都知道Houdini供应了一套非常强大的仿照流体工具,怎么才能让流体效果看上去逼真是一项非常富有寻衅性的事情。现在不只是电影,就连电视剧集对视觉效果也有了很高的哀求,制作周期越来越紧张,质量效果却要与电影媲美。
So,本日
须要解释的是,这些技巧针对付熟习FLIP解算器的小伙伴们,如果刚好你是萌新级别选手,还请考试测验SideFX的教程。
Kevin Pinga
美国Houdini FX Artist
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/