Blender 5.2 LTS 在7月14日正式发布,最受关注的更新是几何节点内全新的布料与毛发物理系统。这套系统以 XPBD 求解器为核心,把布料模拟从传统修改器搬进了节点编辑器,用户可以像搭积木一样自由组合重力、碰撞与自定义力,甚至实现布料撕裂。
对角色动画、游戏资产和动态特效创作者来说,新系统的价值在于非破坏性:布料效果以节点组形式存在,随时可以调整参数、叠加力场,而不必回到传统物理面板反复试错。本文从快速上手到自定义力场,带你完整掌握 Cloth Dynamics 的实战用法。
一、Cloth Dynamics 与 XPBD 求解器的基本原理
XPBD 是扩展位置动力学(Extended Position Based Dynamics)的缩写,Houdini 的 Vellum 和 Unreal 的布料工具都在使用同类算法。它的特点是稳定、可控、适合实时预览,通过多次约束迭代来模拟布料的拉伸与弯曲行为。
Blender 5.2 的 Cloth Dynamics 本质是一个内置节点组资产,底层调用新的 XPBD Solver 节点。用户不需要理解求解细节,直接给网格添加布料修改器就能获得类似传统布料的模拟效果,同时支持钉扎、撕裂、拉伸和弯曲控制。
与旧布料系统相比,新系统最大的优势是节点化。布料行为、碰撞体、自定义力都以节点形式接入,修改一个参数就能实时看到变化,还可以把整套设置保存为节点组资产跨文件复用。
二、快速上手:给任意网格添加布料效果
第一步,选中要模拟的网格,在修改器列表添加 Cloth Dynamics 修改器,此时布料节点组会自动挂载,默认带有重力与碰撞效果。第二步,按空格键播放动画,网格会像布料一样自然下落。
若想控制布料的悬挂位置,进入编辑模式选中部分顶点,通过顶点组指定钉扎区域,再在节点组的钉扎输入中选择该顶点组,布料就会像被钉子固定一样悬挂下来,适合制作旗帜、窗帘等效果。
拉伸与弯曲参数直接影响布料手感。拉伸值控制面内拉扯,数值越大布料越硬越不易变形;弯曲值控制折叠难度,数值大则布料挺括,数值小则柔软垂坠。调整时建议从小数值起步,逐步加码观察变化。
撕裂效果同样内置。开启撕裂开关后,给顶点组或材质指定撕裂区域,当布料受力超过阈值时网格会自动裂开,适合制作撕破布料、拉断织物等特效镜头。
三、Effector 力场系统:碰撞体与自定义力
Effector 是任何影响模拟的物体或数据,内置三种类型:Collider 碰撞体、Custom Force 自定义力、Custom Effector 自定义效应器。碰撞体最简单,把任意封闭网格添加 Collider 修改器,布料落下就会被接住。
自定义力允许为每个点计算独立的力向量。例如制作风场时,可以用几何节点根据点的位置、时间或噪声生成方向随机的力,让布料产生翻滚飘动效果,这是传统布料系统难以实现的玩法。
力场集合是批量管理的好帮手。把多个碰撞体放进一个集合,在节点组里指定为 Effector Collection,模拟时所有物体同时参与碰撞;在纯节点工作流中,还可以用 Combine Bundle 合并任意数量的力场传入模拟。
四、进阶:标签过滤与多布料交互
标签系统用于精确控制力场的作用对象。每个模拟几何体可以携带一个或多个标签,力场可以指定只影响带特定标签的几何体,从而实现「这块布料受风力、那块布料不受影响」的分区控制。
多布料交互场景中,可以先让主布料解算,再把结果作为碰撞体影响第二层布料,例如衣服与裙摆的分层模拟。顺序与标签配合好,能模拟出真实的层级接触效果。
空物体现在也支持几何节点修改器,这一特性非常适合做力场载体。把自定义力逻辑挂在空物体上,随意移动空物体即可控制力场的空间位置,布料会跟随力的变化实时响应。
五、性能优化与常见问题
布料解算对网格密度敏感,面数过高的布料会明显卡顿。建议先用细分修改器控制密度,解算时使用较低的细分等级,确认效果后再提高最终渲染的细分等级。
| 问题 | 原因 | 解决方案 |
|---|---|---|
| 布料穿模 | 碰撞体厚度不足 | 增加碰撞体厚度或降低解算速度 |
| 布料过度抖动 | 迭代次数不足 | 提高求解迭代次数 |
| 撕裂无效果 | 未指定撕裂区域 | 确认顶点组或材质选择正确 |
| 结果不稳定 | 时间步长过大 | 减小时间步长后重试 |
模拟烘焙可以稳定结果。解算满意后,在缓存面板烘焙布料动画,之后每帧结果固定不变,不会因视口刷新出现跳动,渲染与预览也能完全一致。
需要注意的是,新物理系统目前仍标记为实验性,高级功能如布料自碰撞、现成的风场与湍流尚未提供,需要这类效果的场景可以暂时沿用传统布料系统,或通过自定义力自行实现。
问:Cloth Dynamics 与旧布料系统可以混用吗?
可以。两者不冲突,项目里可以按需选择,但同一个网格不要同时挂两种布料效果,避免求解冲突。
问:为什么布料会穿透地面?
碰撞体必须是封闭网格,并确认在节点组中正确指定了碰撞体,同时留意解算速度过快导致的穿透,适当降低速度或加大碰撞厚度。
问:布料节点组可以保存复用吗?
可以。把设置好的节点组拖入资产库即可跨文件引用,团队协作时也能保证布料效果一致。
来源:Blender官方发布公告、Blender开发博客、CGChannel
