Showing posts with label RealFlow. Show all posts
Showing posts with label RealFlow. Show all posts

2016/07/07

Phoenix FD vs RealFlow Comparison

by Hammer Chen


Developer
Next limit
Chaos Group
price
1995€ *
921.5USD without Dongle *
Package
Standalone software + Connectivity Plugins or
REALFLOW for CINEMA 4D
Phoenix FD for 3ds Max or Maya
UI
Standard UI + node-based Relationship Editor
Tabs and rollouts
Sim Methods
SPH
FLIP (Hybrido)
Grid-based
Fluid solver selections
-DYVERSO solvers
3 Conservation
4 Material Transfer
multi-threading sim
YES
YES
GPU acceleration
solvers
viewport preview
Network simulation
YES, Independent Domain Of Computation

Sim capability
-Small scale liquid and splashs
-Large scale ocean, waves and splashs
- foam, bubbles and mist
-Small scale liquid and splashs
-Large scale ocean, waves and splashs
-foam, bubbles
-Non-Newtonian
Physical Properties
- Surface tension
- Density
- Viscosity
- Vorticity
- Int Pressure, Ext Pressure
- Compressibility
-Surface Tension
-Viscosity (normalized to 0~1)
-Vorticity

Dynamics
- Rigid body (Caronte solver)
- Soft body
- Fibers
passive rigid body interaction only
Emitter
- Circle, square, sphere, linear
- Object
-PHXSource (supporting shape and mesh)
Emission type
- Speed
- fill object
-Inject
-Brush
-initial fill up
Specialized Force / Daemon
-Shetter Daemon
-DSpline daemon
-Crown daemon
-Layered Vortex Daemon
-k Isolated, k volume, k speed Daemon
-Morph, Magic Daemon
-Filter Daemon
-Attractor
-PHXTurbulence
3rd Party
 Plug-ins
-Wet Work
-loSim
-RF_toolfactory

Ocean Mesh
Realwave + spectrum...etc
Automatic mesh extension inside of camera frustum + PhoenixFDOceanTex vector displacement
Stepping control
Min and Max Substeps
Steps per frame
Retime
Time function curve editor
Resimulation
Mesher control
- Speed stretching
- polygon size
- metaballs, Weighted isotropic and Weighted Anisotropic
-Filter: thinning, relaxation, tension, steps
-Preview / Show mesh
-Mode: mesh, ocean, cap, implicit surface and geometry atomosphere
-sampler type: box, linear, spherical
Mesh optimization
Curvature / Camera
Output / storage quality
Import
sd, obj, abc, bin...etc
- all 3dsMax /Maya suport formats
-PRT loader
-vdb, f3d
Export
abc, bin, obj...etc
-PhoenixFD export particles / prt
Renderer
Maxwell

*Please check official website for their local store / sales details.


2016/05/05

Maxwell - style of skymap for water rendering


by Hammer Chen

If you try to render out water with photo HDRI or V-Ray sky, it's not easy to get a clean looking. It is because the ground is always dark or black from those two sources. I like the looking when I was doing a Maxwell preview inside Realflow.

2015/10/19

Beso談RealFlow的DSpline使用技巧(影片逐字稿)


作者:Beso Mzhavanadze
編譯:Hammer Chen

(譯者序:很棒的教學影片,先把初學者的問題點出來,做出雛形,然後再添加細節。用很間單的方法把問題解決,七分多鐘的影片比起許多付費的教學還要更值得推薦)

2015/10/07

RealFlow retime變速操作要點

文 / Hammer Chen

首先至retime介面中,看最後的frame其Y值為多少,記下來,然後Delete expression (預設的速度是用expression表示,我們要先刪除才能手動操作)。這整個調曲線的介面做的很不直覺,左上角的按鈕是增加key,但這裡工具列裡面沒有移動key的icon,取消add key的icon就是移動key,很爛的UI設計。

2015/10/05

Realflow的泡沫以Krakatoa算圖的要點

文 / Hammer Chen

到現在還是不明白為何渲染Realflow的泡沫,流程會如此複雜。不知何時新版本才會變成整合成簡單的算圖流程? 總之若是要以Krakatoa算圖,在Realflow中記得勾選"Compute Vorticity" 計算渦度。 然後在3ds max中以PRT Loader載入粒子,加上KCM Color modifier,然後以下述方式串接(如果不想每次都串接,可把串接方法存成*. kmf檔案),基本的概念就是把vorticity通道內的資料吃進來,然後餵給粒子的顏色。Krakatoa算出來的泡沫最後再與正常的水mesh合成,就產生寫實的、帶有泡沫的動態水了。


2015/09/30

Realflow參數筆記:球內滾動的水

文 / Hammer Chen

筆記一年前做的案子所用到的Realflow相關參數。液體自簡單的circle噴發後,被Vortex甩出,但因為有球的模型阻擋,撞擊出液體的趣味。

Realflow參數筆記:溝渠流動的水

文 / Hammer Chen

筆記一下之前做的案子所用到的Realflow相關參數。k_volume與k_isolate都是要把飄走的粒子殺掉,算是最佳化的工具。

2015/02/23

Realflow常用參數筆記


筆者這兩年做了幾個Realflow的案子,很多關鍵參數幾乎每個案子都需要類似的設定,而這些參數往往是流體美感的關鍵。製作流體經常就是在細節過多,與細節不足之間,模擬時間與專案時程找到平衡。為了加速將來製作效率,以下把參數做筆記:

1. 由3ds max <=>Realflow之間的檔案交換,重點是要確保自3ds max輸出的SD file尺度跟Realflow中是吻合的。以下是個人習慣設定,其他軟體如Maya可能會有不同。

2013/08/19

Realflow 2012 細節表現重要參數(二)


Blend factor混合的程度
RealFlow中流體粒子,周圍是由spheres的metalball組成,這表示粒子的位置會轉換成球體,這些球體會相互影響。如果Blend factor”等於零,那每顆球體就是相互獨立不影響的,這球的大小是受到“Radius”這個參數來控制。請注意“Blend factor” 與 “Radius”互相影響,有了更高的“Blend factors” 球與球之間就會融合在一起,到某的程度時你就會失去細節,但整體的mesh看起來更平滑,因為原本表面的皺折被撫平了。

2013/07/12

IoMelt melting tutorial


IoMelt is a RealFlow plugin written by Ole Lemming, you can use it to create realistic melting effect. IoMelt works like the Filter Daemon in Realflow, it can transfer fill object emitter to container emitter, base on temperature. Because the effect is based on temperature, it dissolve fill object from its edge, can create realistic melting effect. This tutorial assume you have basic knowledge about Realflow.

2013/06/23

Reaflow 2013新增功能介紹

原文:RealFlow 2013 review (from 3D World)
作者:Florian Koebisch 
翻譯:Hammer Chen


Realflow最新版本可能會是市面上最棒的流體與剛體模擬套件

支援的作業系統:Windows / Mac OS X / Linux

功能

  • FLIP & SPH液體解算器
  • 先進的Caronte剛體解算器
  • 節點式的工作流程
  • 支援Alembic
  • 能夠與Maxwell Render動態地整合

2013/03/30

IoWaterBlast and Realflow使用流程


作者:Hammer Chen


水爆(Water Explosion)是常見的流體特效,但是實際製作卻非常困難。 一般直覺上都會認為我只需要一個fill object emitter,再加上一個向外推的force就可以做出水爆炸。

實際上在製作的時候卻沒這麼簡單:問題在產生的流體動態太平均分布,細節太多,沒有條狀的流體。

2012/11/18

Quantum Force參數介紹


編譯:Hammer Chen

簡單說起來 Realflow的力場(Daemon)太僵化了,如果能透過粒子來產生新的力場,例如螺旋的力場或是不斷轉圈圈的力場來擾動流體的話,那就可以發揮無限的想像力來創作流體特效了。不過V-MOTION Quantum Force這個Realflow的外掛有個缺點就是它必須要在一個cube的範圍內產生力場,類似FumeFX那樣。以下提供設置所需要的資訊,包括Scale設置,輸出Particle Flow成Binary的粒子序列檔。

Quantum Force運作原理:
Quantum Force為什麼這個強大是有個根本的原因,它不是可以拿來製作特定的效果,但是可以根據你的需求產生特殊的效果。Quantum Force是根據粒子或是其他物件來產生力場, 讓你可以自行決定力場的位置。 Quantum Force可以提供前所未有的控制力, 你可以自行創建你想要的向量場。

