【houdini】CG猎人第009期houdini完全基础入门学习笔记-flip流体完全入门II

——  微资讯 · 微课程  ——

利用零碎时间,走上超神之路!


课程概述

00课程介绍,1从工具架方式创建流体,2手动创建流体模拟,3flip solver全讲解,4融化效果,5密度控制创建流体颜色混合效果,6divergence讲解,7添加力控制,8避免mesh相互穿插

学习建议

教程难度 ★★

教程质量 ★★★★

这一期是仅接008期流体原理的课后的流体实践案例课,学习完这个课程后你可以制作下面的效果。包括对流体整体设置的和各节点的掌握,使用viscosity粘稠2种方式创建粘稠流体特效;使用density密度控制进行流体混合和使用divergence进行流体扩展与收缩控制,使用多种方式的力对流体进行控制和最后的mesh优化处理。是非常不错的教程。教程版本使用houdini15,小编也用houdini16全部做了一遍,基本上大部分功能是相同的,提供houdini16源文件下载,方便大家快速学习和更新。

houdini16工程文件

学习统计

教程观看 2倍速度

观看时间 2小时

笔记整理 2小时

练习实践:3小时

001工具架流体创建VS手动节点创建

002粘稠流体控制

003流体混合效果

004流体膨胀制作

006三种不同方式的力控制流体运动

学习笔记

课程目录

00课程介绍

1从工具架方式创建流体

2手动创建流体模拟

3flip solver全讲解

4融化效果

5密度控制创建流体颜色混合效果

6divergence讲解

7添加力控制

8避免mesh相互穿插

01基本流程

1选择流体发射模型,点击partitlce fluid标签中的emit particle objects 从物体发射流体,enter确认自动创建整套流体系统

2物体与流体碰撞,有两种方法,一种是使用刚体系统,一种是使用教程中的转化为volume系统,速度较快。选择碰撞物体,然后点击populate container工具架下的collide with objects可以创建碰撞。

场景中会自动添加三个节点

autodopnetwork 动力学解算节点,流体动力学在里面解算

paritlce fluid 把解算结果提取出来mesh后作为渲染多边形

paritlce_fluidinterior 这个和上面模型一致,不过用来模拟浑浊流体内部液体

在mat材质模块会自动创建

basic liquid 节点和uniformvolume节点分别用来渲染外部流体和内部浑浊效果材质模拟

02内部原理

1在sop中

通过fuildsource节点分别把小球转化为流体发射源和把box转化为碰转源

在container settings中可以快速进行预制切换

发射源包含内容→模型转化为surface场→基于surface撒点→继承原有模型速度或者自动紊乱生成速度场vel:

所以发射源最终会输出三个东西  surface场,vel速度场和基于surface生成的粒子;在动力学到中要采样点 vel速度场和surface采样。

如果如果你想自定义速度,可以给模型添加自定义控制点速度v,fluidsource会把v转化为vel场。

collision碰撞同理:获得collision场并且从模型速度v中转化为collisionvel速度场,不需要转化为力粒子;动力学中采样的就是collision和collisionvel这两个场。

2在dop中通过source volume节点进行数据采样

动力学中地四个接口为采样输入源,第三个接口为volume velocity输入源。

3解算出的粒子又导入sop中进行mesh处理

DOP I/O 节点把动力学中解算的粒子加载到sop中

核心节点是 particlefluidesuface节点,把粒子转化为mesh,同时继承渲染属性v vorticity rest rest2

整体流程总结

sop中基本几何体→fluidsource转化为场→dops中source volume加载场→flipsolver解算→DOP I/O导入场→particlefluidsurface节点转化为mesh渲染。

2手动创建流体模拟

只要注意控制属性关联 sop发射器和dop中flipobject和particlefluidsurface中的 particle seperation保持属性关联就行。

在转化为mesh的过程中没有直接使用particle fluidsurface节点,而是专户为vdb→vdb优化→convertvdb转化为polygon soup

vdb优化技巧

vdb reshape 节点可以对vdb进行放大或者缩小

vdb smooth sdf可以设置平滑的计算方式和强度(比vdb smooth节点更强大)

使用attribute transfer节点进行最后的属性传递,把粒子属性v传递到mesh后模型,file cache进行缓存输出。

注意 新版本vbd里面多另一个vdb from particlefluid节点,可以转化成不错的vdb 流体表面;如果使用vdb from particle注意要调整mimum radius最小半径值为0。voxel size和particle seperation流体精度关联。

3flip solver全讲解

(略)请参考第008期的流体讲解课程

4融化效果

添加粘稠流体的效果的方法有两种

一种是直接在flipobject和flipsolver中设置物理属性,这个只能整体控制所有流体粒子的粘稠度;

一种是添加viscosity属性,用属性来控制,这个可以控制每个粒子不同的viscosity属性来达到不同的效果;可以在sop中进行静态设置,也可以在dop中使用sop solver进行动态改变;

方法一 整体设置粘稠度

在flipobject的physical标签中设置粘稠度物理属性值;

在flipsolver中激活enable viscosity 就可以整体设置流体的粘稠度;

方法二 使用viscosity属性

在flipsolver中需要激活 viscosity by attribute,使用属性来控制 viscosity,当然输入名字里面不一定是viscosity这个名字,但是为了方便还是用回这个属性名字;

在sop中创建viscosity属性,设置值为10000,解算同样可以达到上面效果;

注意:这时候粘稠度完全由 属性viscosity控制,这时候flipobject中的viscosity物理设置已经没有任何效果,不要把这两个搞混。

视频教程中的方法是先在sop中设置一个非常大viscosity值,比如100000,让流体基本不动,然后添加sop solver进行每帧减小一个值,并且这个是由模型高度适配的,达到下面先融化,上面接着融化的效果。

5密度控制创建流体颜色混合效果

制作原理

设置上下两部分粒子密度上大下小,并且设置不停颜色→流体设置,激活使用density by attribute→粒子会上下混合→sopsovler中进行attributeTranfer进行颜色和density密度的混合;

在sop中基于y轴判定设置 vop节点 不同的颜色的和密度。

在flip solver中激活 density标签下的density by attribute,并且添加sop solver中进行attribute设置

6divergence讲解

divergence控制的是流体粒子的扩展和收缩,以-1-1属性控制,使用这个属性注意关闭前面的reseeding值,否则粒子膨胀之后会自动添加很多新粒子。

这个用法和density很像,只是注意数值-1为收缩,1为扩展;

注意,要使得这个有效果,必须开启flipobject中的add divergence属性,因为这个是divergence field场。

7添加力控制

给流体添加力三种选择

选择一普通的动力学力,比如gravity,添加在解算器后面;

选择二 添加volume 力,比如gas wind和gas turbulence,可以连接到fluidsolver的第三个接口

这里注意volume力是影响场的,流体没有density场的话可以替换为surface场控制

选择三 pop force 粒子力,可以连接到第二个接口中。

8避免mesh相互穿插

把玻璃杯转化为vdb类型。

在vbd from polygon后进行 vdbcombine进行boole运算,把与玻璃杯穿插的模型删除

获得教程的方法:

(0)

相关推荐