接續上篇
http://tommy20015.pixnet.net/blog/post/46771690
看完了HYBRIDO的基本流程後,我們來做一個案例吧。
這案例可能會模擬數小時,請先做好心理準備。
但也會提一些減少模擬時間的方案(但是會降低真實度)
=======================================
首先我們先下載這個場景
http://www63.zippyshare.com/v/56064070/file.html
=======================================
這場景非常簡單,就一個平面加上一些類似石頭的碰撞物。如果無法下載的話,也是可以自己做的。
然後我們做一個Domain區域將他包起來。注意邊邊有沒有隙縫,不然等等模擬時,水會從旁邊漏下去。
做一個方塊,並將HYBRIDO的發射器指定為他。
發射器設定很簡單。記Jittering要條成1,才不會太規律。
另外Domain流體的結果,會直接影響到後續流體產生的量,所以Domain的Resolution可以調高,但模擬時間就會大幅度的增加了。
也會大量吃掉硬碟空間
請斟酌自己電腦的配備來設定。
接下來將方塊的碰撞從Global Link中拿掉。並添加重力力場。
就可以開始模擬了
模擬的結果如下
(不知為何上傳後流體速度變快了...)
接下來我們把Domain變成cache,之後就可以開始做Splash了。
將Splash的框框包起場景,並依照自己電腦性能,調整數值(Rate可以調更低)
模擬看看。
(模擬前可以在Display面板調整一下顏色,以利於觀察)
出現了前面所提的Splash超出範圍的結果了。
因此做一個K_volume來殺掉出界的力場。
另外還要住一點。就是K_volume的兩側邊界稍微可以比,Domain小一些些。
因為Splash是根據流體變化角度而產生的,因此流體邊界的90度角必定會產生Splash。這樣其實不怎麼好看。
所以就稍微縮小一點點,將邊界的刪除吧。
調整完後,我們就可以正式模擬Splash了。
結果如下
模擬時間和之前的練習比起來久了不少。
在這裡我提出一個減少模擬時間的小偏方。
那就是將Splash的碰撞拿掉。
(此影片中是有碰撞的)
能這麼做是因為Splash繼承了水的加速度,因此能夠在產生的第一瞬間往正確的方向噴發,讓人產生這些水花是有碰撞的錯覺。但這終究是沒碰撞的,如果Splash飛出去後,又再次碰撞到了物件,便會漏餡。所以是否要使用,還是需要評估。
其實現實中的水花如果太過透明,往往在噴發後就不會讓人注意了,尤其不是特寫的話更是如此。所以,如果沒有要追求細節,可以從此處來節省模擬時間。
這是使用比較的影片,可以看到明顯的不同是水花落在平台上時,有沒有停留在平台上的差別。其餘大部分結果都極為相似。
但是流體的模擬時間就少了不少。
P.S.
第三段影片,紫色是兩個影片粒子位置重疊的部分
Splash沒碰撞,依然是很正確的噴發角度
不過如果你用特寫的話,還是難免會看到少量粒子從牆的另外一端穿透出來...............
接下來就是Foam的模擬了。
一樣先將Splash變成Cache,然後點選Foam
Foam不需要規劃空間,可以直接模擬了。
不過有個小問題。
就是現在直接模擬的話,完成後你將會發現,有部分的Foam沉到水底了,有違現實的泡沫。
因此我們要將Foam的重力影響拿掉。(RF2012的Splash和Foam一起模擬的發射器似乎不用這麼做)
方法有兩個,
第一,就是在模擬Foam時,直接把重力從Global中拿掉。
第二個是比較好的做法,把Global全清空,然後到Exclusive Link中重新連接起來。
在這裡,能設定出每個元件可以被那些事物影響。
未來製作複雜的效果時,就常常會用到這種,獨立影響的需求。
例如在同一個空間中,我做了上下相反的重力力場各一。
但是又不想所有物件都受到向上的重力的影響。
就可以使用這個方法。
指定向上重力的影響對象,將想被他影響的元件拉到他底下就好。
而這裡的連結。
1.除了當發射器的方塊外,都要和Domain產生互動,所以全部都接他底下。
而且如果Splash和Foam不接在他底下的話,將不會產生粒子。
2.Splash要被重力和K_volume影響,並和物件產生碰撞
(有的新手會以為Splash底下要接回Domain,其實不必)
3.Foam不需要被重力影響,所以只需要給他碰撞就好。他便會隨著水面漂流。
不過,如果是隨著水面移動的,好像也不用給予碰撞???(待確認)
=======
最後,在模擬前,我們可以先調整一下粒子的壽命時間,來減少粒子量,以免電腦承受不了。(單位是影格)
這樣就可以開始模擬了。
模擬後,我們會得到這個結果
這樣就完成最基本的HYBRIDO流程了。
如果還想要更多泡沫,可以再算一層WaterrLine。
設定上和Foam相同。
結果如下
=================
模擬完後,就開始要使用粒子了。
而這些粒子在專案資料夾中都可以找到
不過仔細看,你會發現裡面並沒有Domain的粒子。
這是因為他放在grid資料夾中,也不是粒子。
如果想要模擬時產生粒子檔的話,就要在模擬前在輸出中心勾起選項。
如此一來模擬時就會產生粒子檔了,但這檔案非常龐大就是了.....
所以通常我們還是會先把Domain的粒子。變成Mesh,輸出來渲染了
當然,其他像是Splash和Foam也都可以變成Mesh,依各專案需求來判斷吧。
==========
那麼,這些粒子如何在max中使用呢。
方法有四個。
1.
安裝RealFlow外掛後,使用PF系統和右邊的選單讀取。
2.使用RealFlow官方的外掛RenderKit
但這似乎只支援mental ray。
另外上述兩個方法,雖說是官方的方法,但是在效能上令人有些擔憂。
3.因此,使用粒子加速渲染器krakatoa就是我們第三種方法。
4.RealFlow與MaxWell Render是同一家公司。所以MaxWell也能將他的粒子渲染出來。不過這個我就沒什麼研究了。
==============
這些在未來渲染篇再慢慢詳述吧。
有興趣的人可以先去網路上找找這些關鍵字。
(渲染篇可難寫了.........)
這次的模擬篇就到這邊了,如有哪邊寫不好,歡迎多多指教。
留言列表