Vellum —— Sim Cloth

目录

修穿插

借助VDB获得穿插点并调整

使用detangle节点调整

 案例

海盗角色布料

碰撞体处理

vellum处理

deform原模型


修穿插

借助VDB获得穿插点并调整

//利用VDB解决,非自身模型穿插
//如还有微小穿插,可对suface场减些值如-0.001;
//注意VDB的激活范围
float dist = volumesample(1, 'surface', @P);
vector dir = normalize(volumegradient(1, 'surface', @P));

if(dist<0)
   @P -= dir*dist;
//利用VDB解决,自身模型穿插
//注意VDB的激活范围
vector sampleP = @P+@N*ch('offset');
float dist = volumesample(1, 'surface', sampleP);
vector dir = normalize(volumegradient(1, 'surface', @P));

if(dist<0){
   @P += @N*ch('val'); //@P += @N*ch('val')*(dist+1);
   @interset = 1; 
}

使用detangle节点调整

先使用detangle节点初步解决穿插,在deltamush平滑;


 案例

海盗角色布料

角色布料教程 CGCircuit - Houdini Vellum Creature Setup

  • 导入abc(一般从maya种导出的,注意比例);
  • 对有厚度模型,获取单面,用于解算;
  • 碰撞vellum cloth,并解算;
  • 用解算结果,驱动原模型;
  • 导出abc(还原比例及保留path属性);
碰撞体处理
  • 对处于碰撞的部分可使用peak先缩小在恢复,碰撞过渡;
  • 对碰撞体自身穿插部分进行修理,拉开空间;
  • 还可创建collisiongroup属性,忽略碰撞;
  • 删除不参与碰撞的部分;

vellum处理

衣服

  • 对双层布料,删除出单面解算(最后还原);
  • 对原始布料本身纠缠穿插的区域,事先平滑处理;
  • 可使用自适应remesh,对特定区域添加细节,如衣领;减低看不见的地方面数;
  • 修复或disable和碰撞体穿插的区域;
  • 使用PolyDoctor修复错误;
  • 内部衣服应紧贴到身体,以给外面衣服留出足够空间,如使用attach约束(restlength=0.2);
  • 对那些需跟随动画运动的区域,使用pin约束;

//删除扁平的三角形
float ratio_threshold = ch("ratio_threshold");
f@marea = primintrinsic(0, "measuredarea", @primnum);
f@mperimeter = primintrinsic(0, "measuredperimeter", @primnum);
f@ratio = f@mperimeter/f@marea;
if (f@ratio > ratio_threshold) {
    removeprim(0,@primnum,1);
}
  • 纽扣
    • 解算,则本身使用strut或shapematch保持形状,使用stitch约束到衣服上;
    • 直接pointdeform;

腰带/皮带

  • 对原始模型remesh,可使用cloth、strut约束保持形态(vellum configure strut softbody);可能会抖动,增加阻尼;
  • 皮带配件,可忽略与皮带碰撞,stitch约束住;
  • 与下层衣服交互时,为避免滑动穿插,可stitch约束住;

注:

  • 耗尽能量才能收敛,窄的带子会降低能量消耗;
  • 使用四面体约束Tetrahedral Stretch,解算慢,结果差;快速抖动是约束相互抗争的信号;
  • 使用strut约束来设置如皮带、软管等细长mesh,又快又稳;

  • 可使用额外的碰撞球,来控制运动方向等;
  • 注意质量mass,尽量保持各个质量值相似,以便很好的碰撞;
    • 0.1~1.0-e8相差太大,对layer shock设置;
    • 1.0-e6~1.0-e8更相近,碰撞更好;
  • 高的bend刚度,会引起解算不稳定,抖动,使用最低可接受的值;
    • 增加mass,可强化bend刚度,即可降低刚度值;
  • 增加Smooth Iteration对抖动有帮助;
  • Tetrahedral Stretch约束要求许多约束迭代,适用于有机材质;

注,特别是stitch约束会涉及原动画模型的点位置信息,在解算前如对vellum缓存,由于解算的子步原因可能结果会出问题;

  • stitch约束,Geo不可缓存,Con只需初始帧;
  • attach约束,Geo、Con均只需初始帧;
deforming原模型
  • 由于原模型初始状态不同部分的点可能过于靠近,在捕获的点时可能捕获到了其他位置的点,引起结果变形错误;
  • 解决办法为对靠近的点,分为不同piece,从而分开捕获点;
    • 先对原模型分不同部分piece;
    • 在将piece传递给解算模型,此时传递的会有偏差(存在漏洞或间隔);
    • 先将piece属性转化为组,在使用group expand节点收缩,在扩展,填充漏洞或间隔;

  • 14
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值