其他教學連結

http://tommy20015.pixnet.net/blog/category/list/1098084

本教學所使用的版本為RealFlow2012,操作方法和2013沒有太大差別,各位看倌可以安心食用。

此範例使用的是4.5年前的筆電,所以我相信各位電腦應該都跑得動。


 

關於RealWave,官方文件221~243有更詳細的介紹

  

RealWave,原本是一套獨立的水面模擬軟體,於RealFlow4的時後成為內建功能。

他可以快速建立基本水面,並添加基本波型,能與物體碰撞產生漣漪,同時在碰撞接觸點產生粒子,模擬出次級粒子水花。

而這些水花粒子以及RF內的基本粒子,都可以和水面產生碰撞,再次造成漣漪,以及讓粒子漂在水面上,產生非常自然的水面效果。

(當然,這前提是必須要有面數夠高的水面)

  

但RealWave經過RF三次改版,僅有RF4到5的時候,將一些不穩定的功能移除掉(但我覺得被拿掉的功能很好用...),幾乎都沒有重大突破,有幾個問題一直沒解決,使得RealWave在RF定位就處於比較雞肋的狀態:

 

1.內建水面固定是四邊形的,所以不管在模擬時,或是丟到3D軟體算圖時,都要處理這問題。是有聽說可以外部匯入平面當水面,但是我沒試過。

 

2.CPU使用率不高,大部份使用者模擬時都會發現,CUP使用率怎麼這麼低,這似乎牽扯到RealWave的演算法支不支援多核心的問題。

 

3.不能模擬捲浪,

由於RealWave是基於置換貼圖(Displacement map)的原理來產生水面,因此RealWave無法產生捲浪,因為捲浪會在同一個點的重直軸向中包含複數的資料,而置換貼圖無法用顏色來描述這個狀況。所以,其實RealWave有很多的效果是辦不到的,例如想要做海嘯席捲而來的效果,或是衝浪的比賽。這些場面在RF中只能仰賴HYBRIDO來製作,製作起來並不會輕鬆到哪,也許改用其他軟體會比較方便。

本圖片來自 http://daman.cool3c.com/node/60288


*註:在RF2013中,新增了「將RealWave的水面細節,投射在Hybrido上」的功能,但這算是Hybrido的功能強化,RealWave本質並沒有改良。

延伸閱讀 RealFlow2013 Tutorial Hybrido as RealWave

http://tutorials.cgrecord.net/2014/02/realflow2013-tutorial-hybrido-as.html


 

現在大部分是選擇用來製作船隻航行模擬的水面漣漪與泡沫,本篇也以此為主題,做一個最簡單的範例,並在過程中分享我的使用心得。

  

 

首先我們打開RealFlow,找到RealWave的按鈕,他位於攝影機旁邊,點開有三個項目,我們點選第一個,進行基本水面的建立。

 

在一般狀況下,我們只需調整最基本的參數,水面的大小和Polygon size

Polygon size會直接影響水面的細節,越小精度越高,理所當地,模擬時間也會更久。

 

我們得到最基本的水面後,要添加波型

內建已經有物件碰撞產生漣漪的設定了,我們只需要針對專案添加適合的波型即可(較舊版本沒有內建,需要自行添加)

這裡選擇的是Fractal,可自型試試看其他的波型。

(這些波型可以一次給予多種波型 ,他們將進型混合。)

 給予波型之後,還必須按下"Reset"才能產生效果

 水面的參數大都保持預設即可,通常我們會編輯的,只有Weight,這數值越強,波型效果也就越強烈,但也可能強到蓋過其他波型的產生。

Object interaction global裡比較有機會被更動的參數是物件推擠產生漣漪的速度。

 我們在水面中放一顆球,並設Key使之移動,為了讓漣漪變化多一些,我們讓球體在水面上蛇行。

設定完後就可以直接模擬了

成果如下,我們可以看到水面的效果非常的優秀。

 接下來就是加入物體碰撞水面時產生的水花。


我們點選Object,選取球體,告訴軟體我們要拿球體和水面碰撞產生水花。

 當粒子和RealWave有互動關係時,在粒子編輯區域就會新增這RW Particle Ineraction這個面板,主要是設定粒子與水面的互動關係

RW_Object_Splash則是ObjectSplash自身的控制面板。

這時候我們再添加一些基本力場,重力和kill,然後我們再次模擬看看,

這是模擬的結果,可以看到粒子並沒有漂在水面上。如果我們是純粹要做水花,那如此就可以了,

但我們是要做航行後的拖尾,這樣就有問題了。

另外,我們可以看到漣漪的細節更多了,這是因為粒子落在水面上時,再次產生了漣漪。

如要將粒子留在水的表面上,在RW粒子交互面板上,我們將設定改成Place

  

粒子給予水面的Hit force,會造成水面二次漣漪,雖然效果非常棒,但如果水面的面數不夠多的時候,效果會很差,

而且我們打算將粒子留在水面上,這樣的話,粒子會不斷的在水面上給予水面力量,使水面不停的抖動。

 

如果想要關掉,就把他設置成0即可。

 

 這個參數控制了粒子在噴出時,會繼承多少碰撞物的速度,1代表100%,如果我們在這裡設置1,等等粒子落在水面上後,依然會胡亂的往前衝。

將之設定成0.1

  

這時我們再模擬看看 ,

奇怪?剛剛不是把粒子繼承速度降到0.1嗎,為何還是有一些粒子會亂衝呢?

仔細看,其實那些往前衝的粒子,是落在水面上後,再一次被球體撞擊的結果。

另外,雖然這次的範例並不明顯,但放大後並仔細觀察,球體和水面碰撞後,球體的內側也產生了粒子,

這些粒子會堆積在模型內,不斷的和球體產生碰撞,增加了模擬時間。

現在模擬時間為3:31,而本文的最終效果是2:16

才一顆球,時間卻差了一分鐘,未來使用大型船隻的話,時間差距將更為龐大

 

因此,我們在Exclusive Links中重新連結,不讓球體和粒子產生碰撞。

 

再模擬一次,這就是我們要的效果了。

這些粒子同樣可以用包面的方式包成mesh,雖然這次水上的泡沫不太需要包面,但如果是做水花,就需要包了。

 

最後,我們回到MAX,可以以sd檔匯入的方式,在專案資料夾的objects資料夾中,找到我們模擬好的水面

至於粒子,就和先前幾篇介紹過的一樣,能透過RF外掛或是PF,甚至krakatoa方式導入。

 

 這次的簡易教學,到此結束,謝謝收看!!

 


 RealWave第三個選項crest splash,是可以根據海浪浪尖高度產生粒子,是用來模擬大海上浪尖的漂浮泡沫的,有機會再來聊聊  


 

 

補充一個小技巧,

有一次在模擬船隻航行時,粒子效果一直很不滿意,做不出八字型的擴散,非常苦惱

突發奇想在船之前方綁一個普通的粒子發射器,朝著船頭發射,讓船頭自己撞開粒子,最後呈現出八字狀。

意外成功!!
 

不過粒子被推開的幅度有點大,變成以側面展開的幅度太大,所以又給了一些風力讓粒子往後吹。結果就如下

 

這告訴我們不要拘泥所有效果都要自然模擬出來的,有時候用點偷吃步的做法,真的假的混在一起,可以又快又好!

 

 

 

 

arrow
arrow
    全站熱搜

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