Quantum Force可以採用了叫做grid based memory technology 網格記憶技術, 讓每個cell能夠記憶力場資訊,當有個粒子穿過時,能夠持續地讓力場停留在那個cell中 你也可以設定衰減 任何新的速度都會合併到cell中 然後混合不同的速度,所以你必須要設定一個cube作為cell的範圍(譯者注:類似FumeFX那樣的網格範圍) 當力場的物理參數設定好,你還需要載入binary loader物件,裡面有3ds max來的Particle Flow的粒子,可以提供向量資訊。這些向量能夠影響流體的運動。Quantum Force可以幫助你產生你以前來也沒想過的效果。我們認為這是市場上最強大的Realflow外掛!

Resolution 解析度
代表了cell的數目,越高就會越精確的力場,但計算時間會變長。 數值50很適合剛開始的時候使用,當需要的時候你可以提高數值。

50 x 50 x 50 = 125,000 Grid Cells

力場的類型:
1. Accelerate加速
binary粒子的向量會用來加速目標粒子

2. Push 推力
並不會加速目標粒子,當接觸到粒子,只會推動它。只有當binary接觸到時目標粒子才會被推動,當沒接觸時,就不會影響目標粒子。

3. Pull 拉力
binary粒子會給予目標粒子速度,然後持續地牽引。當你使用Drag Force時這個效果會減低。

4. Attract 吸引力
 binary粒子會吸引目標粒子

5. Heat 加熱
會加熱目標粒子

6. True Heat 真實加熱
會加熱目標粒子,且會忽略grid cells

力場的行為:
Range範圍:
這個參數讓你隨機化力場 ,可以產生更自然寫實的效果

Range Factor Variation範圍因子隨機化
讓你根據x個frame隨機化

Falloff衰減
1代表線性衰減
10代表數值變強,到最末端時才減到最小
0.1 代表衰減的很快

Decay強度衰減
這個數值代表了向量場的衰減程度
0代表沒有衰減
1代表完全衰減。當binary穿越過下個cell時,不會把能量留下來



自3ds max輸出Particle Flow成為Binary粒子時:
Padding Size設定為0
File Frame Format設定為 name_#.ext

輸出名稱的類型一定要設定正確 否則導入到Realflow中會讀不到

3Ds max 與Realflow的尺度設置:
如果你希望RF中的參數維持預設的1, 那麼你的3DS MAX的單位就要設定為metric-meters, system unit設定為1unit=1meter, 將grid and snap settings的home grid設定為1m。這樣就可以了!

官方教學影片:



[相關資訊]

2012/11/03

Realflow 2012 細節表現重要參數(一)



編譯: Hammer Chen

Polygon size 多邊形的大小
這是關於整個流體表面最重要的參數,因為會影響到流體最終大小。越小的數值會產生越高解析度,越多的多邊形。越高的解析度,就能顯示越多細節。


請注意!流體的圓邊或是厚重的邊界無法用縮小多邊形的大小來解決。如果你希望產生比較薄的流體,你應該要調整Tension,filter等參數。

Resolution 解析度
增加這個參數你可以提昇粒子的數目,所以這也是個重要參數。解析度跟場景的尺度,發射器的尺度有關。但它也會影響流體的質量,所以也受到密度Density參數所影響。預設值為1.0 意思是在1 x 1 x 1的單位體積內填滿1,000顆粒子,這時質量剛剛好就是1,000 kg。換句話說,如果你把解析度提昇,個別的粒子質量就會隨之下降。你可以到Statistics > Particle mass查看粒子質量。

當你提昇“Resolution”解析度時,粒子的質量會明顯地下降,所以這時候你就必須要提昇Density密度,才能讓粒子的質量維持在1.0。 這是很重要的觀念。

Interpolation 差補法
有時候你可以不需要整個場景重新模擬就可以提昇場景的粒子數目。這個功能讓你可以產生更多粒子,根據現有快取的BIN file序列檔產生,但是不完全只是這樣,當初設計的個參數的目的是要當解析度低的frame會停住,然後調整到高的解析度,然後再進行計算。

Realflow會分析流體,然後會把新的粒子放在正確的空間位置,新的粒子並不只是填滿間隔而已,這些新的粒子會滿足流體力學方程式。 RealFlow提供三種差補選項: “None”、“Local” 與 “Global”。
由左至右: None,Local,Global


“Local”會在現有的流體雲中添加新的粒子,精確度很高。請記住還是有可能有些粒子無法填入。用這種補插法的優點是流體能夠精確地維持原本的形狀。

