▉ 生活就是如此,每段人生都有压力测试。— 每天翻译一篇教程,这就是我写给houdini的情书。【首发于同名公众号:“致houdini的情书”】
█ “压压惊 ”
前言不搭后语
在这个公司呆了13年,感觉像一觉醒来。外面的世界全变了。技术完全被小一轮的年轻人碾压了。
本节内容
使用houdini17新增的vellum软体动力学的解算器测试一个压缩软体的过程
本节要实现效果
.....
今天是42岁
第046天周一
72
这是写给Houdini的第072封“情书”
我是geo流程图
首先
制作步骤
○
小节提要
houdini17带来了很多很酷的新东西,其中最令人兴奋的一个特点是vellum(一种新的对各种软体动力学的解算器),这意味着对于线,衣服,软体,像气球等软体之类的,速度解算的可以非常快,而且相对稳定。
本节将学习:
01)建立vellum约束模拟
a 基本的vellum约束流程
b 几种软体的模拟
c 几种组合预设
02) 碰撞动画
a碰撞接口合并一个压缩动画
b极端压缩的穿透问题
c平滑纠错细分模拟结果
接下来
理论部分
○ vellum ○
1)这种叫PBD的技术 :Position Based Dynamics(基于位置的动力学约束迭代):这是种非常快速的方法,解决实时动态系统的方法。
1)例如,这里有一串由“线性弹簧约束”所连接的点组成虚拟的线。这些点可能只会将“约束”扩展到给定的数量。
2)这些点本质上是球体,它们都有一个碰撞半径,
3)这些小球之间的约束。
4)所有PBD所做的就是对近似一个给定的几何体(它有点和一组约束组成)进行线性约束,这些点之间的约束会进行延申,
接下来把这些点往下拉。
1)它并不是像想象中线的形状,不需要了解整个系统的弹簧和点的构成,PBD会有效的对球面与球面,点于点执行约束。
2)假设从第一个点开始,试着把临近点放松到两个约束条件都满足的位置。此时点之间“距离最小化”
3)对另一边的点做同样的事情
4)直到依次对所有临近的点执行约束
但是现在仍然不是期望的线性约束效果
然后又继续运行一遍约束;
PBD试着一点点的放松约束和碰撞,通过约束的点和约束,只要有足够的迭代次数,就会得到一个合力的结果。
所以这就是“约束迭代值”是PBD系统重要的子步骤的原因。在houdini17之前,使用grain这些也是可行的。
那是什么使它们很特别呢!主要是因为更简单的工作流程,还有更稳定的解决方案,
PBD一些额外的约束类型
1)Distance(距离)/Length(长度)/Stretch(弹性)约束
作用:在两个约束条件下的点保持一定的距离。这些约束具有“硬度”和“适应性”可以把它们看作线性弹簧。
2)Rotational(旋转)/Bend(弯曲)约束
作用:在primitive之间保持一定角度。或约束一定的角度;比如一根线它只能弯曲这么大。可以想象在两个prim之间一个旋转的弹簧。
3)Volume(体积)约束
作用:它试图保持几何体的体积。只在有几何体的时候才会起作用,
其它)还有其他的约束是这三至基本类型的结合。
接下来
正式制作
使用软件:houdini17.5
01建立vellum约束模拟
1基本的vellum约束流程
○ 节点 ○
○ 具体操作 ○
1)从自带模型“pighead猪头”开始,Difficulty:选择类型Easy,模型简单些。
❖ 2)使用vellum解算器:它有三个接口
①接口1:模拟的几何体;
②接口2:约束的几何体;
③接口3:碰撞的几何体;
小问题)约束如何设定几何体的行为
解决方案)
3)加一个vollumconstraints节点:
①连接对应<2>的三个接口。
②“接口1”连“pig”
4)grid作为地面。连接碰撞接口
节点<3>的“接口3”
③Constraint Type:选择约束类型
线框内的三个基本约束类型,其它类型都是由基础类型混合而成;
=其它类型=
1)hair:“bend弯曲”+“twist扭曲”。
2)string:“length长度”+“bend弯曲”没有弯曲。
3)cloth: 没有长度约束。
4)Tetrahedral volume:视图保持四面体的体积,所以在四面体网格中进行反馈,很容易用来模拟一种柔软的身体。
5)pressure:保持内部网格压力。 跟四面体不同,类似填充气球或充满可压缩的流体,液体,气体等的填充物。
=还有些辅助约束物=
6)Pin to Target:
7)Attach to Geometry;将模拟物附着到另一个几何体或目标点上;
8)stitch Point:比如想要把布料缝到另一些布料上制作衣服;
2 几种软体的模拟
○ 节点 ○
○ 具体操作 ○
5)放一个null节点:观察这里产生的“受限几何体”
模拟)
模拟类型1)struts
6a)另加一个约束条件:
①约束类型:struts;
②再次null进行观察;
(内部增加很多支撑线产生反向作用,能更好保留形态)
模拟)
外面局部的地方柔软抖动,但不会完全塌陷.
模拟类型2)pressure
③约束类型:压力pressure;
(外面有些连线,内部线比struts少)
结合有限的约束条件
3 几种组合预设
○ 节点 ○
这些预设可以让艺术家很快的建立一些简单的模拟
A)vellum configure ballon
B)vellum configure strut softbody
02 碰撞动画
1 碰撞接口合并一个压缩动画
○ 节点 ○
07)transform
①增加一个48~72帧从上到下的动画。
②缩小面积。
08)merge:合并grid和transform,连<03>“碰撞接口”
2 极端压缩的穿透问题
小问题1)进一步挤压空间会产生穿透凸起等问题。
原因)
默认<vellumsolver>的substeps=1
就是一帧内只有一个子步幅,对于模拟精度太低,
解决方案)
substeps=2(这样每帧内所有模拟迭代走两遍)
小问题2)仍有穿透
解决方案)
1)给“猪头”增加“细分”节点
---仍然有穿透---
2)提高substep=4;降低迭代=40
---大概差不多---
补充)
模拟柔体,布料,是要设置厚度,质量
也就是cloth类型下勾选厚度
所以记住要设置厚度;
3 平滑纠错细分模拟结果
○ 节点 ○
10)vellumpostprocess1
a)平滑;b)碰撞纠正;c)模拟后的细分更安全;
今天就到这里,收功
教程翻译自entagma的网络教程
下一节::20180924 Crochet - Blending between Delaunay and Voronoi
电子邮箱:oneinchtime@126.com
公众号:
微信号