Houdini 流体操作_三维计算机图形制作

蓝图分享网 2022-12-19 10:13:26 377阅读 0评论

在三维计算机图形设计软件中,Houdini 在其中占据着一定量的使用者,它的流体、毛发和群集模拟选项设置,是在设计中被应用最多的,也是被很多设计师们所喜欢的。

Houdini 流体操作_三维计算机图形制作 第1张

Houdini 提供的流体功能,可谓是强大的,但是如何让这个功能充分地融入到我们的设计中,减少工作周期,提高视觉效果,却是众多设计师们一直在追求的东西。

Houdini FX Artist艺术家针对 Houdini FLIP流体模拟技巧帮助大家总结过几条操作方法,帮助大家在制作流体镜头的时候,能够充分地展现流体模拟效果。

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

在获取源流体的时候通常会有两个选择:一个是 POP Source,另一个是 FLIP Source。这里我们需要注意的是,要选择 POP Source而不是 FLIP Source。FLIP 获取源流体的方式是使用 FLIP Source 节点,实际上就是创建了一个VDB, 由 DOP 中的 Volume Source 节点读取。

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

相对于技术比较成熟的设计师们来说,他们一般会采用基于多边形的常规SOP几何图形,因为这种操作无需要进行 VDB 转换。Source 也可以与 FLIP 解算器本身的Sourcing input 相连接的 POP Source节点进行读取,与常规粒子模拟导入 source的方式相同。

POP Source节点控制起来非常直观,大多数艺术家应该在使用常规粒子的过程中非常熟悉了。这样可以通过预测的方式来控制和监视粒子计数,而与FLIP对象本身的粒子分离无关。

Houdini 流体操作_三维计算机图形制作 第2张

2. FLIP fluids使用POP节点

要究其本质的话 FLIP 实际上就是一个带有容积平流步骤的 POP 节点,基础本身只是粒子,这也就意味着 DOP 中的 POP节点都可以被应用于 FLIP fluids 中。

FLIP 流体为什么不能与 POP Force 一起使用?

 

有些技术老手们可能会知道,POP Force节点是用于处理常规粒子时创建运动的基本所在,它可以在小噪波的环境下创造效果更好的流体效果,而且低频噪波也可以有助于创建细节,无需增加粒子数量或粒子分离。

注:过多的噪波可能会导致模拟出来的效果差,不真实。

另外,FLIP模拟中另外一个有用的 POP 节点是POP Speed Limit。通过结合 POP Drag节点,可以更好地控制高速粒子。

Houdini 流体操作_三维计算机图形制作 第3张

3. 使用Bounds qL来设置FLIP limits

Bounds qL 节点包含很多简单实用的功能,它是Houdini工具集 qLib的一部分。许多设计师在安装使用 Houdini 的时候大多都会默认安装qLib。如果你没有安装经验的话,可以通过 GitHub 上的说明轻松安装。

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

最有用的功能是Output : Values checkbox,可解锁 bounding box 的大小和中心值。然后可以把这些值复制到 FLIP 解算器 Volume Limits 选项卡的任何参数,或需要 bounding box 的其他任何操作。

注:bounding box信息可以避免用户错误,有助于创建更多程序性设置。

Houdini 流体操作_三维计算机图形制作 第4张

4. 通过模拟后的调整来挽救失败的模拟

一般情况下更依赖于FLIP模拟作为最终结果输出,这是最理想的工作流程。可由于时间限制,在实际情况中我们不一定总是拥有重新模拟的机会来解决问题。在这种情况下,FLIP粒子模拟后进行一些调整可以“挽救”失败的状况。

例如:添加ID属性的原因之一是可以使用Retime节点对模拟进行重置时间。

在运行中分辨率模拟时还会遇到一个常见的问题,liquid droplets在模拟高密度区的大小很好,在稀疏密度区就会很大。在这种情况下,可以尝试使用pcfind,函数可以帮助标记稀疏区域并降低它们的pscale值。

使用的代码段:

int pc[] = pcfind(0,’p’,@p,chf(‘max_dist’),chi(‘max_pts’));

@pscale *=float(len(pc))/ch(‘max_pts’);

Houdini 流体操作_三维计算机图形制作 第5张

5. 使用xyzdist处理高分辨率碰撞表面

xyzdist()非常好用,是到目前为止和 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);

Houdini 流体操作_三维计算机图形制作 第6张

注:如果你使用较低分辨率去实现碰撞效果,你可以通过上述方式进行调整,这样会使流体更像是在高分辨率下碰撞所产生的交互效果。

6. 使用ID属性消除有问题的粒子

当遇到模拟完成98%,差不多快完事的时候,而剩余2%的粒子不起作用的情况时,我们则可以选择之前储存过的ID属性,用它来消除有问题的粒子。如果没有ID属性,那么则无法标记正确粒子以进行删除。

这时我们可以选择进入 point selection 模式,选择已开启的软件,在键盘上按9,这时会显示出 Group Selection 窗格,按ID选择,点击齿轮图标,选择Attributes > id,然后只需在视窗中选择要删除的粒子,点击即可。

Houdini 流体操作_三维计算机图形制作 第7张

7. 使用reseeding来增加稀疏区域

在制作中,大部分的模拟开发工作都是使用中分辨率容器完成的。有时候,得到的中分辨率FLIP模拟可能达到了你的所有要求,唯独在最终网格渲染的时候看上去粒子不太够。遇到这种情况的解决办法是,在FLIP解算器中降低Particle Separation设置(提高分辨率和粒子数),将模拟提交到渲染农场,第二天则会发现模拟效果看起来完全不同了。

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

Houdini 流体操作_三维计算机图形制作 第8张

8. 直接使用原始 FLIP 模拟作为不同元素

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

模拟湍流的传统方式是模拟FLIP流体,然后在其之上运行湍流解算器。当然第二步并不总是非要有的,尤其对于飞溅和喷水等快速运动的流体来说。还有一个问题就是在对粒子进行网格化的时候,想让流体看上去真实一些也很不容易。

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

Houdini 流体操作_三维计算机图形制作 第9张

9. 优化模拟和缓存

高分辨率FLIP 模拟具有的挑战之一是需要处理生成大量的数据。一种常见的做法是在缓存模拟的任何部分之前删除不需要的属性。

另外一个可以减少内存占用的操作是清除相机可视范围以外的粒子。在Houdini中有很多执行这个操作的方法,大家可以选用自己喜欢的一种。

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

 

Houdini 流体操作_三维计算机图形制作 第10张

 

免责声明:

1、本站所有资源文章出自互联网收集整理,本站不参与制作,如果侵犯了您的合法权益,请联系本站我们会及时删除。

2、本站发布资源来源于互联网,可能存在水印或者引流等信息,请用户擦亮眼睛自行鉴别,做一个有主见和判断力的用户。

3、本站资源仅供研究、学习交流之用,若使用商业用途,请购买正版授权,否则产生的一切后果将由下载用户自行承担。

4、侵权违法和不良信息举报 举报邮箱:cnddit@qq.com

发表评论

快捷回复: 表情:
AddoilApplauseBadlaughBombCoffeeFabulousFacepalmFecesFrownHeyhaInsidiousKeepFightingNoProbPigHeadShockedSinistersmileSlapSocialSweatTolaughWatermelonWittyWowYeahYellowdog
验证码
评论列表 (暂无评论,377人围观)

还没有评论,来说两句吧...