“Global” 是當你不需要煩惱流體原本的形狀使用的,新的粒子的位置會有比較大的模糊空間(比較不精確) 讓邊界比較模糊。這很適合大量流體,比方說水槽中的水。

另外一點很重要,是差補選項與流體/物件之間的交互作用,當流體很接近物件時,新的粒子可能會出現在物件的內部。 RealFlow不會檢查補差粒子與物件的碰撞,只會檢查流體與物件的碰撞。


“MIN substeps”最小的substeps
 增加這個數值模擬時間會變長,但是可以提昇精確度,解決不穩定的問題。當你發現有不穩定的問題時,你可以將MIN substeps提高至5~10左右,如果還是有問題,可以再稍微增加這個數值。

[相關資訊]
The Science of Fluid Sims流體模擬背後的科學

RealFlow重要的Daemon參數介紹

2012/09/13

RealFlow重要的Daemon參數介紹


圖片取自這裡

編譯:Hammer Chen


前言:

RealFlow 2012提供很多稱為Daemon的東西, 你可以把它視為3ds Max粒子系統的力場(Sapce Wrap), 透過這些力場, 你可以"雕塑"出特定的形狀, 你可以做出花形狀的水, 人臉形狀的水或是水做的裙子. 透過Filter Daemon, 你甚至可以做出複雜的Event效果 (不需要寫script), 讓粒子由狀態A變到狀態B. 如此你就可以做出花變成裙子這類的動態效果.

----以下為翻譯----

1. Filter Daemon
這個新的daemon提供很方便的方式讓你將粒子由一個emitter轉換到另一個. 在沒有這個功能以前 完全要靠script才能達成. 現在你可以用這個內建的功能更快做出效果, 儘管有時候還是會用到script. filter daemon需要兩個emitter: 一個是來源, 一個是目標. 你可以選擇任何emitter作為目標 .

為了流程單純, 建議你使用container emitter作為目標, 因為這個container emitter可以作為一個空的容器, 來切換場景中的來源粒子. (譯者註:概念類似Particle Flow由Event A到Event B)

2. Container Emitter
這個容器其實根本就不算什麼發射器, 只是為了拿來作為某種容器, 用來接收其他來源的粒子. 一般會與Filter daemon協同使用. 有了Filter daemon你可以指定不同的狀態, 讓粒子由一個發射器轉換到container中, 這樣的流程讓你可以輕易地產生泡沫或是水花, 將這些粒子分開渲染.

3. Morph Daemon
這個daemon主要是讓使用者可以產生變形特效, 而不需要使用技巧或是偷吃步---使用多個daemon或是script...等等. 這個daemon具有兩個模式: 一個為“Approach” 逼近, 另外一個為涵蓋 “Cover”. 大部分的參數只在approach模式下有效.

Approach mode 逼近模式---也就是控制粒子如何逼近目標物體, 提供好幾種選擇, 主要有Branching分支, 最大數目的目標 .

Cover mode 覆蓋模式控制當粒子到達目標物件後 粒子如何運動, 主要的控制有”Cover speed”

使用限制
當物件的解析度過高, 有很多面時, 特別是在cover的模式速度會變慢, 尤其是當你將品質切換到高品質時, 當品質設定為中等時, 適用於大部分情況.


4. Magic Daemon
Magic是一個很強大的daemon 作用就像是一個morphing的引擎, 表示可以將物件拉到另外一個物件的表面, 在過程中, 你可以套用其他的daemon 提供支援或是擾動的外力, 這些外力也會與Magic daemon互動, 幫助你產生更加生動, 有趣的模擬. 這個功能只能用在粒子類型的流體.

另外一種用法是動態的magic強度, 可以做出反彈與吸引的效果, 特別是當與Python scripts一起使用的時候, 這個daemon可以做出驚人的結果. 教你一個很有用的小技巧: 就是結合drag force daemon與 Magic daemon, 就會得到快速的粒子聚合效果, 而且可以避免繞行的問題(orbiting effects) .這個daemon是整體的立場, 無法縮放或是套用到局部. 請注意Magic daemon提供新的功能, 就是逼近強度(Approach strength)與逃離強度(Escape strength), 你甚至可以用bitmaps來控制, 不一定要用固定的數值.

影響(Affect)
你可以用兩種因子影響粒子, 一個是Force另一個是Velocity. 第一個是外力, 會產生加速效果, 後者只改變粒子速度, 並不產生加速度.

