接續上篇

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也能將他的粒子渲染出來。不過這個我就沒什麼研究了。

 

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

 

這些在未來渲染篇再慢慢詳述吧。

有興趣的人可以先去網路上找找這些關鍵字。

 

(渲染篇可難寫了.........)

 

 

這次的模擬篇就到這邊了,如有哪邊寫不好,歡迎多多指教。

 

 

arrow
arrow
    全站熱搜

    修奇 發表在 痞客邦 留言(1) 人氣()