布料系统的参数
Downloadable fabrics是Houdini官方出的,关于Vellum不同材质布料的模拟效果。
其中包括:
- Jersey:运动衫
- RainCoat:雨衣
- tulle with embroidery:绣花薄纱
- Jeans:牛仔裤
- Velvet:天鹅绒
- Silk:丝绸
- Wool:羊毛
- Leather:皮革
我很感兴趣各种布料材质是如何达到的,然而其工程文件中各个布料材质里的Vellum Constraints节点的参数很多(我对其做了翻译),难以比较。因此我用Python输出了各个节点相对于默认布料节点的参数差异,然后又经过一些调整之后内容如下:
- | 默认 | 运动衫 | 雨衣 | 绣花薄纱 | 牛仔裤 | 天鹅绒 | 丝绸 | 羊毛 | 皮革 |
---|---|---|---|---|---|---|---|---|---|
-----Geometry----- | |||||||||
Density(密度) | 0.1 | 0.04 | 0.25 | 0.04 | 0.4 | 0.02 | 0.04 | 0.04 | 0.4 |
Thickness(厚度) | Calculate Uniform | Calculate Varying | Calculate Varying | Calculate Varying | - | Calculate Varying | Calculate Varying | Calculate Varying | - |
Edge Length Scale(边长缩放) | 0.25 | - | - | - | - | - | 0.2 | - | - |
-----Drag(拖拽)----- | |||||||||
Normal Drag(法向拖拽) | 10.0 | 40.0 | - | 80.0 | - | 40.0 | 80.0 | 80.0 | - |
Tangent Drag(切向拖拽) | 0.1 | 0.4 | 1.0 | 0.4 | 5.0 | 40.0 | 0.8 | 0.4 | 2.0 |
-----Stretch(拉伸)----- | |||||||||
Stiffness(刚度) | 1.e+10 | - | - | - | 1.e+18 | - | - | - | 1.e+18 |
Damping Ratio(阻尼比) | 0.001 | - | - | - | 0.0001 | - | - | - | 0.0001 |
-----Bend(弯曲)----- | |||||||||
Stiffness(刚度) | 1.e-7 | 1.5e-6 | 1.0 | 1.0 | 1.e+4 | 2.e-4 | 1.e-4 | - | 2.e+3 |
刚度缩放模式 | No Scaling | - | - | Scale by Attribute | - | - | - | - | - |
Damping Ratio(阻尼比) | 0.01 | - | 0.0075 | - | - | - | 0.1 | - | - |
Rest Angle Scale(静止时角度缩放) | 1.0 | - | 2.0 | 2.0 | - | - | - | - | - |
启用“刚度衰减” | 0 | - | 1 | - | - | - | - | - | - |
Stiffness Dropoff(刚度衰减) | 0.0 | 85.0 | 48.0 | 85.0 | 55.0 | 85.0 | 70.0 | 85.0 | 55.0 |
刚度衰减方向 | Increasing | Decreasing | Decreasing | Decreasing | - | Decreasing | Decreasing | Decreasing | - |
启用“刚度衰减最小值” | 0 | - | 1 | - | 1 | - | - | - | - |
Min Stiffness(刚度衰减最小值) | 0.0 | - | 5e-06 | - | 0.0001 | - | - | - | - |
-----Bend.Plasticity----- | |||||||||
Enable Plasticity(启用可塑性) | 0 | 1 | 1 | - | 1 | 1 | - | 1 | 1 |
Threshold(阙值) | 10.0 | 0.1 | 15.0 | - | 35.0 | 1.0 | - | 0.005 | 3.0 |
Rate(速率) | 1.0 | 0.25 | 0.3 | - | 5.0 | 2.0 | - | - | 6.0 |
Hardening(硬化) | 1.0 | 0.3 | - | - | 5.0 | 2.0 | - | - | 0.5 |
我选择了一些参数实验其在不同值下的效果。
1. Bend-Stiffness(弯曲的刚度)
Bend(弯曲)是指保持面之间角度的约束。越低则越容易变形,比如丝绸;越高则越不容易变形,比如雨衣。
我的实验场景是:让一个布料片随着重力落在一个球上(球的面数较低因而能看到棱角)。结果如下:
Stiffness = 1.e-10
Stiffness = 1.e-4
Stiffness = 1.e+10
2. Stretch-Stiffness(拉伸的刚度)
Stretch(拉伸)指的是保持边的距离的约束。越低则越容易拉伸。
我的实验场景是,让一个球(也是一个Vellum布料)落在不同拉伸刚度的布面上,而布面的四边被固定。
Stiffness = 1.e+2
Stiffness = 1.e+10
3. Density(密度)
决定了重量。
还是上一个实验场景。不同的是这次将改变球的密度。
球的密度 = 10
球的密度 = 100
球的密度 = 1000
4. Bend-Plasticity(弯曲的可塑性)
Plasticity(可塑性)指的是到达一个新的稳定状态,比如衣服折叠后会出现折痕。
为了实验这个现象,我构建了一个“装置”来对布料进行折叠。
如下,布料将放在这个装置上:
在不启用可塑性的情况下,可以看到布料会最终恢复原状:
在启用可塑性的情况下,可以看到布料产生了一些折痕:
可塑性还有一些参数可以调整,如 Hardening(硬化)。
上图的 Hardening = 1
下图的 Hardening = 3
5. Drag(拖拽)
Drag(拖拽)是对“法向”与“切向”上的力的缩放系数。
例如,在相同风力(0,0,5
)的情况下:
法向拖拽 = 20
; 切向拖拽 = 0.1
法向拖拽 = 1
; 切向拖拽 = 0.01