逼近強度(Approach strength)
為了要控制力場, 讓粒子能夠被吸引到目標物件上面, 就需要這個參數. 越強的數值會產生明顯的跑過頭問題(overshoot) , 也就是粒子會遠離目標物, 然後又再次被吸引, 這會產生動態的搖擺效果, 要看Approach strength而定, 與其使用固定的數值, 你也可以用貼圖, 定義某些地方有比較強或是比較弱的吸引力.

脫離強度(Escape strength)
一般來說我們會使用比Approach strength更高的強度, 讓粒子迅速地吸引到目標物體上, 但可能會導致跑過頭的問題. 有了Escape strength 就可以有效地解決這問題, 因為它是吸引力的反作用力, 數值高的話, 你可能會發現粒子環繞物件的效果 .
跑過頭的粒子或是透過高的Escape strength把粒子拉回來

Magic Mode
這個daemon提供兩種模式, 一種是Nearest Face 最接近的面, 另一種是Random Fac隨機的面

5. Surface Tension Daemon (表面張力)
表面張力指能用在粒子為基礎的流體, 這個凝聚力會作用在流體的表面, 你會發現到標準的發射器也提供表面張力這個參數. 基本上跟這個daemon的屬性沒有不同, 這個daemon可以整體地影響整個流體, 可以避免流體分裂成很小的水珠, 這個功能稱為“Balanced”.

表面張力強化了流體聚集的趨勢, 很類似黏度(viscosity) , 這會產生球狀的水珠或是典型的水龍頭的滴水效果. 這個daemon很適合用在製作水銀效果上, 在畫面中兩個表面張力以碟型呈現, 具有不同尺寸, 可是因為這個daemon的作用是整體的, 所以大小並不會影響效果.

強度(Strength)
定義表面張力的強度: 正值與負值都可以.

平衡(Balanced)
可以選擇Yes或是No
如果選Yes, 那麼這個力場就會更加平均到整體的流體上, 避免流體太快分裂成小水珠.


6. Attractor Daemon
這是最常用的daemons , 很適合拿來塑型您的流體, 加強水花或是製作著名的水舞效果, 藉由對粒子的吸引或是排斥產生動態又平衡的效果. 這個daemon會把粒子吸引到中心, 負值則是會排斥粒子, 越接近中心的力場會越強烈.

這個daemon也可以拿來用在局部影響形狀上, 動態的attractors也可以用在產生創意的流體形狀表現上.

Attractor type吸引類型
這個daemon提供了三種不同的類型: 球體, 軸線與星球(Planetary) . 球體是預設的類型, 軸線產生沿著一條線的力場, 星球是在daemon的周圍產生一個球體, 在球體內部力場是線性的, 可以模擬出星球的吸引力, 由星球的內部延伸到外太空.


7. Object Field Daemon
這個東西很類似magic daemon, 但還是有兩點根本上的不同.
Object field使用的是vertices來吸引粒子, 而不是使用面來吸引粒子. 你可以指定物件的某部分吸引粒子. 跟magic相比, 這個daemon無法得到高品質, 但你還是可以產生有趣的效果, 例如負值可以模擬出排斥的力場, 或是高的表面張力 (大約為50.0).


8. Noise Field Daemon
wind daemon就有提供Noise的功能了, 而這個Noise Daemon則是提供你更加寫實, 隨機的力場. 這個力場可以用來擾動粒子, 用在產生星雲之類的效果, 或是模擬空氣中的擾動.


9. DSpline Daemon
DSpline是個複雜的daemon, 具有許多設定, 可以用在許多地方, 很類似RealFlow的spline emitter . DSpline獨特地結合了不同方向的力場, 讓你可以自由地產生各種的漩渦效果, 例如控制點(CP)提供了個別的每個區域定義力場的功能, 你甚至可以添加新的控制點. 當然, 這些控制點可以設定動畫, 但是建議你利用鏈結的Null objects來控制它, 不要直接對DSpline的每個節點設定.



10. Layered Vortex Daemon
這個daemon會對不同的層作用, 每個層都含有獨立的votex參數, 針對不同區域的粒子, 具有不同的速度與方向的旋轉. 就很像木星上面的氣體圖案那樣, 你可以用這個daemon做出相同的效果, 比較接近兩極的地方旋轉的比較赤道的地方要快, 產生一種稱為prolate spheroid(長球體)的圖案.

