
▉ 今天有個小男孩生日,他就是我的兒子— 每天翻譯一篇教程,這就是我寫給houdini的情書?!臼装l(fā)于同名公眾號:“致houdini的情書”】

█火山爆發(fā)之前總是很平靜很祥和!
前言不搭后語:
你最愛看神奇寶貝,在你生日這天,放一首你最愛聽的歌。
這首歌,開始聽,很吵,聽久了,很燃!
記錄你的成長,就好像看到小時候的我一樣。希望你像健康的果實,在晨露的沐浴中茁壯成長,平安,正直的過一生!
(日記一則:想象力方面,孩子總能教你很多東西。
2018年4月24,18:49洗完澡的小澤問我:你知道靈感大王是什么嗎?我:不知道。小澤言之鑿鑿的說:靈感大王是通天河里的一條鯨魚。)
為了防止世界太乏味,為了守護世界的活力,可愛又迷人的淘氣男孩,你是穿梭在銀河里的少年,希望,美好的明天在等著你。
????喵!就是這樣,小澤,祝你9歲生日快樂。
????其實,
????你也是我的-神奇寶貝!
今天這節(jié)的內(nèi)容:
? ??如何制作水果表面的雨露。
這一節(jié)要實現(xiàn)的效果
.....
▉今天是42歲第029天周五
這是寫給houdini的
第055封“情書”
我是geo流程圖

我是solver流程圖
<08?move_along_surface>1)向上矢量;2)向上移動位移.3)縮小粒子.4)根據(jù)pscale驅(qū)動位移
<10flatten>?壓扁

<17 水滴向附著表面縮進>


本節(jié)需要注意的知識點:
水滴形成步驟
01粒子部分
1
細分模型,增加法線
1)?object_merge合并進物體
2)?normal1增加法線
3)?subdivide1細分模型
2
撒點-設置粒子隨機尺寸
1)?scatter隨意撒點
2) pointvop設置粒子pscale
????a)?aanoise1增加尺寸的隨機性。外置參數(shù)

b)fit映射范圍-0.5~0.5
c)ramp坡度

d)第二個fit外置Destination min&max,為下一步,根據(jù)粒子大小驅(qū)動粒子位移做準備。
3
沿表面向上位移縮小的粒子

1)?pointvop制作向上的矢量,在根據(jù)矢量產(chǎn)生位移
????a)首先:通過兩次“積乘”獲得沿表面向上的矢量。?

????b)然后:成一個0.8常量縮小粒子。

c)最后:外置fit的源min&max,使用設置粒子pscale的參數(shù)復制關聯(lián)。最后接displacement的amount驅(qū)動移動的距離,粒子小的移動少。

4
壓扁點
1)constant矢量,縮小z軸

2) bind export輸出scale屬性

02 水珠部分
1
copytopoint
1)?sphere拷貝到點
2
轉(zhuǎn)vdb,布爾掉果實內(nèi)部露珠
1)?vdbfrompolygons:轉(zhuǎn)VDB
2)?vdbcombine:布爾掉果實內(nèi)部的水珠
3)?vdbreshapesdf:擴展體積
4)?vdbsmoothsdf:平滑
5)?convertvdb:轉(zhuǎn)polygon
3
沿表面法線向果實內(nèi)部嵌入一點

1)?pointvop:接口2接入果實
a)xyzdist:返回幾何體果實對應點的primid和primuv信息。?
b)primitive attribute:對應的水滴primid和uv,然后指定采樣信息:N接入displacenml節(jié)點。
? ? c)displacenml節(jié)點:輸入P,輸出P,調(diào)節(jié)amount將水滴向表面內(nèi)收縮。
接下來
理論部分
問題1:關于向量積的原理
01)與向量打交道時,可以對它們做不同的數(shù)學運算,
02)它的運算結果:產(chǎn)生一個向量,并且垂直于兩個向量構成的平面
03)G與N積乘,得到B;A再與N積乘,得到dbug;
接下來
開始正式制作
使用軟件houdini16.5
1:粒子部分
1?細分模型,增加法線
1)Object_merge
?//?必須把它轉(zhuǎn)化成this object否則不匹配

