流程
1、建立一个发射流体的物体;
2、创建flipsource节点;
3、创建dopnetwork;
4、创建flipobject (文件)、flipsolver(结算期)、gravity force(重力);
5、创建volumesource节点,将创建发射源导入;
(flipobject 与 flipsource相同的属性可以进行关联,flipobject中,可以创建一个voxel size节点与flipsource中的对应,voxelsize节点的数值为particle separation * grid scale,可以方便调整与观察;)
节点
1、flipsource 生成一个surface,创建出粒子(删除surface可以查看),
particle separation 控制粒子的数量;数值越低,数量越多;
voxel seize 体速,与particle separation关联起来使用;
vilocity 速率 开启,给某个轴向添加一定的速度(这里添加的是粒子的速度)
2、flipobject
particle separation 保持粒子的间距;
closed boudaries 开启/关闭边界;
guides_particle_visualization(particle) 可视化,切换成粒子;
3、flipsolver 流体结算器
volume motion_velocity transfer(调整这里,选择第二个可以让解算的流体平缓一些,或者选择第一个的情况下,调整下面的Velocity Smoothing的数值,类似于粘稠的作用,但是并不相同,只是增加平滑设置)
substeps 步幅 调整max substeps(最大步幅),可以保持一定量的体积感;
volume motion_volume limits 调整边界框的尺寸大小;
particle motion_searation_apply particle separation 开启,可以防止粒子大量的堆积;
volume motion_collisions_stick on collision_Max cell 开启,模仿表面张力,一碰撞就会有减速的作用
4、gravity force 重力
5、volumesource 体积来源,流体的来源;
sop path 导入发射源;
particle 勾选sourceparctile
6、object_merge 获取路径文件
transform_into this object 获取文件信息
7、boolean 布尔操作(这里用来对发射器进行布尔操作所,用布尔来得到所需要发射器的形状)
对于动态表达的物体最好不用布尔结算,容易出错;
8、VDBfrompolygons 对模型进行转换,这里是转换成surface
9、VDBcombine 对VDB的转换进行布尔操作(combine 结合)
operation 运算(这里是求两个物体的差集,所以选择SDF Difference)
10、staticobject 静态对象
sop path 这里的路径是利用collisionsource节点输出的polygon模型的路径;(下面)
display geometry 显示模型,不够选直接显示体积块;
colilisions_RBDsolver_volume 这里会默认创建一个体积;
colilisions_RBDsolver_volume_mode(volumes sample) 选择volumes sample,可以直接导入collisionsource节点中输出的volume,在proxy volume输入口输入路径;(创建好体积,此时降低particle separation(粒子的间距),体积的精细度也会随着提高);
11、merge 利用merge节点让两个物体相互影响;
Affector relationship_Mutual (相互影响)
12、collisionsource 这个节点是由上一个几点输出两个节点,用null节点进行输出,输出的分别是模型(polygon)和体积(vallue)
volume_voxel size 参考的数值要与之前设置的一致,直接复制之前的到这个数值
volume_Fill interior 勾选,直接填充内部,防止碰撞是液体进入到内部;
13、sop import field 导出网络
dop network 选择需要导出的特效网络
defauit object 选择通配符(这里用的flip,不知道为啥用这个)
presets 选择预设(选择flip fluid),会自动设置三个数据,Geometry(粒子点,用来生成最终的mesh) ,surface (辅助进行数据压缩), vel(做模糊渲染)
14、fluidcompress 数据优化
particles separation 这里的数值继续参考之前的进行复制;
cull bandwidth 这里的数值表示距离整体surface场多少体速内,并且删除体速内的点;这里的surface对应的是sop import field创建出来的surface;
15、file cache 文件缓存(粒子缓存和mesh之后也要缓存)
load from disk 缓存完以后直接从硬盘加载
save to disk 保存到硬盘
16、particle fluid surface 将上面的box样式转化成particle,同时利用这个节点设置,将李粒子转换成mesh
(这个节点先生成粒子,在复制一个节点生成mesh,方便参考;)
particles separation 这里的数值继续参考之前的进行关联;(这里的参数比较重要,基于粒子的大小生成mesh)
conver to_surface polygon soup 这里要进行转换一下;
region_use bounding box 勾选,使用表面网格,(这里网格的大小可以直接复制模拟网格的尺寸;)
region_subtract collision volumes 勾选,减去碰撞的体积;(生成mesh后,还是会有一部分模型会穿插,用object_merge再导入模型,并选选择模型的路径,导入模型的信息(transform_into this object))
closed boundaries 封闭边界(生成的mesh仅仅只是一个平面)
convert to_particle (转化成粒子)
visualize_velozity 可视化 转化成速率,下方会出现基于粒子速度可视化的ramp;
★关于particle fulid surface节点中filtering
勾选对应的选项:(对表面做一个清理,并不会破坏原有的形态,相当于对生成的mesh进行优化操作,同时也会丢失一些细节部分;)
dilate 膨胀扩张
smooth 平滑
erode 腐蚀(咬合掉一部分,缩回原来的样子)
本文介绍了在Houdini中创建流体效果的基本流程,包括建立发射物体、配置流体节点如flipsource、dopnetwork、flipsolver等,并详细讲解了各节点的参数设置,如velocity、particle separation、volume motion等,以实现流体的动态表现和碰撞效果。通过VDBfrompolygons、VDBcombine等节点完成流体与静态对象的交互,并利用file cache进行数据缓存。
&spm=1001.2101.3001.5002&articleId=104850181&d=1&t=3&u=c6fc5a0a622f45d59294d3dfc02731b7)
3896

被折叠的 条评论
为什么被折叠?