是可以在Node > Scale更改這個daemon的尺寸, 但是不建議你這樣做, 所有的參數都必須在“Layered Vortex”底下調整, 因為能夠直接影響到力場. 這個daemon具有連成一線的點的特性 , 每次你選取一個層, 不同的分段就會顯示出來, 包含區域的影響範圍.


11. Vortex Daemon
有了vortex daemon你可以產生沿著空間中的某點旋轉效果, 這個daemon會沿著垂直的軸心產生力場. 這兩種力可以獨力地調整, 提供兩種模式“Classic” 與“Complex”. Complex會比較貼近現實 , 適合用來製作類似龍捲風的結構, 當然vortex daemon可以限制其範圍, 如果你已勾選bounded就不能設定縮放(Node > Scale) , 請在vortex panel選單裡面調整其設定.


12. Wind Daemon
Noise space scale
數值越高 就越多擾流

Noise的時間尺度
你可以利用這個參數輕易地設定動態擾流 0等於沒有動態, 1.0 則表示模擬的時間.


13. k Isolated Daemon 殺掉孤立的粒子
這個daemon會刪除所有沒有相鄰粒子的粒子(孤立的粒子),在指定的時間內將之殺掉, 因為獨立的粒子會顯著地拖慢模擬時間.


14. Limbo Daemon 中間狀態
這個daemon會產生兩個虛擬的平行平面, 當粒子接近時會被吸引過去, 然後在這兩個平面間擺盪.

15. Ellipsoid Force Daemon橢圓力
這個daemon會根據粒子的速度來加速或是減速粒子, 大部分可以用來模擬加壓的液體或是氣體. 請避免使用過高的數值.

Min velocity
粒子小於最小速度時, 就會套用最小增壓Min gain 的設置

Min gain
當粒子的速度小於最小速度時, 就會使用這個數值當做它的加速度

Max velocity
當粒子大於Max velocity時, 就會套用最大增壓Max gain的設定

Max gain
當粒子速度大於最大速度, 就會套用最大增壓的數值, 作為加速度

16. Drag Force Daemon阻力
這個daemon模擬出外部的空氣阻力, 拉慢快速移動的粒子. 大部分會應用在爆炸效果, 如果你沒有drag force 阻力的話, 爆炸就會持續地擴張. 阻力的強度一般是在0~1之間, 你也可以調著更高, 可以做出粒子融化的感覺, 數值超過1就會讓粒子顯著變慢 .

shield effect 防護罩效果會影響到一縷流體的前端粒子, 將之拖慢速度, 產生常見的防護罩效果. 速度越高甚至會讓整個粒子停止移動, 當數值大於1時會產生不穩定的粒子, 建議你開啟限制範圍(bounded) 才能提昇穩定度.


17. Sheeter Daemon 填補粒子
在高速移動的粒子你一定會遇到產生你不想要的破洞問題, 看起來不好看, 有辦法可以減少這些破洞的產生, 例如增加表面張力“Surface tension” 或是“Viscosity”黏度, 其他方法如使用drag force daemon阻力或是高的“Friction”摩擦力設定, 但這些方法都有個共通缺點: 都對流體的外觀有巨大影響, 如果粒子的速度過高, 再大的阻力也都沒有幫助!

越高的速度對流體產生越多的洞

為了要避免稱生洞, 並想要產生美麗的, 薄的片狀流體, RealFlow新增了一個叫做Sheeter daemon ,它能夠偵測到破洞, 然後產生新的粒子來填補它. 你不需要增加emitter的Resolution 這樣你就可以產生平順的水流, 很適合用在高速與慢速模擬, 或是流體與粒子的碰撞. Sheeter daemon運算速度很快, 精確, 讓流體變穩定, 很容易使用, 你可以控制整個過程, 只需要少數的設定即可.

Max cavity size = 1.0 與 Max cavity size = 2.0

Cavities detection ratio = 0.25 與Cavities detection ratio = 0.75



[相關資訊]

2012/09/04

RealFlow 2012 HYBRIDO參數調校

HYBRIDO

編譯:Hammer Chen

HYBRIDO是首次在RealFlow 5推出的流體技術, 全名為『HYBrid laRge dImension LiquiD sOlver』.自從RealFlow 5推出以來, 經過大幅改版與改良, 新版的RealFlow 2013變得更好.

