目录
- 解算器对DOP外节点的约束属性,只会读取起始帧的值;
- 设置约束时,注意组名冲突引起的约束失效;
hard pin、weld
- 几何体点属性,解算器直接更新点位置;
- 通过设置点属性(mass/stopped,weld),创建或移除;
- weld(视为一个点不碰撞)可设置断开,rewire vertices节点;
soft pin、stitch
- 约束面,解算约束来更新点位置;
- 通过创建或移除约束(pin、glue、stitch),手动创建或移除;
- 可断开和塑形;
Mass、Thickness
Mass 重量
- 质量越大重力越大,拉伸的越长;模型精度或布线越多,拉伸越长;
- calculate uniform/calculate varying总重量都不会变,模型精度或布线也不影响总重量;calculate uniform对精度或布线不均的会产生问题;
- 较低的layer(关联解算器的Layer Shock),在碰撞时会重很多倍;碰撞有穿插到碰撞体时,可调节解算器的Post Collision Passes,也可调节点属性layer;
thickness 厚度(pscale)
- calculate uniform可保持均匀统一的厚度;当edge length scale为1时刚好为边长;
- 厚度太小可能会造成穿插,可调节解算器的Post Collision Passes;
- 厚度太大时解算第一帧会自动调整厚度,因为自碰撞参数等,而且在解算的过程中pscale还会自动调整;
Geometry/Trianglation 约束三角化
- Alternating会产生光滑的变形;
- Regular会产生锯齿装边缘(因为只有一个方向的结构);
- None可能由于缺乏三角结构,可能不能保持原始形状;
Stretch
- 保持点间的初始距离;
Stiffness
- 越高的stiffness,就需要越多的迭代来收敛,如constraint iterations或substeps(子步会更好);
- 模型分辨率越高(如点数越多),越容易拉伸,保持相同的曲率就需要更高的刚度或迭代;
Damping Ratio
- 刚性常常会产生不可接收的抖动或震动,阻尼通过释放能量来降低抖动或震动;
- 过大的阻尼可能会导致约束无法满足,值应小于1;
Rest Length Scale
- 点间的原始距离,此参数可增加或减小距离;
- 如设置为0,将尝试把点折叠在一起;
Compression Stiffness
- 距离小于初始距离(即被压缩)时,其刚性(恢复初始距离的强度);
- 如不勾选此选项,将使用Stiffness参数;
- 此刚性越小,褶皱就会越多;
stiffness Dropoff
- 偏离起始距离的距离,超过此偏离,如Decreasing则会从完全刚性降低为0,如Increasing则从0增加到完全刚性;
- Decreasing对于创建glue约束非常有用,当拉伸时降低约束;可配合Break Threshold使用;
Anisotropy(Warp/weft)
- 根据方向调整刚性,可允许布料的一个轴比另一个轴拉伸些;
- 本质上是在不同方向上调整stiffness属性;
Plasticity
- 既可以是绝对距离,也可是比率,在阈值Threshold内会恢复原状,超过阈值则会变为新配置(new rest length);
Bend
- 保持每对三角形间的初始角度;
Stiffness
- 越高的stiffness,就需要越多的迭代来收敛,如constraint iterations或substeps(子步会更好);
- 模型分辨率越高(如点数越多),越容易弯曲,保持相同的曲率就需要更高的刚度或迭代;
Damping Ratio
- 刚性常常会产生不可接收的抖动或震动,阻尼通过释放能量来降低抖动或震动;
- 过大的阻尼可能会导致约束无法满足,值应小于1;
Rest Angle Scale
- 三角面间的原始弯曲角度,此参数可增加或减小夹角;
- 如设置为0,则夹角为0会展平;
stiffness Dropoff
- 偏离起始弯曲的度数,超过此偏离,如Decreasing则会从完全刚性降低为0,如Increasing则从0增加到完全刚性;
- 对于布料,可添加少量的Increasing,以添加额外的褶皱,可不改变整体的弯曲和外观;
- 对于弹性的glue约束,添加Decreasing非常有用,可在断开前减弱约束而不会回弹;
Max Branch Angle
- hair、string约束独有的参数;大于此角度的分支,没有弯曲约束;
- 对于单个prim的hair约束,此参数不起作用,且与多prim不同;
- 对于单个prim的string约束,此参数起作用,且与多prim相同;
注:substeps=1,constraint iterations=500
Plasticity
- 绝对角度的测量(由于起始角度可能为0,比率ratio不适用),在阈值Threshold内会恢复原状,超过阈值则会变为新配置(new rest angle);
Pin
Pin Type
- Permanent,将设置mass为0,硬约束,以后无法在释放此约束;
- Stopped,创建stopped属性并设置对应值为1,硬约束,以后设置0可释放;
- Soft,长度为0的距离约束 pin(distance);
Match Animation
- 创建pintoanimation(位置)、gluetoanimation(位置和方向)属性并设置对应值为1;
Drag
- 此Drag值是解算器内Drag(如wind drag)的倍增值,对挥舞的旗子非常重要;
- 应用于popsolver内,影响最终速度;
Normal Drag
- 创建dragnormal属性,并设置其值,应用于表面法线方向或垂直于曲线方向;
Tangent Drag
- 创建dragtangent属性,并设置其值,应用于表面切线方向或曲线相切方向;
约束特性
可自动计算mass和thickness,对于有重叠大小的,解释器也会自动重置大小以避免重叠;如约束刚性不像期望的那样硬,可能是约束迭代不够;
Normalize Stress 默认是开启的,当子步(或模型精度)变化时,可使被计算的值可预测,即不会使计算的值完全不同或变化太大,如断开的阈值;
Tangent Stiffness 仅适用于Attach to Geometry,应用于目标表面的切线方向,如对赋予到腰部的短裤或裤带有用;会额外创建attachnormal约束,效果比降低Rest Length Scale要好;target_path属性的值仍是attach geometry;
Stitch约束,是vellum几何体间的距离约束(distance),可连接上最近面上的位置(H18之前是只能点到点的),目标primitive可以是polyline、triangle、quad;会创建新的约束类型stitch(点到点)、ptprim(点到面,UV位置存储在restvector);
Sliding滑动,stitch和attach约束均可滑动;不是一个新的约束类型,仅是该约束的一个特征;另外还可以沿primitive内部滑动,在解算器内还可调整滑动的方式;如在attach约束中,开启tangent stiffness其可能会对抗滑动(使用滑动变慢);
As Rigid As Possible(ARAP) 新约束类型,忽略了triangle/tetrahedron上的旋转并最大限度的减少拉伸和斜切;在试图恢复triangle/tetrahedron原始形状时,会产生类似弹性的行为;此约束是针对整个triangle/tet形状的,不是像以前一样仅仅沿边的弹性;cloth约束内的stretch类型也可设置为triangle stretch,此时则不可调节anisotropy;
注,Tetrahedral stretch通常使用较少迭代即可;