2016年8月13日 星期六

Houdini 實作練習3

原始教學:https://youtu.be/I8RQDC5h2Jk


核心技術
使用ramp控制noise範圍
使用primitive控制面
使用顏色控制primitive的scale

流程:
物件接入一個point vop,將點資訊接入turbulence noise,再接到ramp,最後連到Output的Cd。
藉由外面顏色的變化,讓primitive node的scale受顏色控制來縮放消失。

影片其實蠻短,步驟也算簡單。不過最後再extrude的時候沒法使用$CR,明明前面delete還有$CR的參數,但卻無法使用。






Houdini 彩色山脈

先上圖。原始教學出自於Houdini動態圖形設計案例解析,武海峰編著

核心技術
point sop 改變法線方向、改變顏色
popnet沿著法線方向發射粒子
使用add sop連接particle
使用creep讓粒子沿著地形爬行
Point Vop 製作地形

流程概觀:
線上取點,並給予normal,用來發射particle(normal長短影響速度),並使用creep讓粒子沿著地形運動,用Add將粒子串成線,再用polywire轉成實體。

細部製作流程:

建立一個Line,設定參數如下。一開始可以先設100個點就好
 ↓
這時候上面的點是沒有normal的,我們加入一個point sop,在Keep Normal處改成Add Normal,並在X的欄位輸入fit(rand($PT),0,5,1,10)。這個函數的意思,就是rand($PT)讓每個點會得出一個亂數,再使用fit函數,將原始範圍設定成新範圍:0→1,5→10。這樣就會得到不同長短的Normal了。
 ↓
接著再加入point sop,使用Add Color,以表達式chramp("cd",rand($PT),0)取得下方我們加入的ramp的值,後面的0,1,2對應R,G,B。下方的ramp就自行加入顏色。
 ↓
要加入ramp,就使用point sop參數欄位右上方的齒輪,選擇Edit Parameter Interface。左方欄位找到ramp(color),拖曳到中間欄位的root下方,就會出現在最尾端。右方欄位則是設定參數的細部。將名稱改為cd,這要做為chramp指定attribute的名字;label改為color。
 ↓
有了顏色和法線,就可以用來發射彩色的粒子。加入一個popnet_old,建立source node。在source標籤頁下設定Emission Type為point(ordered)照規律發射,Geometry Source為使用第一個input的Geometry。
 ↓
第二頁把Const Activation關掉,Impulse Birth Rate設定為$NPT,也就是發射源有多少點,就發射多少particle。因為沒有要粒子消失,所以Life維持不變。
 ↓
在Attribute標籤頁,Initial Velocity 維持預設的Use inherited velocity,設定inherit velocity為0.5。
 ↓
按照書中,這時會先接上Add sop,把點連接成線,並且接上polywire sop 來產生實體線段。不過上面的顏色會是很奇怪的平面感。這是因為normal都指向點的normal方向。因此要加入這個point sop,設定為no normal來把normal關閉。
 ↓
此時呈現的效果如下。
↓
接著就要製作地面了。由於這只是要拿來當作爬行的標的,因此不需要厚度。建立一個Grid,類行為Nurbs,比較平滑。size 10,分段數設定為100。 
 ↓
在下面接入一個Point vop,點擊進入。這裡的概念就是,使用input端的geometry的P(position)點位置,進行turbulence noise運算後,重新fit到設定的範圍內,再將結果傳遞到displacement node,最後連到output,從而讓模型真的變形。這裡的值沒有固定,可以先串接好之後再慢慢調整。按照書中的數值調整會很怪,所以還是自己來吧。
注意在H15.5中製作的時候,displacement 要選的是 Displace Along Normal 這個node。
而Houdini 中的Vex 連接介面中,每個端口的顏色都有用意。比如說global的 P 這種綠色,表示的是向量,因為有x,y,z三個數值;比較墨綠一點的是浮點類型。
在連接的時候不同顏色是沒辦法連接的,要經過轉換。
 ↓
設定好之後,接一個Transform sop,設定Uniform Scale為10,整體放大10倍。
 ↓
目前的長相
 ↓
再來建立一個Creep節點,修改ScaleX, ScaleY為0.1。input1連入砍掉normal的point sop,input2連入要爬的對象。
 ↓
目前效果。
 ↓
接下來就是加入Add sop,把這些particle連接成線。由於發射時使用的NPT,是照順序發射,也就是第一個點發射編號0的粒子,在下一frame發射的粒子,編號就是元編號+NPT這個數字。為了修改上的方便,我們可以直接把popnet中source的impulse rate的值複製,關聯貼上到這裡的N。Add模式是Skip every Nth point。
 ↓
在points標籤頁中勾選Delete Geometry But Keep the points。應該是會把Particle給刪掉,但是生成的curve的點會留著...。
 ↓
如果放大看,會發現每個點的分布不太均勻,所以先把這產生的curve轉成nurbs變比較平滑。
 ↓
再使用resample sop,設定length0.1來重新細分curve。
 ↓
再把處理完的curve轉成polygon。
 ↓
再加上Polywire,搞定!
 ↓
為了要render圖出來,建立平行光與cam,並把光源的影子關閉。
 ↓
在/out 建立一個mantra node,把Output Picture設定好位置與檔名(需含附檔名),並設定Output Device類型。
 ↓
修改取樣值為12,Min Ray Samples改為3。
 ↓
使用PBR物理引擎運算,Diffuse Limit改為3。

完成!建議有設定mantra的話,可以直接點擊Render to Disk,或是Render to Disk in BG,免得MPlay出錯,圖就沒了~~。






2016年8月12日 星期五

Houdini test


沒想到Mantra Surface也改了這麼多
只好先做做樣子 細部設定都沒有...這張算26分鐘= =
sample開到12的話大概要三小時!

2016年7月31日 星期日

Houdini 實作練習

影片來源https://vimeo.com/174958114

Entagma真的蠻神的,就是講得太快了些,我根本聽不懂啊XD 所以就是跟著做而已。

主要核心技術
用node輕鬆連接node
vdb一些node的使用
remesh

基本流程是這樣,版本H15.5:

建立幾何形狀
↓
isoOffset轉成volume
↓
scatter撒點到3維空間
↓
connect adjacent pieces 將點連接起來→另外建立polygon球與copynode將點上都copy球體

↓
wireframe把線加上實體
↓
合併球體跟wireframe
↓
用VDBnode轉成一個個voxel
↓
用VDB smooth sdf 稍微潤滑
↓
convertVDB轉成polygon
↓
remesh重新布線
↓
wireframe在線條間建立實體線段
↓
上材質 調燈光 輸出圖片

在上面iso之前可以加入switch來切換,我是加在iso之後,因為我在別的地方建立文字,而文字要達到比較完整的volume效果的畫,需要不同的值,所以我是在別的地方做好之後,在object merge進來…。
不過文字要連接…。
上效果

看起來像被揍過一樣 = =。