在Realflow 5以前, 你很難模擬大尺度流體. 主要問題是particle-based的方法來解算的流體方程式. 這個方法適合拿來製作具有水花細節, 但是其實流體的核心(譯者註:所謂的核心就是非浪花的流體, 就算核心)並不需要有太多細節. 你卻仍然需要大量粒子, 可以進行製作, 只是說模擬時間過長.

最好的, 最有效的方式是核心模擬採用grid-based. 這個方法無法產生足夠細節---例如浪花, 如果你想用grid來產生浪花, 你可能需要超級高解析度的grid來產生浪花的細節.

許多二級細節 (浪花, 煙霧..等)

有個辦法! 就是結合particle-based 與 grid-based 算法的優點. 也就是混合的方式, 也就是利用grid-based 方法來產生核心流體, 然後用particle-based產生浪花細節.

HYBRIDO是很嶄新的技術, 結合了grid-based與 particle-based的手法, 用來產生複雜的, 大尺度的流體效果. 其他特效, 也就是二級效果, 例如: 泡沫, 煙霧...等細節或是表面的細節(displacement), 也可以用這個技術產生.

HYBRIDO (HYBrid larRge dImension LiquiD sOlver) 是全新的複雜大型水體解算的方法, 這個科技包含了自動產生二級水花, 泡沫與霧氣粒子. 有了HYBRIDO , 你可以模擬洪水, 海洋, 這些是傳統的Realflow particle emitter難以製作的流體.

RealFlow傳統的emitter很適合用在高細節的流體模擬, 具有小水花. 但是, 這很難用在大尺度的專案上. 常見的洪水流過街道的場面就是一個例子. 在以前如果你要模擬這樣的場景, 自動產生水花粒子必須要透過Python腳本並且要設定好壓力或是速度.


有了HYBRIDO, 上述問題都成為了歷史. 流體藝術家現在可以模擬驚人的畫面, 例如海上的破浪, 大型的洪水, 浪花打在沿岸上, 或是漁船在波濤洶湧的海上航行. RealFlow能夠計算浪花, 泡沫, 煙霧產生的條件, 然後自動計算這些粒子. 二級的粒子能夠靠網絡, 以後製的方法產生. 有了這個先進功能, 你可以產生上百萬個粒子, 發揮您算圖農場的威力.

Domains and Grids
domain就是你大尺度流體模擬發生的地方. RealFlow傳統的fluid emitter是自由無限制的, 但是Grid類型的模擬就限制在grid裡面 . 傳統的Realflow粒子是在一個幾乎無限制的空間中模擬, 不需要任何邊界, 所以這類的RealFlow流體稱為Smoothed Particle Hydrodynamics (SPH) , 很適合用在 中型範圍的專案上.

對於大尺度的模擬SPH就不是個很適當的方案了, 因為會需要大量的粒子, 而這些粒子其實並不需要很精確. SPH另外一個缺點是模擬速度, 如果採用SPH類型的粒子, 你會需要大量的粒子去填充大量的體積 (例如海洋). 這樣很不實際, 相對說來, RealFlow的grid的模擬方式速度就很快, 很適合用在這種狀況.

