天天看點

houdini入門藤曼筆記

整體思路:通過軌迹線規定藤曼位置,生成藤曼分支,再對藤曼生長進行細節處理

  1. 如何導入模型

    建設geo并在其中添加file(檔案夾),在選擇處添加不同類型的模型

  2. 模型減面并變換與對齊

    polyreduce(減面)—Percent To Keep 調整

    remesh(重新布線)—Target Size調整面的大小

    matchsize(對齊到世界中心)

    transform(對模型進行變化)

  3. 建立藤曼軌迹

    curve(鋼筆)選中吸附到模型,進行繪制

    resample(對軌迹進行編輯)

  4. 擷取模型法線并讓軌迹線段擷取法線方向

    normal(法線)擷取模型法線—Add Normals to points(讓法線在點生成)-(如果法線位置不對,勾選Reverse Normal)

    attribtransfer(讓軌迹線段擷取模型的法線方向)

    pointwrangle(代碼,使得軌迹向法線方向偏移(@[email protected]*0.06;(@是屬性,@P是點的坐标@N是法線坐标)))(上述代碼:@[email protected][email protected]*0.06)

  5. 平滑軌迹,并添加動畫

     smooth(平滑)

    carve(軌迹動畫)—first,scend是軌迹起點與終點

    alt選中,添加動畫

  6. 給與軌迹線噪點增加細節

    mountain(添加噪波)

  7. 增加軌迹線分支

    scatter(在軌迹線上生成點)

    pointjitter(随機分布點)

    ray吸附到模型表面)

    (吸附到表面的點與軌迹線相連)

—建立enumerate(選擇成控制點的組(建立一個新的屬性))                                         

與ray(吸附在模型上的點)和scatter(軌迹線上的點)相連

将兩個enumeratel連接配接到mergel同時顯示

将mergel連接配接到add,在polygons(線,多邊形)添加index的屬性在mergel前通過index擷取了軌迹線與随機分布點的序号資訊,通過add讓兩個序号資訊相同的生成了線

  1. 軌迹線細節,在藤曼生成的同時,進行藤曼分支的生成

問題:如何把軌迹線上的屬性傳遞到撒出的點上

使用timeshift固定畫面

建立出triger的屬性,定義為float,初始值為1([email protected]=1;)

将上述代碼和timeshift進行合并并賦予triger屬性,并添加顔色

(@P+=fit01(vector(rand(@ptnum)),-1,1)*0.2*@triger;)使用此代碼解決撒點的随機值代替pointjitter

((fit01(将0,1投射到))(vector(矢量))(rand(随機生成随機數))((規定新的範圍-1,1)(數值)(上述屬性))

與ray相連得到最後輸出

  1. 讓藤曼分支生成更加自然

插入solver(通過上一幀的内容可計算出下一幀内容)

在内輸入代碼:

(if(point(1,'triger',@ptnum)>0) [email protected]+=0.08;)//

([email protected]=clamp([email protected],0,1);)//給新建立的growth規定範圍(0,1)

houdini入門藤曼筆記

solver内

之前的随機值部分修改代碼為:

@P+=fit01(vector(rand(@ptnum)),-1,1)*chf("rand_scale")*@growth;

ch(f(float))——在面闆中形成可調參   ,  修改屬性為growth            

houdini入門藤曼筆記

可調參數

給後續節點修改屬性為growth,即可使用growth所規定的值

10.解決随機與噪波抖動

原有節點(planA)可以放棄,較為繁瑣,運算量大

*planA

建立新的代碼(no-growth)使其不受growth屬性影響

(@P+=fit01(vector(rand(@ptnum)),-1,1)*chf("rand_scale")*;)

将ray的scale修改為常數1,也使其不受growth屬性影響(ray受growth影響會出現抖動)

建立新代碼,與(rand_p)連接配接(傳遞@growth)

vector pos = point(5,"p",@ptnum);//建立變量,不會進行傳遞(讀取點的位置)

@P = lerp(@P,pos,[email protected]);//計算前兩位的差,進行平滑過渡

houdini入門藤曼筆記

planA

PLANB:使用代碼實作吸附效果

在rand_p後添加timeshift(固定整體撒點的位置)

添加代碼

vector pos = point(2,"P",@ptnum);//讀取點的位置(2接口向上連接配接模型法線資訊)

vector min_pos = minpos(1,pos);//計算和模型距離最短的點坐标(并鎖定在min_pos)

@P= lerp(@P,min_pos,[email protected]);//讓min_pos中的值和目前點位置進行過渡

11.生成藤曼模型并給予噪波抖動

使用polywire對線與點生成模型(進行調參)

對藤曼分支給予噪波

利用resample對分支進行細分(增加細節),并開啟curveu屬性(對分支給予0-1)

創造pointvop

curlnoise(控制噪波)bind(擷取curveu屬性) ramp(進行噪波大小的控制)

houdini入門藤曼筆記

pointvop内

添加代碼(對分支的大小進行設定)

@pscale=chramp("pscale_con",[email protected])*0.01*@growth;

(ch(ramp(“命名”,控制的值)*0.01*@growth(不添加@growth會在最後生成圓片,使其受@growth影響)))

houdini入門藤曼筆記

上半部分

houdini入門藤曼筆記

下半部分

houdini入門藤曼筆記

最終效果

至此,整個藤曼的基礎生成就完成了

原作者:Clown_醜

原視訊連結:【Houdini教程全集】0基礎新手入門中級教程——藤蔓ivy生長效果制作_哔哩哔哩_bilibili

繼續閱讀