2008/10/27

猴子都看的懂得Houdini9.x教學 之 用mantra算夾帶多通道的openEXR

好吧
houdini學到現在也邁入第二年了(雖然中間大概有一年半的時間根本沒在碰....)
但是基本上對我這樣一個美工出身的人來說
好像也不用指望學到多深入的東西
vex那種給鬼看的東西目前我還是只能碰運氣連連看而已``

可是又希望能有更多houdini同好可以交流技術
so 從這篇開始應該會陸續上傳一些簡單的圖文教學
讓一些跟我一樣什麼都不懂得傻孩子也能開始使用houdini
資深前輩也能開始跟houdini混熟
以上就是我所期許的
廢話不多說
接下來就是正式教學啦

==========================================

使用材料:HOUDINI9.5 app + nuke 5 ple

由於是第一個教學
所以就不使用範例檔
從頭到尾作一次吧

先從viewport上面的shelve裡面找到一個叫create的shelve
















按住Ctrl + LMB(滑鼠左鍵) 點grid
按住Ctrl的用意是為了讓點選的物件直接放在場景正中央

接下來按住Ctrl + LMBplatonic object
放下去之後你會在viewport上方的面板裡面看一些對應該物件的選項
到solid type把預設的Tetrahedron切換到Utag Teapot

就會出現人見人愛的茶壺了!(這軟體提供的茶壺是nurbs的
有興趣可以到他的node裡面去看他是怎麼串的,nurbs實在太難懂了....)

接著,我們要在geometry的層級來把茶壺移動到地板上面

這軟體似乎也有一些聰明的snap小工具

不過現在畢竟是在學軟體
那就要學點有趣的東西
例如用expression輸入他的位置之類的.....

好,首先 在platonic的node上面按鍵,就會看到下圖

裡面有清楚的show出到這顆node為止的一些資訊
例如有多少個point多少個polygon之類的
連用了多少memory都會寫...
好 但是這些都不重要(目前來說)
重要的是有一行顯示了size的資訊 size: 1.9918, 0.91577, 1.22103
也就是說 我們可以提取出這個size的數值

那要怎麼提取呢
通常會用到一些簡單的expression
首先 將滑鼠移動到viewport的位置(這動作我實在很難解釋 用久就董了 用過sgi的應該也知道...)
按下 "Alt + ]" 我們就可以在viewport垂直切割一個新的視窗

不想用熱鍵的話 可以到右上角的小箭頭
裡面可以找到split pane top/bottom

接著我們到下面這個pane的標籤上按右鍵
選取textport

這個地方以後會常常用到 所以跟他混熟一點比較好.
總之 在這邊 輸入 "exhelp"

就可以看到一卡車的指令
而我們要用的叫做 'bbox' 白話文就是 bounding box
接著我們可以輸入' exhelp bbox ' 這個指令可以說明 bbox要如何使用

在這個畫面中 我們可以明白 這個指令基本上就是
bbox(目標節點的字串 , 浮點數類型)
而浮點數類型包含了
D_XMIN, D_YMIN, D_ZMIN, D_XMAX, D_YMAX,
D_ZMAX, D_XSIZE, D_YSIZE, or D_ZSIZE (我承認我是用複製貼上的)

好吧 接下來回到platonic_objectgeometry level
我們在platonic的下面接上一個xform ( transform ) 的node

接著在position的y 輸入 bbox("../platonic1", D_YSIZE)
然後就會看到茶壺跑到天上了
然後只要在剛剛的expression後面除以二
bbox("../platonic1", D_YSIZE) /2 (因為軸心在中間 所以總高度的一半底部就剛好可以落在0)
他就會老老實實的貼到地板上
而且你隨時可以回去上層改他的大小...

回到正題
接下來 要來上材質了

先點選"material platte"的pane
這個地方的材質球可以說是houdini9之後
為了廣大根本搞不懂vex shader該怎麼用 特別作好的懶人包
不過其實這跟其他軟體預設的一些材質道理其實差不多啦
只不過你還是可以到裡面去研究一些設定(事實上等一下會用到...)

先到'General'裡面拖出basic surface
再拖出reflective

接著回到network pane (這時候會自動跳到shoplevel)
我們可以看到剛剛拖的兩個材質已經放在這了

接著就跳回scene
現在要來指定材質了
話說在這個軟體指定材質的方法實在有夠ㄊㄇ的複雜
很多細節我仍然搞不懂
目前先就最基本的上法做個說明吧

首先在scene的level下
選取要指定材質的物件
parameters 面板上 找到 Material的標籤
進去之後點選右邊的按鈕
選到你要指定的shader (這邊會自動過濾成只顯示shader相關的東西)

接著把茶壺放reflective 地板放basic surface
然後在隨幸打個point light
然後把攝影機橋到你覺得好看的角度
接著在viewport右上角 顯示著"no cam"的地方
點下去 選擇new camera (相當於3dsmax按 Ctrl + C)
就會在當前的view放上攝影機

接下來 先到out的level
放一個mantra的node (你可以幫他改個你看的爽的名字 假如你時間太多的話)
接著再到右下角找到像是膠捲夾的按鈕
按住右鍵!
假如你剛才沒改名字 這邊會出現三個選項
view: mantra
view: renderman
Mantra1 =>你剛剛放的那個