2)Normal? //?

3)subdivide1? //?

2?撒點-設置粒子隨機尺寸?
4)scatter1? //?1200個點
5)pointvop命名set_pscale? //?粒子尺寸
a)?aanoise1增加尺寸的隨機性。外置參數(shù)

b)fit映射范圍-0.5~0.5
c)ramp坡度

d)第二個fit外置Destination min&max,為下一步,根據(jù)粒子大小驅(qū)動粒子位移做準備。

3 拷貝到點?

6)copytopoint? //?去掉繼承法線

7)sphere? ?// ?
4 求得細長的流水模型?
方案)
? 1 轉(zhuǎn)成volume,放多個依次縮小的sphere,然后merge。
? 2 復制sphere沿著表面上移。
2a 這時需要沿著表面向上的矢量,用double cross product雙交叉乘積(向量積)
2b?//求沿表面的的矢量dbug)
? 1 建立一個向上的global vector全局向量{0,1,0},它與點的法線的積乘,產(chǎn)生的向量
8)Pointvop命名create_vector_along_surface
<問題1>然后獲得向上矢量

8-1)constant??// ?矢量{0,1,0}
可視化dbug這個矢量


? ? 8-2,3) 兩個Cross Product積乘
? ? 8-4)?bindexport??? // ?輸出dbug矢量

<問題2>如何讓點向上移動


????8-5)displacenormal? ?// ?
????????a)連接P,和第二個積乘的輸出,
????????b)輸出連接P
????????c)amount=0.01,點沿表面就向上移動
? ? 9) ?merge??// ?<5>和<8>合并
<問題3>如何讓上面的點縮小

????8-6)bind2??? //?Name:pscale
????8-7)mulconst1? ?//?Multiplier:0.8
? ? 8-8)bind3??//?Name:pscale?
<問題4>解決pscale不同但位移卻都相同

關聯(lián) pscle<05>的值fit到<08>節(jié)點里fit
?8-9)fit1??//??val連接bind;外置最小最大源min和max
?8-10)parameter?//?Name:displacement_amount 作為外置參數(shù);
1)連接fit輸出到<08-5>displacenml節(jié)點
2)在外面面板調(diào)節(jié)

>
?8-11)multiply????1)??;

<問題5>太小的粒子沒有移動。
8-9)?fit1?? // ?Destination Min=0.2

5壓扁點


使用scale屬性的z軸
?10)?Pointvop命名flatten? ?//
? ? 10-1)??constant1

? ? ?10-2) ?Bind export1

2:水珠部分
1:轉(zhuǎn)VDB

11)vdbfrompolygons1

12)vdbsmoothsdf1

13)vdbreshapesdf1

2:布爾掉果實內(nèi)部的水滴
14)?vdbfrompolygons2
15)vdbcombine1

16)?convertvdb1
3:水滴貼著表面渲染費時,移入表面一點

17)?Pointvop命名move_inwards
? ? 17-1)xyzdist???// ?它是引入幾何體中心的坐標,返回的primid(點所在表面對應的最近的那個prim),primuv返回“所在的那個prim上的”點一個二維vector第三個維度坐標=0;我們需要表面法線,我們有了兩個采樣,
?????17-2)Primitive attribute????//
????然后告primuv相同曲面的 primitiveid和對應的UV坐標,
????然后我們可以指定要采樣的屬性。
????在本例,我們知道在表面上水滴的每個點的法線,通過normal進行displace
a)opinput2連接file;
B)prim和uv連接<16-1>的對應接口
?????17-3)?displacenml

外置參數(shù):Displacement amount=0.04,//水滴就被沿著表面法線方向推離表面。
???????a)?外置參數(shù):Displacement amount=-0.003

? ?今天就到這兒了,收功,
明天開始entagma教程的2018年
教程翻譯自entagma的網(wǎng)絡教程
下一節(jié):20180101 Fakebroidery- Needlework in Houdini

? ? ?本文圖片全部原創(chuàng),版權歸原作者所有