grid的解析度與傳統的流體解析度有所不同. 傳統的解析度會直接影響粒子的數目, 但是grid domain的解析度只會間接地影響粒子數目, 越高的cell (解析度, 模擬就會越精確.

如果你很熟悉RealFlow標準的emitter ,你會注意到它與Hybrido fluid的差異. 這跟Hybrido的grid cells特性有關. 標準的SPH-based fluids能提供更多的控制選項, 因為需要更多細節, 請看以下比較 兩者具有相同數量的粒子, 但結果完全不同:
左邊是Grid-based, 右邊是Particle-based


Density密度
密度=質量/體積

純水的密度大約為1.000 kg • m-3. 密度是用來模擬流體重量感, 例如酒精, 鹽水, 油或是液態金屬.

有點很重要, 改變密度並不會影響流體的動態行為. 也就是說, 模擬結果會一模一樣, 即便你把密度改為非常高的數值, 因為RealFlow grid fluids採用的是kinematic viscosity,而不是 dynamic viscosity.

Viscosity粘度
如果是grid-based fluids 粘性直接與密度有關, 雖然不會讓用戶察覺RealFlow採用 是kinematic viscosity . 根據流體的密度來決定, 動態黏度是計算流體內部摩擦力.

低粘性的流體如酒精, 溶劑或是水. 高粘性的物質如蜂蜜, 原油或是糖漿. 軟體所允許粘性極限小的是水(approx. 0.000001 m2 • s-1) , 最大則是融化的金屬(approx. 1 m2 • s-1).

Compressibility壓縮性
這個參數由0-1 ,沒有單位. 主要會影響流體的彈性, 數值0表示流體不能被壓縮, 流體會盡可能地緊貼在一起, 數值為0時就完全沒有彈性, 但會讓計算時間變長, 因為解算器必須要檢查壓縮的條件是否成立.

數值=1時, 這是最快速的方法, 你會清楚地看到反彈與擾動. 預設值為0.5 很適合用在水.

Particle sampling粒子採樣
這個參數能決定每個cell粒子的數目, 越高的數值你就能產生越好的splash浪花效果, 以及更好的grid fluid的呈現結果. 這個數值要乘以三次方才等於實際產生的粒子數目, 例如3->3 * 3 * 3 = 27 , 雖然這個參數能夠提昇模擬結果, 但請記住Resolution才是最關鍵的參數.

Grid Fluid Emitter
這很類似Realflow傳統的emitter 所以有經驗的用戶能夠很輕易地上手, 但是有些設定則是完全不同. 例如Resolution”, “Density” 與 “Viscosity”是位於grid fluid domain.

Stream噴射
可以切換發射源為持續發射

Jittering抖動
RealFlow發射粒子是根據grid的位置, 因此會得到很規則的圖案. 這個參數會隨機移動粒子, 消除過度明顯的圖案. 數值為0-1.

Grid Mesh
grid mesh完全是針對新的grid fluid solver所設計, 因為需要完全不同的產生mesh的流體, 所以就必須引進新方法, 這個grid mesh能夠在core fluid與secondary emitters (splash 和 foam)之間無縫地產生mesh.

grid mesh並不是仰賴粒子所計算的, 儘管如此grid fluid particles可以跟標準的mesh引擎一起使用產生3D立體的流體, 你可以添加particle-based fluids到grid mesh中, 所以結合了grid-based fluid 與 particle-based fluids這兩者. 唯一的限制是: 一個grid domain只能有一個grid mesh.

Grid meshes通常需要某種程度的過濾來對鋸齒狀的邊做處理, 平滑畫. 為什麼會產生粗糙的流體呢? 是因為grid doman本身就是一格一格的, 而grid的細切越多, 就能產生越平滑的mesh, 所以就是增加grid mesh的Resolution. 另一個辦法是用Relaxation放鬆, 另外一種是用displacement maps, 但只適用於海面.

Filter過濾
你可以選YES或是No. 這個功能速度很快, 不會增加太多mesh產生的時間, 絕對值得花時間增加這道手續.

Relaxation放鬆
這個功能會拉伸mesh形狀, 產生更自然的mesh, 結果會讓mesh看起來更像水, 更寫實. 放鬆讓你可以用較低解析度的emitter產生高品質的mesh. 預設的數值調整的還不錯, 幾乎就是你會想用的數值 . 這個參數十分敏感, 與其改變其強度, 不如提高或是降低Steps. 雖然放鬆功能很有效還是有其極限的, 例如只有幾百個或是幾千個粒子的emitter, 就不適合產生完美的mesh, 即便是你使用filter也一樣.

Tension張力
要產生寫實的流體就必須要小心地使用放鬆這個參數. 用過頭的話會導致很尖銳不自然的邊 整個mesh還會萎縮. 數值越高 mesh的細節就越少, 但有時候你就是希望它細節少, 例如水銀或是液態金屬的表現, 具有高的表面張力. 再者, 類似海綿的組織, 也是設定高Steps與 Relaxation的好時機.

如果你看到不想要的, 高頻的構造出現在你的mesh上面, 便適合啟動這種filter . Tesion這個數值會拉平表面, 移除那些條紋, 類似於Relaxation. 這參數對Steps的設置也很敏感, 一般說來, 高頻的圖案很少會看到, 所以 Tension這個filter也很少使用.

Steps計算步數
每個filter參數都會受到這個參數所影響. 越高的強度越會影響“Relaxation” 與 “Tension” ,會導致過度過濾的mesh. 數值超過120會產生不寫實的結果, 除非你有想要做這特殊效果. 另一個問題是非常高的設定會減少細節, 預設數值是64 對大部分的場景都很足夠. 但是你還是可以試試看低一點或是高一點的數值, 在大部分狀況下32-96的範圍都很適合.




[相關資訊]