所以當然是選第三個
然後就可以看到算圖結果了

然而 本篇要講的是分層算圖
接下來才要進入這次的主題

如何設定額外的pass (在這個軟體好像是叫deep raster)

這個時候建議把面板弄成下圖

(記得用釘子鎖住面板監看的位置
network view按 'p' 就可以直接叫出parameter的面板
總之左邊就維持在out的level就是了)

接下來 我們先到shop
LMB 雙響 會進入到....該shader裡面 (不知道該怎麼形容這個地方)
反正 在reflective那邊再點兩下左鍵 就會進入可愛的 vex builder

當然 眼花花一片 根本讓人看都不想看
但是沒關係
其實side effect 已經很貼心的用顏色告訴你只需要看哪邊了
稍微zoom out 一點 就可以看到有五個node是用深綠色標起來的
(這裡的五個分別是:paint, diffuse, specular, opacity, relection)
這五個就是用來告訴mantra節點可以額外寫入的pass了


(也就是說 搞懂這邊的話 能幹的事可就多了 例如產生velocity就要DIY了
有關motion blur的部分 這軟體其實很麻煩
日後我會再作說明 也希望有人能指點迷津
到底該如何正確的在這個軟體使用motion blur......)

總之現在就是把這五個的parameter name複製起來(當然只能一個一個弄)
接下來到mantra的node
property下面的output裡面 有個Extra image planes的參數
直接輸入五吧
接著就在VEX Variable裡面貼上剛剛複製的名稱 (ex. paintExport)
vex type 就維持Vector Type
channel name你爽就好 (ex. paint, diffuse, ref.....etc)
quantize的地方 就看狀況 一般這種顏色的選16bit float就很夠用了
sample filter我基本上都不改 (因為我看不懂這是要改啥的)
pixel filter我全都選 gaussian 2x2 ( 因為我也搞不懂到底什麼時候該選哪種 )
剩下的基本上都不用調 或看一次結果在作維調
不過16 bit float的情況 再合成的時候基本上應該可調range也夠大了
五個都弄完之後
可以從任何一個的左邊 按一下 "+"的按鈕 (其實這跟在上面直接輸入六意思也一樣
只是我想說這樣可以提醒一下 要從這邊加也是ok的)

我們在VEX variable右邊箭頭按下去
會看到幾個預設可以直接放的東西
這邊我就只加一個Pz (position z)
這東西的話VEX Type用float就可以了
因為景深常常會需要大幅度的調整
所以Quantize我選32bit float
剩下的我就跟之前都一樣了

接下來就再去按算圖鈕吧
這次直接按左鍵就可以 他會紀錄你上一次算圖用的node
接著我們在Mplay的上方面版可以看到有個可以切換pass的按鈕

展開之後可以去check剛剛算出來的各個channel
沒意外的話到pz應該會看到一切都是白的
因為....這好難解釋 用心去體會吧
反正按下面工具列最右邊的按鈕"Adapt to full pixel range"
有出現灰階就代表正確了
其他就依此類推

接下來
就要進入nuke了
今天先到這...

13 則留言:

  1. 版主寫的真好
    我頂~
    期望第二篇喔~
    加油 ;)

    回覆刪除
  2. ...幹 我連猴子的程度都還沒~~!!

    現在有點原始人看到火的感覺那麼驚恐~!~

    ~~不過還是 幫推!!~

    回覆刪除
  3. 阿寶哥你太誇張了啦
    怎麼說你也是3ds動物園的管理員
    阿我只是houdini動物園的猴子
    你只要跳槽過來就ok了 (咦~)

    回覆刪除
  4. 推一下,推一下~真的是蠻厲害的軟體~

    回覆刪除
  5. 嗚喔喔喔!
    看到標語真是超心動的啦XD

    回覆刪除
  6. 嗚嗚,真是帥氣的教學(Y)

    茶壺果然是人見人愛XD (!?)

    前輩的標籤們也都下的很有感覺,真的很棒

    回覆刪除
  7. 胡迪尼實在沒什學習資源...完全看不懂

    不過倒是很想學胡迪尼的L-system!

    回覆刪除
  8. 我之前有凹公司買cmi-vfx
    出的l-system教學
    可這東西實在太難理解了
    (個人數理能力相當差啊)
    不過我總有一天會去學吧
    (等到要做大量開花長樹的case的時候XD)

    回覆刪除
  9. 天曉得猴子都看的懂...我看不懂

    回覆刪除
  10. 好吧 我承認標題是用來釣魚的(誤)

    回覆刪除
  11. 雖然目前也在玩houdini中, 但還是很難懂...該不會我連猴子都比不上吧 (泣~

    回覆刪除
  12. 別這麼說~~
    當時我這樣下標題只是因為這種分量的文章跟odforce上面的比
    真的是猴子等級的
    但實際上我搞懂這一切也花了很多時間
    自以為寫得很白話了
    但所有看過的人都說還是霧煞煞~~~....

    只能說要學這東西時間注定還是得花下去的啊~~~

    回覆刪除