zeno用户手册
如何安装ZENO
Windows安装ZENO
界面操作
界面布局
面板操作
视图操作
节点面板
时间轴
设置根路径盘符变量
设置数据缓存路径
常用快捷键
视图交互
模型操作
创建基础模型
读取模型
FBX
OBJ
ABC
变换模型
为模型位置K帧
添加颜色
模型转换
模型合并与分离
模型切割
复制模型
将模型体素化
属性操作
属性基本概念
创建属性的方法
属性数据类型
属性过滤
查看属性
创建随机属性
制作动画噪波
映射属性范围
循环操作
理解ZENO中的循环
循环判断
循环累加
打断循环
程序化变形动画
程序旋转楼梯制作
程序化多米诺生成
Instance
Instance基本流程
控制动画时间偏移
Instance制作草地
材质渲染
基本渲染流程
材质贴图赋予
摄像机
默认摄像机
导入maya摄像机
在view视角创建摄像机
摄像机动画
灯光
面光源
材质参数参考
封装SUBNET
基本封装流程
封装旋转楼梯
流体解算
流体基本解算流程
2.0制作水拍柠檬效果
流体持续发射
设置流体解算区域
动态碰撞体
刚体解算
布料解算
有限元布料解算
有限元布料基本解算流程
跳舞的女孩
MPM布料解算
MPM布料基本解算流程
固定部分布料,自定义布料受力
模拟泥土,金属以及沙子
为布料设置动态碰撞体
zplay渲染出图
-
+
首页
MPM布料基本解算流程
   上图所示,在ZENO中,MPM布料制作流程分为准备基本变量、创建待解算物体、创建碰撞体、更新粒子数据、配置解算器、显示最终结果六个部分。 案例源文件: [【附件】案例.zip](/media/attachment/2022/07/%E6%A1%88%E4%BE%8B_tpCudBH.zip) ## 准备基本变量  ==Portalin==节点可以将输入的数据重命名并定义为全局变量。 ==Portalout==节点可以依照变量名读取变量。 #### 细节讲解 1.定义1个float型变量,变量名为dx,默认值为0.1,作为某些节点的微分数据。 2.用==GetFrameTime==获取总帧数,并除以一个值得到新值。(也可以直接指定值)将其定义为全局变量,变量名为stepdt,作为mpm解算的步长。 3.定义一个int型变量,变量名为stepcnt,默认值为12,作为每帧的解算次数。 4.使用==Portalout==节点读取dx的值,并连接到==MakeZSGrid==节点的`dx`输入端。 将生成的ZSGrid数据定义为grid全局变量。该变量可作为一些计算节点的输入。 5.使用==MakeZSPartition==节点,将生成的ZSPartition数据定义为parition全局变量。该变量可作为一些计算节点的输入。 ## 创建待解算物体  #### 细节讲解 1.创建待解算的布料物体并设置好Transform。 结果如下  2.用==ConfigConstitutiveModel==节点配置本构模型,并将`ZSModel`数据和==TransformPrimitive==节点的`OutPrim`数据一起输入到==ToZSCloth==节点中,将其转化为ZSCloth物体。 3.将ZSCloth数据定义为plane_cloth全局变量。 该变量用于mpm解算的输入。 ## 创建碰撞体  #### 细节讲解 1.创建碰撞体并设置好Transform。 结果如下  2.用==PrimitiveToSDF==节点将其转化为sdf物体,`DX`端口输入的参数为全局变量dx。 3.用==ToZSLevelSet==节点将sdf物体转化为LevelSet。再用==ToZSBoundary==节点将ZSLevelSet转化为ZSBoundary。 4.将ZSBoundary定义为cube_boundary全局变量。 该变量用于mpm解算的输入。 ## 更新粒子数据  #### 细节讲解 1.读取plane_cloth数据,并将其连接到==MakeList==节点中。 若有多个布料物体,需要都连接到此节点作统一运算。如下图  2.读取grid全局变量,并与list一起输入到==ComputeParticleVolume==节点中以计算粒子数据。 3.将计算好的数据定义为particles全局变量,该变量用于mpm解算的输入。 ## 配置解算器  #### 细节讲解 1.读取各种全局变量,分别连入==mpmstep==节点相应的端口中。 `zspars`为待解算物体。  > `partition`为空间哈希数据。  > `grid`为网格数据。  > `stepdt`为子步长,即每次解算的时间跨度。  > `boundry`为碰撞体。  > `customModel`为布料受力,需要返回zsgrid的数据。(本章节使用空函数,布料不受任何力)。  2.为了提高解算精度,需要给节点加上for循环,循环次数越多,解算精度越高。本案例使用stepcnt全局变量为解算次数。 ## 显示最终结果  #### 细节讲解 1.将==EndFor==节点的`DST`端口连接到==PortalOut==节点的`SRC`端口。 读取particles全局变量,并将其输入到==UpdatePrimitiveFromZSParticles==端口,进行primitive更新。 2.将==UpdatePrimitiveFromZSParticles==的`DST`端口连接到==ZSParticlesToPrimitiveObject==节点的`SRC`端口。 读取plane_cloth变量,并将其输入到==ZSParticlesToPrimitiveObject==节点的`ZSParitcles`端口。 3.可以使用==ParticlesWrangle==节点将prim变为其他颜色以方便观察。 4.若要显示多个物体的解算结果,重复第2步即可。如下图  ## 注意事项 全局变量名可以与上文不一致,但读取的变量名要与定义的一致。
chenzeqin
2022年8月8日 15:43
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
关于 MrDoc
文档MrDoc
是
州的先生
开发并开源的在线文档系统,其适合作为个人和小型团队的云笔记、文档和知识库管理工具。
如果文档给你或你的团队带来了帮助,欢迎对作者进行一些打赏捐助,这将有力支持作者持续投入精力更新和维护文档,感谢你的捐助!
>>>捐助鸣谢列表
微信
支付宝
QQ
PayPal
None
None
None
None
None
Markdown文件
分享
链接
类型
密码
更新密码