vellum 学习 (定时更新1/12)

vellum学习

文章目录

  • vellum学习
  • 前言
  • 二、遇到的问题
    • 1.结算慢
    • 2.怎么忽略碰撞
    • 3.新节点学习
    • 4.节点参数解释
        • 重要的2个参数
          • 1.stretch抗拉伸 (越大 越防止拉伸)
            • stiffness
            • Damping Ratio
            • restLength Scale
            • compression Stiffness
          • 2.bend 抗弯曲 (越大越 防止弯曲)
          • 3.2种计算方式 1stOrder 2stOrder
            • 1-计算时间长— 反弹少
            • 2-计算时间短—反弹多
            • 3.反弹 1.第二 种反弹多
          • 4.solve
          • 5.Target Path
          • 6.vellumio
          • 7.尽量选择帧更新 (效率块)子步骤更新准确但是慢
          • 8.迭代{3种
            • i 约束迭代
          • ii碰撞迭代
            • 结算人物运动时候会出现不想要的错误 就可以通过加大光滑迭代去处理。
          • iii光滑迭代
          • 9.软硬约束
          • 10.plasticity 可塑性
          • 11.sliding 滑动
          • 12.四面体约束
          • 13.distance 约束 和 triangle stretch 区别
    • Tip
      • 正确
  • 三. 小技巧总结
      • 1.关于解决穿插
        • 1.sdf push
        • 这个办法没办法完全解决掉大的穿插
        • 通过结算解决穿插![在这里插入图片描述](https://img-blog.csdnimg.cn/6295de377c3b44bc84dd896b7d0b58ab.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASkFDS0xPTkdGWA==,size_20,color_FFFFFF,t_70,g_se,x_16)
      • 2.穿插混合
      • 3.官方參數對比
      • 4.看得见的衣服精度高些/其他区域低一些
      • 官方視頻圖
        • 1.高低分辨率混合
      • layer 意思
  • 案例分析
  • 总结
  • 牛仔裤
  • 遗留问题


前言

场景转布料学习Staring


布料 材质:丝绸/牛仔/皮革
区别:软 ,褶皱小/ 褶皱锋利 /橡胶相比牛仔更软。

1.丝绸
厚度 0.001 bend 0.0001 刚度压缩 100000(保留皱纹)、vellum 学习 (定时更新1/12)_第1张图片

2.牛仔
褶皱锋利:——可以通过bend plasticity变形 (只要弯曲低于值域,马上硬化形成锋利的边)
vellum 学习 (定时更新1/12)_第2张图片

3.皮革
因为比牛仔更加软 所以我们通过改刚度压缩 获得更多的塌陷

vellum 学习 (定时更新1/12)_第3张图片

二、遇到的问题

1.结算慢

1.![请添加图片描述](https://img-blog.csdnimg.cn/e6249df9efd6426d965aa50a8f8e7c8b.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASkFDS0xPTkdGWA==,size_16,color_FFFFFF,t_70,g_se,x_16
缓存 2.衣服有重叠的部分 3.面一直在变

2.怎么忽略碰撞

vellum 学习 (定时更新1/12)_第4张图片

先前我们可以在碰撞体下面命名,碰撞体的名字为s@collisiongroup=“~~”;
后续结算s@collisionignore=“~~”;就可以忽略掉。在结算前设置
vellum 学习 (定时更新1/12)_第5张图片

vellum 学习 (定时更新1/12)_第6张图片

3.新节点学习

vellumframe 在solver 结算器之前使用
vellumfframe 保证子步骤和结算一样
vellum constraints (Bend Across Triangles)

vellum constraints (Bend Across Triangles)可以单独设置布料的bend数值。

作用 对于快速移动的物体可以通过 矫正来抵消位移带来的cloth惯性移动。
0不影响保持结算动态 1矫正 抵消掉惯性带来的延后
compute Angular Vel 矫正旋转的vellum 学习 (定时更新1/12)_第7张图片delatmmesh 光滑面平滑面

4.节点参数解释

damping Ratio=velocity Damp { 大 拉伸小 不抖
小 拉伸大 抖
vellum 学习 (定时更新1/12)_第8张图片
mass 质量 区别不同布料?? 加大质量 布料会变 (待补充)
thickness 厚度 会影响褶皱 /包括穿插之类的

重要的2个参数

1.stretch抗拉伸 (越大 越防止拉伸)
stiffness

强度值 1e+10(最大了所以永远不拉升)————如果拉伸表示精度和cons值太小计算错误

Damping Ratio

动能消耗 小——消耗慢——抖 大——消耗快——不抖 不要大于0.1

restLength Scale

小于1 约束距离变小——收缩
大于1 约束距离变大——拉伸开来

compression Stiffness

获得高分辨率高细节{是否保留褶皱
------eg: 皮革 牛仔 丝绸—————数值:低 中 高vellum 学习 (定时更新1/12)_第9张图片原理就是收缩空间有多少 越大细节越多

StiffnessDropoff

2.bend 抗弯曲 (越大越 防止弯曲)

strength

3.2种计算方式 1stOrder 2stOrder
1-计算时间长— 反弹少
2-计算时间短—反弹多
      second order 获得的细节丰富——受sub影响 越大能量消耗越小,预测越准确
      实际案例:衣服迎风吹,second细节更加丰富
3.反弹 1.第二 种反弹多

2.第一种反弹少
可以通过maxacc来解决弹的问题
在这里插入图片描述

加速度>20l 在碰撞的时候切换到第一个算法上面
<20用第二个 ——————同时有2个的算法优势
所以如果加速度太大——无法切换回来——导致还是会弹的问题
vellum 学习 (定时更新1/12)_第10张图片

4.solve
             Collision  passes  碰撞检测 越大越精细 碰撞过渡就自然
              post Collision Passes  在多层布料结算时候可以防止穿插

vellum 学习 (定时更新1/12)_第11张图片

vellum 学习 (定时更新1/12)_第12张图片vellum 学习 (定时更新1/12)_第13张图片

5.Target Path

在这里插入图片描述

6.vellumio

缓存可以删除属性
vellum 学习 (定时更新1/12)_第14张图片

7.尽量选择帧更新 (效率块)子步骤更新准确但是慢

vellum 学习 (定时更新1/12)_第15张图片

8.迭代{3种
i 约束迭代

情况下增加子步骤 会比迭代好些,(可以通过更多的预测精准的找到位置变化。)

ii碰撞迭代

处理碰撞中会出现的问题///处理高速的or碰撞次数较多的物体开高比较精准。。
很吃资源,运行方式是 约束迭代:碰撞迭代 100:10 —— 也就可以得出如果1:1的话会得到更加精准的结算。

光开smooth iteration 会出现抖的情况 (一直在聚拢) 所以可搭配着来 约束迭代+光滑迭代——快速平稳。

结算人物运动时候会出现不想要的错误 就可以通过加大光滑迭代去处理。
iii光滑迭代
9.软硬约束

hard pin welds 直接更新点的位置 可打断约束
soft pin stitches 约束结算之后更新点的位置 可打断约束/可塑性

weld 硬约束——效果——布和布直接直接贴合没有缝隙
weld

stitches 软约束——效果——布和布直接有约束线连接

eg: 衣服缝合的时候 weld 缝合没有空隙 stitches 会有缝隙;

10.plasticity 可塑性

vellum 学习 (定时更新1/12)_第16张图片
threshold 大于多少就形变
rate 多快
hard 《1约束变软 、、、、、 》1约束变硬

参考牛仔 全变硬——速度快—硬度高
vellum 学习 (定时更新1/12)_第17张图片
vellum 学习 (定时更新1/12)_第18张图片

直白的说就是碰撞之后是否保留形变!!!

stiffness 和bend 都有 1. 一旦拉伸强度超过多少就 2.一旦弯曲度超过多少就

11.sliding 滑动

vellum 学习 (定时更新1/12)_第19张图片
作用
颜色可以控制强度(红色移动的快,蓝色慢)

12.四面体约束

Tetrahedral Volume 四面体约束 ——作用保持四面体体积存在/ eg
前面缩放了——此约束可以让物体返回缩放前的体积 tip:但是不会返回measure大小

13.distance 约束 和 triangle stretch 区别

一个不会保持四边面
一个维持四边面
Stretch Type(拉伸类型)
当约束类型设置为布料时,此参数选择使用哪种类型的拉伸约束。在更高的布料分辨率下,线性的Triangle Stretch(三角形绷紧)比Distance Along Edges(保持边的距离)更快地收敛到其适当的刚度,但不能通过启用Enable Warp/Weft参数来支持各向异性。
vellum 学习 (定时更新1/12)_第20张图片
三角stress可视化更加平滑?
vellum 学习 (定时更新1/12)_第21张图片
14. match animation
勾上会生成一个 gluetoanimation 属性
控制约束点是否有动画 tip:注意这里是glue to!!animationvellum 学习 (定时更新1/12)_第22张图片

Tip

软约束 不要在当前节点设置参数 eg cloth下pin了物体就别设置参数 ,会对模型造成变化

错误
vellum 学习 (定时更新1/12)_第23张图片

正确

vellum 学习 (定时更新1/12)_第24张图片

三. 小技巧总结

相机锁定区域发现布料问题
模拟后,解决问题区域的一个方便技巧是将相机作为遵循几何形状的铆钉的父级。使用这种方法,任何问题都会更容易发现和解决。

脚步:
在要关注的几何部分上创建一个点组;在这里,我在腰带的一部分上做了一个点组选择。该组可以称为“for_rivet”
在名为“OUT_rivet”的组之后附加一个 Null
在 obj 级别,创建铆钉节点并指定铆钉几何的路径;这将是新创建的 Null ‘OUT_rivet’
指定点组“for_rivet”
在相机的变换部分选中“保持位置”
将相机作为铆钉的父级
链接: link

vellum 学习 (定时更新1/12)_第25张图片

如果人物有大幅反转,裙子容易歇起来,可以通过k attach的强度过渡
vellum 学习 (定时更新1/12)_第26张图片

1.关于解决穿插

1.sdf push

穿插处理
1.勾选fill interior

2.@surface -= .005; wrangle 这一不会把 实心变空心(其他节点会的)
3.float dist = volumesample(1, 0, @P);
vector grad = normalize(volumegradient(1, 0, @P));
@smooth=0;
if (dist<0)
@P -= dist*grad;
@smooth=1;
vellum 学习 (定时更新1/12)_第27张图片
后续可以用expand -grouppromote——smooth优化

这个办法没办法完全解决掉大的穿插

可以用detangle解决;

vellum 学习 (定时更新1/12)_第28张图片

在这里插入图片描述
穿插面拉出来
vellum 学习 (定时更新1/12)_第29张图片

通过结算解决穿插vellum 学习 (定时更新1/12)_第30张图片

2.穿插混合

vellum 学习 (定时更新1/12)_第31张图片

3.官方參數對比

vellum 学习 (定时更新1/12)_第32张图片
vellum 学习 (定时更新1/12)_第33张图片
vellum 学习 (定时更新1/12)_第34张图片vellum 学习 (定时更新1/12)_第35张图片

4.看得见的衣服精度高些/其他区域低一些

meshsize 为自己画的区域;
float min = ch("min_length"); float max = ch("max_length"); f@minmeshsize = min; f@maxmeshsize = max; f@targetmeshsize = fit(f@meshsize, 0,1, max,min);

画图画的是meshsize
vellum 学习 (定时更新1/12)_第36张图片

官方視頻圖

1.高低分辨率混合

vellum 学习 (定时更新1/12)_第37张图片vellum 学习 (定时更新1/12)_第38张图片

2.attach出錯——collision對象名字問題vellum 学习 (定时更新1/12)_第39张图片

3.彎曲手臂布料跟隨——可以通過手臂動畫跟隨vellum 学习 (定时更新1/12)_第40张图片

layer 意思

设置一块布为1 另一块为2 solver中layer Shock为4 第一块布 4
第二块布 8
————也就是layer越底布越轻

案例分析

1.eg肩带滑落,我们可以通过颜色去读取之前的动画vellum 学习 (定时更新1/12)_第41张图片
vellum 学习 (定时更新1/12)_第42张图片
2.衣服还原回去(poi
ntdeform)出现拉伸——起因是三角面和四边面的问题??——解决办法 可以分区在expand-2 在exand出去
这样零散的点就被移除了

3.vellum 学习 (定时更新1/12)_第43张图片
4.蝴蝶结(遇到一个比较好用的办法,可以舒展开布料)
线resample0.05——表示点点之间为0.05米
我们定义约束线restlength=0.05 这里注意不是0.05的大小而是0.05米
这样布的面就成正方形也就缩放开了!!!!

结算出现这种情况
{1.检查碰撞面数 /衣服面数 是否每帧都在变化。


2.头发拉伸——扭曲会炸——我把pin约束改为attac就行了具体原因???
3.出现类似拉伸情况-可以通过smoothiterations 去解决 如果加大smoothiteration也无法解决——**可能是碰撞的问题 加大collision pass去修复** **或者说加大子步骤去解决**

vellum 学习 (定时更新1/12)_第44张图片
vellum 学习 (定时更新1/12)_第45张图片
solve 结算器中的 Secondary Constraint Pass

约束组中的所有约束都将在一个单独的、交错的传递给其余约束

2个作用

有一些昂贵的约束类型不需要像其他约束那样频繁地求解,因此启用此选项并选择低求解频率可以提高性能

丝绸或棉花 可以使用 因为布料的弯曲很低所以可以启用提高性能。但是不适用于皮革等较硬的材料。

拓扑结构频繁变化的约束
通过将Constraint Group设置为@type=ptprim并将Solve Frequency增加到 1 将 Stitch 约束移动到另一个通道将保持相同的刚度,但会消除由于求解顺序的变化而导致的四面体抖动。

4.丝绸/皮革
attach point之后加distance约束是为了保持边缘不会缩太紧凑

总结

牛仔裤

vellum 学习 (定时更新1/12)_第46张图片

尺寸越大——布料越稳定——不抖

三角面//四边面——四边面纵线拉扯比三角的要多、
collision group=
官方 vellum atribute 可以查属性

遗留问题

  1. velocity 没办法读取动画的v?

2.头发的约束 会产生很多的弯曲 约束不住头发?

3.头发结算会炸开?

4.约束点应该约束在哪里?

5.怎么快速迭代参数,得到布料的确定数值呢?

你可能感兴趣的:(追光,houdini)