2016年8月16日 星期二

Houdini 實作練習(6)

上個效果圖


後來想想,其實只要記錄核心技巧就好...不用每個步驟都寫出來。

核心技術
1.使用VDB獲得整體模型
2.使用noise得到要改變的部份的位置
3.修改MantraSurface的displace scale來讓noise有作用

1. 使用VDB取得模型
本例中的方法:
橢圓球→撒點→stamp copy立方體到點上→合併原始球與立方體→倒角→轉成VDB,精度0.01→再轉回成polygon,得到一個整體的polygon。
原始polygon
 轉成VDB
 再轉回polygon
 近看可以看到都融合了

2.使用noise得到要改變的位置
在point vop中,p連入tubulence noise,再連到Cd Output,這時會看到tubulence。修改turbulence變成黑白分明,再使用attribute create 建立一個attribute,其值為$CR。

圖中白色區塊就是之後來做displace的地方。


3.修改displace scale,H15.5的displace scale沒有連出來,要自己先promote再取出。再將這個scale與第2點建立的這個attribute導入後相乘,連回scale。

右上角可以搜尋。左下方框中,dispArea就是我們建立的Attribute。







2016年8月14日 星期日

Houdini 實作練習(5)

教學影片:https://youtu.be/D8rLipsznog

核心技術:
Normal指向控制
漸變控制
AttributeWrangle部分表達式


影片15分鐘不到,但講蠻快的,效果也不錯。這系列的都可以好好研究研究。

首先,建立一個Sphere,類型更改為Polygon,Frequency改為10,Size為3。

接著建立要複製到Sphere上的立方體。建立一個box,複製SizeY,貼到CentreY上,並修改成除以2。這樣box會始終保持在世界平面之上。
修改box的SizeY為1.2,然後建立copy node,把box連入input1,sphere連入input2。
複製上去之後,看到box的朝向怪怪的,加上Transform node,把RotateX轉個九十度。現在看起來就是往外了。
接下來在box下加入bend node,來修改把box頂端變尖一些。將Capture Direction Y改為1,Z為0,然後修改taper。
如果現在只看box,會發現box一般狀況,有些時候看起來黑黑的。因此在tranform下加入normal node,控制法線方向,將Cusp Angle調小一些。
這些box複製上去,是參照每個Sphere上的點的normal方向。所以我們要藉由控制normal方向,來達到控制這些box傾斜的目的。
控制的方法,就是使用兩個位置相減,得到的向量來表示。
向量的運算:已知兩點座標P1與P2,求出P2指向P1的向量 = (P1X-P2X,P1Y-P2Y,P1Z-P2Z)

因此,我們先建立P1,也就是Target Effector。建立一個Sphere,維持預設即可。再加入一個transform node,移動到第一個球體外部的任意位置。
接著回頭處理第一顆球。這裡教學我聽不太懂...總之是對Normal做處理。在Sphere1下接入AttributeWrangle這個神秘的Node。在框中輸入@N = @N;。
輸入後,球體的Normal變深了...?
這個步驟似乎是要定義Normal,如果用中鍵查看Sphere1的話,會發現他只有P[3fp]點資訊,查看wrangle的話,這時候已經有多了N[3fn]法線資訊了。
繼續輸入f@fall = 0;,這個要用來定義原始normal方向不受漸變影響。
接著要來設定向量計算,增加一個Attribute Vop,wrangle連入input1,第二顆球的transform連入input2。進入Vop,新增一個import point attribute node。將Global的input2連入file。
這個是P1點,建立Substract node,將這個P1點的result連入第一個input,將global的P連入第二個input,再將這個結果連入output的N。
這裡的ptnum必須要連接,否則只會處理編號0的點。但是直接連是沒有作用的,要加上一個Modulo節點。
Modulo去查單字叫做取模,似乎是指,兩個整數,若它們除以正整數所得的餘數相等,則稱對於模同餘。也就是,14和26除以12,餘數皆為2。
這個運算解釋我實在看不懂...等我理解了再來補上。
現在Normal的值與方向都會隨著Sphere2的移動做改變了。
稍早我們在第一個wrangle上有使用f@fall = 0;,我們在sphere2的transform下也加入一個wrangle,並寫入f@fall = 1;。
建立一個Attribute Transfer node,將wrangle1連入Input1,wrangle2連入input2,取消Primitive的勾選,將Point改為fall。
切到Condition標籤頁,修改Distance為0,Blend為12。
這樣就搞定了,在Attribute下先接入一個Visulize,修改Attribute為fall,可以看到有紅色的漸層。
接著我們要用Attribute Vop,用ramp來控制漸變的範圍與顏色。建立Attribute Vop node,命名為fcurve_and_color。進入之後,刪掉Global node。分別建立bind,bind Export,ramp1三個node。將bind與bind Export參數欄的name都改成fall,然後將ramp1改為Spline ramp。這時到上一層,Vop上調整ramp右側的值拉大,已經可以看到顏色的變化了。
將Visualize節點刪掉,回到Vop中,將ramp1的Name改為fcurve,如果名字重複的話會有問題。這時再加入一個ramp,更名為color,將ramp1的輸出fcurve連入,ramp2的輸出連到output的Cd。這時候球體是灰色的漸變。
回到上一層,修改fcurve與color。並修改vop的名稱,第一個用來處理normal的vop也改名。
再建立一個attr vop,將另兩個vop連入。
進入。同樣建立import point attribute,並將opinput2連入file,再將node輸出連到N。這時候顯示的Normal是指向性的。
接下來要混合normal,建立一個mix node,將Global的normal連入input1,import point attribute連入input2,mix輸出連到N。這時候拖曳bias可以看到normal在兩者之間切換。
建立bind node,名稱修改為fall,連入mix的bias。
這時Nomal已經可以由fall來控制了。
連入copy node,在copy node的參數欄,修改Attribute。
最後在vop與copy之間,加入一個wrangle,輸入@pscale = fit01(@fall,0.5,1);,將fall的值用來控制每個複製的scale由0.5~1。

