第089封“情书”:九九归一Vellum Cell Replication TutorialPART1<Adrian Meyer>Houdini 2019

▉  一秒,一分,一天,一年,一生一世!— 每天翻译一篇教程,这就是我写给houdini的情书。【首发于同名公众号:“致houdini的情书”】


+fuly_fw658.jpg

█ 人生的白纸上,你画下的每一笔都是在修行 ”

前言不搭后语

    到昨天为止,entagma系列算是告一段落。

    今天起,从houdini官网上教程开始翻译整理。有些教程时间比较长,精力有限只能每天分段进行,有些内容会一笔带过。敬请谅解。   

本节内容
复杂和非常可控的模拟设置,分裂和复制软体细胞第一部分基本单元设置


本节要实现效果
.....






20190408 Vellum Cell Replication TutorialPART3.png

今天是42岁
062周三

89
这是写给Houdini的第089封“情书”


我是vex代码

左右组

//--1 把点分左右两个组

if(@P.x<0.01){

    i@group_left = 1;

    i@mask_left = 1;

}

if(@P.x>-0.01){

    i@group_right = 1;

    i@mask_right = 1;

}

几何体x轴向渐变属性

//-- x轴上使用relbbox函数取值从0~1范围驱动“坡度变量”

@inside_surf_ramp = chramp("x_ramp",relbbox(0,@P).x);



首先
制作步骤

 

小节提要

A

01

高分辨率模型

B

02

低分辨率投射成高分辨率形状

C

03

设置属性

D

04

vellum模拟     

接下来
正式制作
            使用软件:houdini17.5


0 1 高分辨率模型


○ “高分辨率”节点 ○

image.png


geometry命名“cell_setup”

○ 具体操作 ○

01)sphere1:
        polygon;Radius=0.5*0.6*0.5;Frequency=20。

02)mountain1:

        Height=0.3;Element Size=0.6;Roughness=0.3。

03)Null:命名“OUT_cell_hairs_geo”。


02 低分辨率投射成高分辨率形状

○ “低分辨率”节点 ○

image.png

低分辨率模型分组&x轴渐变属性



○ 具体操作 ○

04)platonic1: 

image.png

05)subdivide1: 细分后三角形面

image.png

06)relax:Max Iteration=40

❖  小目标1 ❖ 

○沿着x轴从中间切分模型;○分成左中右内4部分

?解决方案?

A“左右组

07)pointwrangle:命名“groups”  

//--1 把点分左右两个组

if(@P.x<0.01){

    i@group_left = 1;

    i@mask_left = 1;

}

if(@P.x>-0.01){

    i@group_right = 1;

    i@mask_right = 1;

}

B“中间组

08)groupcombine命名“center”  

image.png

C“内部组

后面细胞分裂时,需要建立一个内部group

09)pointwrangle:命名“inside_hull”  

❖ 初始化 ❖

i@group_inside_hull=0;


❖  小目标2 ❖

模型上从左到右创建x轴向渐变属性

?解决方案?

10)pointwrangle:命名“inside_surf_ramp”  

//-- x轴上使用relbbox函数取值从0~1范围驱动“坡度变量”

@inside_surf_ramp = chramp("x_ramp",relbbox(0,@P).x);

❖  视觉化  ❖

11)visualize1:快捷键:x 

image.png


a)调整ramp

image.png


 ?至此完成了“低分辨率”的拓扑?


高分辨率形状 所有属性 拓扑到低分辨率

❖ 解决方案❖

匹配形状

12)ray:连接“高低模”

image.png

13)relax:均匀一下模型网格



 ?至此有了最终形状?

❖ 小目标 ❖ 

○创建“属性”储存局部相对边界框 


0 3 设置属性


○ 节点 ○

image.png


❖ 小目标 1 ❖ 


属性:bbox

操作

  14)pointwrangle命名“bbox”

//点属性

v@bbox = relbbox(0,@P); 

❖ 属性转prim类,point保留属性 ❖

     15)attribpromote 

image.png


❖接下来❖

处理大量细胞,像粒子一样复制自身,所以

❖ 小目标2 


最后“初始化一些模拟属性”

 16)rest position

❖ 每个物体应该有的ID ❖

 17)pointwrangle命名“sim_init”

//--初始化

i@cell_id = 0;

//--细胞分裂之前的id

i@cell_id_prev = -1; //因为分裂之前没有previd

//--细胞分裂的id

i@cell_id_split = 0;


//--年龄,第一次模拟之后变成0

@age_f = -1;


❖ 现在一切准备就绪 ❖

❖接下来❖

转成vellum对象,建立一个模拟



0 4 vellum模拟



○ 节点 ○

image.png

❖ 解决方案 ❖

使用工具栏vellum中的“softbody”工具

image.png

 B) softbody_vellum 命名import_cells

cell_setup层级

❖小目标1❖

A) 设置vellum约束

默认vellum设置

image.png

单独显示约束效果

image.png

    18) stretchcloth_constraints:

A)改变厚度

    Thickness=0.002 

? 技巧 ?

视觉化vellum参数

vellumpostprocess1

image.png

image.png

B)改变伸展硬度

    Stretch / Stiffness=7 

C)改变弯曲硬度

       Bend / Stiffness=0.05 

         19) strut_constraints:

❖ 小目标 ❖

更柔软一些

A)降低硬度,阻尼率高点

Stretch / Stiffness = 0.85 

Damping Ratio = 0.085


❖ 小目标 ❖

A)将geo的点属性拷贝到con的点属性上

❖观察一下geo和con两个输出❖

image.png

a)vellum的约束作用只作用在prim层级;

    因为:它们使用“约束线”构成,这些线需要定义一个rest length;

    b)但prim数量非常不同 但两者的point相同:

image.png

❖ 解决方案 ❖   

 c)使用attributecopy拷贝geo点属性给con点属性

❖  操作A ❖

    23)attribcopy1:

        a)连接

image.png

        b)输入要复制的属性名称:

image.png

❖  操作B ❖

拷贝到组

image.png

    24)groupcopy1

image.png

❖ 现在con约束几何体点属性上也有geo点属性 ❖


B) point转prim

    25)attribpromote

image.png


现在所有属性都在“约束节点”prim层级

❖  接下来 ❖

? 创建资产  ?

将geo分成两半,每一半有相同的细胞



0 5  创建资产 


○ 节点 ○




? 解决方案 ?

a)这里不切分细胞,而是创造类似的新几何体两个相同副本

b)两者具有相同点,与拓扑结构,同样属性。

c)因为我们要确保vellum保持不变。

❖  小目标 ❖

a)创建“细胞分裂”在局部静态空间进行初次分裂

    b)将这个资产用在dopnet里动态的分割细胞。

资产要求:

1。不仅可以在局部空间分裂细胞。

2.而且可以将细胞分裂成任意形状的变形和空间位置

cell_setup层级

○ 小目标 ○

↑封装资产中建立的功能 ,转成数字资产     

27)subnet:右键Create Digital Asset

    a) save to library输入Embedded;这样可以快速的改变。image.png

    b) 最大输出=2,这样就像细胞分裂器,一个细胞输入,希望2个细胞输出。

image.png

○ 可有可无的小小目标 ○

借用groupcopy的icon图标

28)groupcopy:

    a)右键 Type Properties

    b)image.png拷贝名称

    c) 粘贴在这里image.png

    d)删除groupcopy节点


○ 使用hda的原因 ○

○在一个文件中的另外地方如果想要调用封装的功能,或者集中在一个节点上,

a)节点右键,建立一个副本image.png

b)但是对于vop之类的副本,进入内部并不关联,

○hda是种在本地复制一个节点或一组节点的好方法。



0 5 分裂细胞 


○ 节点 ○




Subnetwork层级

❖  小目标 ❖

分裂细胞

? 解决方案 ?

27-1)output0

27-2)output1 image.png

27-3)groupcombine:命名inside_hullimage.png

image.png

27-4)blast1命名inside_hull

image.png

我们并不想创建新的几何体

❖  小目标 ❖

A 取原来的几何体转换到平面,创建一个内部surface

❖  解决方案 ❖

27-5)polyfill:为了安全起见,表面之间留出一定空间。

image.pngimage.png

    B 只保留中间的修补面

    27-6)blast1命名blast_patch

image.png

27-7)normal

image.png

27-8)ray1

❖小问题1❖

没有投射到平面上

image.png

❖解决方案❖

传递平面的N法线给几何体

image.png

27-9)attribtransfer1

image.png

❖小问题2❖

几何体边缘突出

❖ 解决方案 ❖

27-10)group选循环边缘:基于未共享的边建立一个组。

image.png

27-11)polyextrude:挤压边

image.png

27-12)normal:纠正打乱的法线。

27-13)attributeblur:

    a)在attribtransfer之后

    b)模糊法线N;取消Pin Border Points

    c)模糊迭代=5

image.png

❖ 小问题 ❖

blur模糊掉了平面内部的位置

❖解决方案❖

27-14)attribblur:

    a)在ray之后

    b)Group:inside_hull;迭代=20;step size=1

image.png

❖小问题❖

平面的网格分布不均匀


预知后事如何,明天继续分解。




封面图片7.jpg
教程翻译自entagma的网络教程
下一节:: 
电子邮箱:oneinchtime@126.com

公众号:微信图片_20190607085947.jpg微信号


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值