统计
  • 建站日期:2021-03-10
  • 文章总数:32 篇
  • 评论总数:5 条
  • 分类总数:9 个
  • 最后更新:7月9日
文章 Vellum

Houdini vellum 学习 - 02

JACKLONGFX
首页 Vellum 正文

1.一般布料结算我们都用三角面去solver

  • Tip: remesh 之后的paint+group组会变化 这里切记要attributetranf。。
    这时候会产生布料三角面大小等问题
    我们有2种办法去解决。
    1. ploydoctor(自带节点删除小的有问题的三角面)
    2. 通过代码删除
      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); 
      }

2. 纽扣篇:strutch约束

  • 纽扣用softbody(strutch)约束住防止纽扣塌缩
    此处用到strutch约束
    • 每个点都将寻找一个遥远的点,它是自己的一块,但它有一个直线的视线。它会建立到那个点的距离约束。它构造了大量的牙签式内部支柱,在不需要完全有限元求解的情况下,为对象提供了刚度和体积。
      
Houdinivellum学习-02
-CFXer
-第1
张图片
  • 纽扣需要缝合到衣服上

    • 我们用到stitch约束
      
Houdinivellum学习-02
-CFXer
-第2
张图片
    • 这里目标对象最好是手动选择出来(好处是精准的约束到目标对象上)

      3. 皮带制作 --- 高速移动的情况下 皮带用来cloth的方式结算

    用四面体的方式跟不上
    
Houdinivellum学习-02
-CFXer
-第3
张图片

    4. 还原时出现衣服拉伸

    
Houdinivellum学习-02
-CFXer
-第4
张图片

  • 我们通过传递island的方式deform回去
    
Houdinivellum学习-02
-CFXer
-第5
张图片
  • 颜色混合到其他区域去了——解决办法
    选出区域组:
    int piecenum = chi(“piecenum”);
    @group_currentpiece = 0;
    if (i@piece == piecenum) {
    @group_currentpiece = 1;
    }

    用group expand先缩回去在放大
    
Houdinivellum学习-02
-CFXer
-第6
张图片
    
Houdinivellum学习-02
-CFXer
-第7
张图片

5.PointDeform

自带的节点会有各种问题 ,我们通过vex去编辑

  1. pointdeform的及讲解
    
Houdinivellum学习-02
-CFXer
-第8
张图片

  2. 方法
    
Houdinivellum学习-02
-CFXer
-第9
张图片

    • 首先我们让低分辨率的点匹配高的面
    • 我们靠邻近点处理,根据低分辨率点的距离对其进行加权到我们高分辨率的点。这个点的权重为1,它正好在低分辨率的网格上
    • 这个点应该影响受4个点影响,每个点都有一个较低的weight,因为点是相当远的。

3.高精度模型下

float maxdist=chf(“max_dis”);
int maxnum=chi(“max_number_of_point”);
int npts[]=nearpoints(1,v@P,maxdist,maxnum);//通过1号端口位置,找到和自己的位置最大范围内的点数,记录在数组中,返回的是点序号。
weights[]//权重 ,距离近的权重大,远的就小
float weights[];
foreach(int npt;npts)
{
    vector npos =point(1,“P”,npt);
    float ndist=distance(v@P,npos);
    ndist=fit(ndist,0.0,maxdist,1.0,0.0);
    push(weight,ndist);
}
f[]@weights=weights;


Houdinivellum学习-02
-CFXer
-第10
张图片

4.静帧和低分辨率模型,我们求出偏移量。

vector pos=point(1,“P”,@ptnum);
v@ detal=pos-v@P;

5.deform --- 现在我们要去驱动每个点了

float weights[]=f[]@weights;
int npts[]=i@npts;
float sumweights=0.0;
vector sumoffsets={0,0,0};
int n=0;
foreach(int npt;npts)
{
vector delta =point(1,“delta”,npt);
delta*=weights[n];
sumweights+=weights[n];
sumoffsets+=delta;
n++;

}
vector offset =sumoffsets/sumweights;
v@P+=offset;


Houdinivellum学习-02
-CFXer
-第11
张图片

pointdeform 2-3端口需要timeshift住

5.如何保留初始褶皱

  1. 主要思路是通过距离约束给他约束住
    • 通过找到solve中的约束(粉色的往上找添加约束线)
  2. plus 如何在绘制的地方无褶皱,加个判断条件, 颜色
    
Houdinivellum学习-02
-CFXer
-第12
张图片
    
Houdinivellum学习-02
-CFXer
-第13
张图片
    节点下载:
    「DistanceConstraint.hip」
    视频:
    转到B站

6. vellum 如果跟着曲线运动


Houdinivellum学习-02
-CFXer
-第14
张图片
pin + 跟随动画+popcurve

版权说明
文章采用: 《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权。
版权声明:未标注转载均为本站原创,转载时请以链接形式注明文章出处。如有侵权、不妥之处,请联系站长删除。敬请谅解!

-- 展开阅读全文 --
这篇文章最后更新于2022-5-15,已超过 1 年没有更新,如果文章内容或图片资源失效,请留言反馈,我们会及时处理,谢谢!
Houdini vellum 学习 - 01
« 上一篇
redshift和谐版安装(只支持18.0以下)
下一篇 »

发表评论

已有 2 条评论

  1. 多吃核桃 Lv.1

    说道:大佬,文章中的图片都挂了。。。 盼修正

    1. silence V管理员

      说道:@多吃核桃:已修复

HI ! 请登录
注册会员,享受下载全站资源特权。
暂不提供社交账号登录

今日事今日毕

标签

热门文章

3
Houdini vellum 学习 - 01
4
carbon学习之路(一)
5
Houdini vellum 学习 - 02