最後來看成品圖。這個是加了材質,因為有開SSS,竟然算了四小時半...。

而把材質拿掉,算這樣十分鐘不到。







Houdini 實作練習(4)

上個效果圖

核心技術:
物體沿路徑移動
粒子連成線
明度控制線條粗細
For each subnet使用

這是書裡的範例,簡單來說,建立一些點在物件上,讓物件沿著路徑移動,並使用那些點當成particle的發射源,之後再把粒子連接起來成線,最後用Foreach來處理。

首先我是先把物件加上isooffset,轉成體積,然後連接Scatter,點數用30。加入point來給點上色。
加入popnet_old,增加粒子的變化,所以使用curl noise。 
 ↓
在這裡讓每個primitive都有自己的顏色明度。
最後加入foreach,設定For Each Primitive/Point。
 ↓
進去連入polywire,並把線條半徑設定為表達式。prim("../each1",3,"Cd",0) 這裡表示曲線的顏色明度,使用fit01來在範圍內取值。
 ↓
 最後加上Glow材質,Ramp Rate表示透明的程度,Emission為發光強度,invert? 勾選為中心透明。

2016年8月13日 星期六

架站DIY:透過Cloudflare連結Godaddy與Sugarhosts主機

前陣子搞架站真的搞死我了
上網查又查不太到,我買的教學課程偏偏東缺西漏!沒有買了網域後跟Sugarhosts連接的教學,問老師問題未果,打著船到橋頭自然直的心態就下手了。

困了四天終於....在這裡要謝謝 關鍵點 http://linchpin.cc/ 的回覆,終於讓我搞定了。
未免有人想架站也苦手,我稍微寫一下整個流程。中間可能會有些不清楚的地方,那是因為我也不清楚...。


首先,到Godaddy網站去買網址。目前有優惠.com的是首年39元,每年會有6元的某種費用,所以實際上是台幣45元。但第二年就不是這樣了,一次買兩年的話大概三百多台幣。


買好之後,請參考關鍵點的這篇文章,將Godaddy的網域交給CloudFlare代管。得到兩組域名伺服器路徑後,回到Godaddy中。登入之後網址狀態應該是空閒中。點右上角的齒輪,選擇管理DNS。按照文章步驟修改之後,之後再回來Godaddy就會看到跟下圖一樣的狀況,表示正在使用外部名稱伺服器。
再來就是買空間啦,我是用Sugarhosts,現在在新北市也有機房,不過我是買美國的..。沒有什麼理由XD。我賣這個,每個月72元。


假日也可以買的。買好之後,登入Sugarhosts。右方點選我的產品與服務,就會出現如圖中的樣子。再點選查看詳細資訊。

接著這裡會看到註冊Sugarhosts時我們填入的在Godaddy買的域名,還有IP。點選下方的登入cPanel。

登入cPanel之後應該長得像這樣。


把畫面往下拉,找到Cloudflare。我也是到處google後來才知道cloudflare是代管的網站。不過因為從cpanel中處理,少了一些步驟,我不是很確定...所以我到Cloudflare親自從頭做起。


這時應該已經做完文章的第三個步驟了。最後,就是要把Sugarhosts提供的IP,填入到Cloudflare中。登入Cloudflare畫面大致如下,點選上方的DNS按鈕。


會進到下圖這樣的畫面中。理論上此時第一個Type A的name就是自己的網域名稱,但是後面的value不是Sugarhosts的IP。我們就把在Sugarhosts弄到的IP填入到這裡。


之後就大功告成了!
也許其實不用這麼麻煩,只是因為我當初急著想先讓我申請的域名有作用,就去wix.com緊急做了一個blog,可能是因為這個緣故吧...。
總之做完真的太好了!

至於如果跟我一樣要架設wordpress個人網站的話,有兩種方法,一個是Sugarhosts最下面,就可以自動安裝wordpress到空間中,或是自己去wordpress.org下載最新版本的.zip檔,在Sugarhosts的檔案管理員中,上傳到publish_html/下並解壓縮,再把wordpress路徑下所有檔案移動到publish_html這一層,這時進自己的網址,就會看到wordpress的安裝畫面了。