第031封“情书”:双簧 DIY Scatter Tool <Entagma>Houdini 2017

第031封“情书”:双簧 DIY Scatter Tool <Entagma>Houdini 2017_第1张图片
这一节要实现的效果

▉ <引子:不要以为你很懂我,你看到約只是一个我。— 每天翻译一篇教程,这就是我写给houdini的情书。【首发于同名公众号:“致houdini的情书”】

第031封“情书”:双簧 DIY Scatter Tool <Entagma>Houdini 2017_第2张图片

任何事情都有正反两面。就像同一个身体里居住着不同的灵魂。

双簧:

    我的身体里住着两个小人,一个冷漠,一个热情;一个出世,一个入世。一个在白天,一个在黑夜。

    我又是难过,又是快乐。我又是自卑,又是狂妄。我又是光明,又是黑暗。

    换句话说,就是喜怒无常。

今天这一节:

    看一下如何让散落的点形散而神不散自然的分布在双子座上?



.....

▉今天是42岁第005天周二

这是写给houdini的

第031封“情书”

我是geo流程图

第031封“情书”:双簧 DIY Scatter Tool <Entagma>Houdini 2017_第3张图片

我是primvop流程图

第031封“情书”:双簧 DIY Scatter Tool <Entagma>Houdini 2017_第4张图片

本节需要注意的知识点:

1

四种制作散落点的方法 

基本都是通过选择一定区域后,撒点:

1)使用group:

    Keep by normal选项里的朝向y=-1与spread angle结合。

2)使用vex代码 :

    1) 使用set函数创建的向上矢量;2) 与物体本身矢量夹角用dot函数,用acos函数求弧度,3)通过弧度/(3.1415926/180)获得角度;4) 再if判断< 设置的滑动数值归入自定义组f@group_group1=1.0;来选择区域。

3) 使用primvop:

    使用类似vex的函数的节点。

 1) constant建立向上矢量2)dot节点求两个矢量的点积也就是夹角;3)trig节点反余弦来求弧度;4)radtodeg节点 将弧度转角度;4)再用compare做一个<某值(constant来设置)运算;5)输出给switch节点,满足条件传给input2(constant=1);6)之后输出给bind export节点;这里设置组名group_group1.于是小于某值的点都移入group1中。

4)使用“曲率”属性:

1)vdbfrompolygon节点转成vdb;2)vdbanalysis节点转成曲率;3)Attribute from Volume节点连接模型,和获取曲率的节点,通过调节map映射参数范围,和曲线得到曲率的分布黑白颜色的模型,4)连接(方法1)的group,5)再scatter撒点时,使用创建的group1,选在组的选择范围内的,通过Cd属性选取的曲率范围的交集。取得最后的选择范围。

2

关于曲率

1)使用曲率能获得凹凸弯曲强弱的信息,

2)再结合group的向上方向的选择范围

3) 再scatter中获得两者的交集,选择的效果更合理自然。

接下来

开始正式制作

使用软件houdini16.5

实现散落点效果的4种方案

方案1:group 

1):file //导入模型 

2): transform  // 转换尺寸

    迅速选择模型朝上的面

3):group1   

    //.√keep by normal // Y=-1

    //Speed angle  控制选择的面积 

第031封“情书”:双簧 DIY Scatter Tool <Entagma>Houdini 2017_第5张图片

    选择group1里的点

4):scatter  // 

    //

count=10000

    //relax

=1

    //选group1 

    合并点和模型

5):merge

方案2:vex代码 

6):primwrangle

    a) 创建一个向上的矢量

vector up = set(0,-1,0);

    b)  进一步获取法线,除去prim法线

vector N = v@N;

    c)  Dot函数获得两个方向适量夹角,acos反余弦得到弧度。

float angle = acos(dot(normalize(up),normalize(N))); 

    d)  angle转换乘弧长

angle = angle/(3.1415926/100.0);

e)创建组group1

f@group_group1 = 0.0;

    f)  判断angle<某值,移入group1

If(angle< ch(“threshold”)){

  f@group_group1 = 1.0;

}

方案3:primitivevop 

 7) primitivevop

    创建一个向上的矢量 

    7-1)  constant1

    矢量(0,-1,0)

    连接N的输入口 

    7- 2)  normalize1

    7- 3)  normalize2

    求两个方向矢量点积

   7- 4)  dot

    计算参数的弧余弦。返回弧度值在0到PI之间。

   7- 5)  trig

     该运算符将弧度转换为度数。

  7- 6) radtodeg

  7- 7)  compare

    a)<号

    b)参数外移

    转换开关

  7- 8)  switch

    假:连1)接口

    真:连2)接口

  7- 9)  constant2

    0;连接input1

  7- 10)  constant3

    1;连接input2

创建输出组group_group1

  7- 11)  bind export

第031封“情书”:双簧 DIY Scatter Tool <Entagma>Houdini 2017_第6张图片

与向上垂直角度<28度的进入group1

方案4: 

8)vdbfrompolygon:

 //尺寸0.005

转换成曲率

9)vdbanalysis

//曲率operator:curvature 

10)Attribute from Volume

    a) 槽1:接模型transform 

槽2:接vdbanalysis

    b) mappinginput

Range:-10 ~ 1 

    c)  映射体积√ Map Volume to Value

第031封“情书”:双簧 DIY Scatter Tool <Entagma>Houdini 2017_第7张图片

    d)   切换present:Decreasing

第031封“情书”:双簧 DIY Scatter Tool <Entagma>Houdini 2017_第8张图片
第031封“情书”:双簧 DIY Scatter Tool <Entagma>Houdini 2017_第9张图片

11)group2

第031封“情书”:双簧 DIY Scatter Tool <Entagma>Houdini 2017_第10张图片
第031封“情书”:双簧 DIY Scatter Tool <Entagma>Houdini 2017_第11张图片

只使用曲率选择。

第031封“情书”:双簧 DIY Scatter Tool <Entagma>Houdini 2017_第12张图片

白色是曲率选择范围

第031封“情书”:双簧 DIY Scatter Tool <Entagma>Houdini 2017_第13张图片

scatter里使用group

第031封“情书”:双簧 DIY Scatter Tool <Entagma>Houdini 2017_第14张图片

黄色是:group选择的范围

第031封“情书”:双簧 DIY Scatter Tool <Entagma>Houdini 2017_第15张图片

scatter里使用group1组,然后再用Cd选择

第031封“情书”:双簧 DIY Scatter Tool <Entagma>Houdini 2017_第16张图片

今天就到这儿了,收功

教程翻译自entagma的网络教程

下一节:20170123 Quick VDB Clouds

第031封“情书”:双簧 DIY Scatter Tool <Entagma>Houdini 2017_第17张图片

     本文图片全部原创,版权归原作者所有。

你可能感兴趣的:(第031封“情书”:双簧 DIY Scatter Tool <Entagma>Houdini 2017)