2011年5月18日 星期三

Naiad 0.5.5 流體軟體功能介紹


電影"阿凡達"所使用的流體特效軟體----Naiad提供物理解算器與模擬架構 能夠產生許多種動態模擬, 包含了:
  • 液體
  • 大量的水體
  • 破碎的浪花
  • 水花與泡沫
  • 精確的黏稠液體的彎曲 旋轉等變形動態
  • 高度的控制力 但是還是保留了流體的真實動態
  • 氣體
  • 火焰
  • 煙霧
  • 爆破
  • 全雙向的剛體對流體的物理解算
Naiad不僅僅是個軟體套件, 它還是:
  • 您可以用eprsseion來描述模擬 透過Naiad Graph的介面
  • Naiad提供您外掛的API 讓用戶在Naiad Graph裡面可以撰寫客製化的節點
  • 這套工具可以產生透過Naiad Interface來讀取Naiad Graph產生的資料進行模擬
  • 開放式的軟體程式碼(open-source) 讓您以3D GUI互動替建構Naiad Graph
  • 標準的檔案格式 儲存Naiad模擬出來的結果 稱為EMP格式

以下介紹各元件的主要功能:

NAIAD TIME-STEP GRAPH
這是NAIAD的核心架構 讓用戶能夠處理在時間軸上要模擬的動畫

上圖表示 粒子與液體的時間關係圖 用Naiad Studio GUI模組表現出來

在Naiad Graph裡面的每個節點都稱為Naiad Operator操作子, 總共有兩種操作子BodyOps與 FieldOps BodyOps用來產生變化, 或是終止物件. 而FieldOps則是用來處理3D力場, 例如速度, 密度或是壓力.

連結每個操作子稱為feed, 被稱為feed就暗示了它傳輸了各個操作子的資料.

THE NAIAD INTERFACE
為了呈現Naiad graph, 我們必須要有某種語言來建構介面, 這就是Naiad Interface存在的目的, 用來描述Naiad graph介面, 不論你是用怎樣的解算器.

有兩種類型
1. Naiad Interface file (.ni)介面檔案 這個文字檔包含了Naiad Graph-building指令 你可以把.ni的檔案當成RenderMan® RIB檔的模擬版.
2. Naiad Interface (Ni) API 這個跟.ni指令是一樣的 差別在於它有用C++ API包裹起來Naiad Interface API比.ni檔案要更強大, 因為它允許讀取場景的資訊 , 而.ni是單向的讀取就沒辦法這樣做. 撰寫Naiad plug-ins (用戶的Ops)還需要Naiad Interface API, 而使用API則需要Naiad授權. 你可以把Naiad Interface當成模擬版的RenderMan® API©. 在Naiad 1.0版推出之前Naiad Interface可以完全支援Python.

NAIAD軟體
有兩種版本 一個是命令列的"naiad" 另外一個是"Naiad Studio", 這是互動式圖形建構的GUI 開放碼的版本.

Naiad command-line solver會讀取.ni檔案 執行Naiad Graph描述的模擬內容
輸出的通常是EMP檔案格式

是套開放碼 .ni檔案 亦可進行互動模擬 這是用來測試/偵錯Naiad Graph的好方法

The EMP File Format
EMP (Exotic Matter Pack)檔案格式儲存了Naiad bodies資料, 目前是封閉的檔案格式, 因此我們可以修改它而不影響相容性.

Water character from Igor Zanic on Vimeo.

Exoticmatter NAIAD Ship - Ocean from Igor Zanic on Vimeo.

Exoticmatter NAIAD City flood from Igor Zanic on Vimeo.

詳情請洽奇銳科技 (02)2557-3321

沒有留言: