2011/05/10

Smoke, fire and explosion火焰,煙霧,爆破特效參考


時候我們在調特效的時候追求寫實的效果, 但是什麼是真實呢? 像FumeFX這種有上百個參數如果隨意排列組合調出來大概也調不出來, 所以還是要以真實的照片當作參考; 可是有時候並不是軟體使用的人笨, 而是軟體本身的侷限就無法達到完全真實.

如果仔細查看真實的火焰, 煙霧或是爆炸的照片就會發現, 真實世界裡面的特效都具有無窮鏡的細節, 這些細節幾乎是無法用CG電腦模擬出來的; 或者是說, 為了追求那樣的細節, 必須要花費上百G甚至上千T的快取資料來產生該有的細節.

以實用的角度來說, 只要達到讓人信服的細節就夠了吧. 例如上圖筆者以約2GB的cache用PhoenixFD產生的煙霧, 爆炸. 要有更多細節其實也不是不行, 但是需要更多的快取, 更久的模擬時間, 考驗大家的耐心了~

這邊整理了收集的真實煙霧, 火焰, 爆破的照片當作日後製作上的參考:

Smoke 煙霧























fire 火焰



















explosion爆破



























FumeFX做出的效果










Phoenix FD做出的效果



[相關文章]


2011/05/01

Tutorial: tearing cloth in 3ds max 2011


In this quick and concise video tutorial I will show you some of tips & tricks when creating realistic tearing cloth in 3ds max 2011. This is for advanced user, no plugin required but to tweak for better results, we will use SuperMesher (optional) in this video.

You might find 3ds max 2011's Garment Maker unstable, convert plane to NURBS, and use delauay approximation to avoid that problem.

To optimized simulation performance, we model the cloth with adaptive resolution (with help of HSDS modifier).

The tearing effect was enhanced if you paint the tearing group in parallel (vertical) stripes. The strength controls how vertex will stick together.

Supermesher help us to catch cloth animation, not only increase playback performance, but we could add more modifier (FFD, noise...etc) on top of it. Click HERE to the product page of Supermesher.

When cloth were ripped, since some verties are break which will break polygon's smooth group. We could add Welder modifier to fix this problem. Add turbosmooth or shell modifier to increase resolution of your final results.

Video tutorial (watch in 1080P resolution and fullscreen mode you should see button labels clearly) :


watch in Vimeo click HERE

I hope you find this video useful. ; )

[more tutorial]

2011/04/24

Krakatoa 2.0 全速前進!


這篇是由Maxscript大師Bobo祂的部落格發表關於新版的Krakatoa 2.0的效能提升, 由於不是正式的產品文所以比較口語 (比較難翻譯), 又提到很多數字(million, billion)加上邏輯性的段落, 增加了一點翻譯的困難度. 後段感覺是在替Fusion-io打廣告, 不過, 未來硬體速度絕對是CG特效的一個關鍵 (其實現在就是這樣). 到時後用固態硬碟做特效的時候, 應該會變得更有趣~

Enoy!

------以下為翻譯-----
原文網址點這裡
作者: BORISLAV PETROV (Bobo)
譯者: Hammer Chen

全速前進
發現我有好一陣子沒貼文了, 在Frost, Krakatoa's BFF發片前也沒有發文, 之前在拉斯維加斯待了至少四天, 展示Deadline, Krakatoa與Frost給大家看, 我想現在是寫寫關於未來發展的好時機...

你應該還記得我之前寫的: "多快才算快?" 關於Krakatoa 1.6, 那次的升級還不太可能會有明顯的效能躍進. 這樣想是沒錯,, 我也有數據支持這種說法 事實上, 下一版的Krakatoa會比從1.6到1.5的速度提升相比要多很多!

產生分割並載入PRT序列檔案, 是Krakatoa標準作業流程, 傳統上載入粒子的時間大約是算圖時間的一半. 有幾點因素會影響載入的速度: 一是硬碟的速度 (如果檔案存在網路硬碟), 二是網路傳輸速度 CPU的讀取資料的速度, 與將解壓縮的資料串流道記憶體的速度, 還有其它操作會影響到粒子載入速度, 如MagmaFlow與 Material evaluation, 或是形變與culling都會影響. 在以前, 後者的操作慢慢都支援多核心的計算,了 但是起始載入的動作還是只有兩核心的計算而已, 而且通常只會讓單核滿速.

現在不再有這個問題啦! 我很高興來測Krakatoa 2.0的alpha效能如何, 在不同的電腦配備與不同的硬碟資料量, 為了要測載入速度, 我先做了一個長寬高100的box 轉換成PRT Volume,, 然後分割 儲存到硬碟中分成100個分割組. 每一個分割都有一百萬個粒子, 請注意! 要載入每個有一千萬個粒子, 總共有10個分割檔, 這樣會產生多的開銷, 或者也可以一個分割檔, 包含了一億個粒子, 後者會比較快, 但是我想要做出比較最糟糕的狀況, 因為Krakatoa會受限於3dsmax本身, 而且這樣的測試方法還有個優點, 就是可以產生很多計算量讓每個CPU核心都能工作. 為了要模擬出一般的狀況, 我採用預設的頻道輸出, 位置, 速度, 法線, 顏色, 密度與ID. 縱使我平常不開速度或是ID這通道, 接著我產生一個PRT Loader, 載入100個分割, 放一盞spotlight.

到了實測階段, 首先我用了比較舊的電腦來測 (這台我們用在拉斯維加斯的NAB產展示Thinkbox功能, 配備是dual Intel Core Duo, 也就是四核心, 沒有Hyperthreading). 這台有一個7200 轉的硬碟, 兩個10000 轉的硬碟, 一個SSD硬碟, 還有一個Fusion-io卡 (固態硬碟). 這些硬碟都接在同一部電腦中, 這樣我就可以找到不同的儲存媒體對這個新軟體有怎樣不同的效應.

為了比較差異, 我先用了1.6.1版, 結果花了57.3秒載入一億個粒子, 花了兩分46秒算圖. 不管我用哪種硬碟都一樣, 因為載入的速度取決於PRT壓縮檔的核心讀取速度.

如果我用新版的Krakatoa 自7200轉的硬碟載入, 則花了38.2秒, 總算圖時間為兩分29秒. 這樣的速度提升不是很令人激賞, 但是有達到硬碟的物理極限了, 因為已經達到CPU存取的瓶頸了. 例如你有四核心 4線程(threads)的CPU同時讀取4個PRT串流資料, 硬碟沒有辦法跟得上CPU的速度!

而從兩個10000轉速的硬碟, 在硬碟的頻寬達到最大限度之前, 四核心的CPU才達到80%的運轉率而已. 測試載入一億個粒子時, 整個載入時間降到了16.1秒!相當棒! 當然囉, 如果用固態硬碟的話預期會有更高效能... 真的耶! 同樣的測試用固態硬碟載入時間僅花了11.2秒, 算圖時間為1分49.96秒, 而且四核心的CPU都完全滿載了. 如果我用更快的Fusion-io card進行實驗, 結果是跟故態硬碟一樣的載入時間, 一樣的算圖. 這樣的結果證明了我們達到了CPU的瓶頸(譯者註: CPU可以完全發揮效能的意思).

很感謝Fusion-io在NAB也有展覽, 我有機會用到八核心的電腦來測試水特效 直覺告訴我 CPU核心達兩倍時, 載入時間應該可以減為一半. 所以當我'載入1億個粒子, 才花六秒就載入檔案, 而算圖才花52秒, 我一點也不意外! 幸還是不幸, 所有八核心的CPU這時候都完全滿載了, 現在整個狀況反過來了---是CPU變成運算的限制, 而不是硬碟速度. 這樣個結果讓我更想用16或是32核心的電腦來看看Funsion-io固態硬碟真的能把Krakatoa發揮到怎樣的狀況?!

我的直覺是應該可以讓載入時間降到3秒 甚至更少, 可是當我真的用16或是32核心的電腦測試效能時, 還是可以接受結果啦. 照理來說, 好的SSD硬碟應該也可以跟得上8核心的電腦, 達到6秒的載入時間, 所以你不需要花買一部車的錢就可以達到好的效能.

新版的Krakatoa有幾個地方有加強效能, 用我家裡面的i7 quadcore電腦來測試 如閃電般快速地, 載入一億個粒子由舊版的12秒降到8秒, 而drawing時間由5秒降到4秒. 我的電腦不是很適合拿來做測試, 因為我的硬碟很慢, 所以你可以想像, 如果是用最新的電腦配備, 有很多的CPU核心, 有快速的SSD硬碟Krakatoa真的會在今年下半年飛起來呢!

當然, 這只是新版的Krakatoa牛刀小試而已, 等著看今年的Siggraph吧, 一定會很令人興奮! 至少我會很興奮啦...

---翻譯完畢---

[推薦文章]

2011/04/21

Thinking particles的物理碰撞與輸出


Cebas Thinking particles可以做出很多變化, 但是如果只是單純要用來做物理碰撞模擬, 反而不會比Particle Flow困難. 要讓TP產生的粒子進行真實的物理碰撞就要靠Opertaor/ShapeCollision/SC 的Operator.


雖然說SC Node有處理碰撞的參數, 不過每個Particle Group裡面也有Voxel Grid的參數. 如果模擬結果覺得有黏滯感, 可以把Dynamic Friction由100調降到10左右即可.

PhysX plugin沒有concave的類型 必須手動許多基本模型拼湊出凹面的碰撞體.

Rayfire不支援使用Concave的模型. 雖然可以用Group的方式處理, 但是比較麻煩.

一般在用NVidia PhysX 3ds max plugin或是Rayfire做物理模擬時都要考慮凹面或是凸面. 大部分與設定都是用凸面(convex)在做計算, 所以如果模型如甜甜圈這種有凹面的就容易有計算錯誤 或是粒子外推等問題.

紅色代表voxel的點, 密度越高碰撞越精確.

Thinking particles身為好萊屋特效等級的外掛, 它的物理計算就多了叫Voxel的計算基礎. 類似FumeFX 的voxel grid, 它的計算像Tutbosmooth之於polygon類似, voxel grid越高 就會把原本的模型細分的越細. 所以在做物理模擬時 第一要考慮佈線要平均, 再來就是以Turbosmooth的角度來思考voxel grid要設定多高. 一般到30就夠了.

Edge sample是對模型的edge的採樣, 對於那些狹長的面很有用, 如果模型有狹長的面那就把這個數值提高.

在SC Operator裡面Show Voxels裡面可以顯示粒子之間的碰撞. 勾選Initialized Only是只有真正碰撞的時候才會顯示 (螢光綠點), 可以用在debug用.

Collision leak指的是粒子跟粒子之前沒有正常的碰撞 (相互穿透) 比方說用TP做茶壺掉到地上, 茶壺沒有在地板反彈 卻直接穿透了地板, 這就是collision leak. 要怎樣避免呢? 首先模型的細分要夠 再來就是voxel grid的要夠高; 可是對於快速移動的物件還是很容易發生穿透的問題怎麼辦? 可以以試著提高FPS, 由30往上提高. 在某些情況甚至要增加到24000

TP縱使效能比PF要好很多, 可是在計算大量物理碰撞的時候, 場景的動畫還是很重. 於是就需要把動畫bake 或是直接輸出帶key的模型. 後者可以把TP整個殺掉, 動畫還是在.

要把粒子輸出成帶key的obj, 其實很簡單. 只要把想要的group串接到Operator/Expot
按下Export按鈕 這時就可以把粒子輸出成帶key的模型了, 這時候可以把TP整個殺掉, 交給工作流程下游的夥伴.


另外一個讓playback變快的方法是用快取, 這個方法的缺點是會產生很大的快取檔 優點是不會有像export方法會有產生先隱藏再顯示的物件 (當使用volumebreaker的時候會有這樣的問題). MasterDynamic裡面就可以設定FPS (或稱做Sample), 採樣越高就越不會有穿透的問題. 按下RECORD按鈕就開始寫入快取了, 計算完畢後動畫就會變得很輕, 可以接著做其他特效操作, 比方說FumeFX.

Thinking particles碰撞的缺陷: 一般來說把FPS提升到2400加上夠高的Voxel Grid就可以避免collision leak; 可是有種狀況卻很容易發生碰撞穿透, 那就是計算粒子之間旋轉的碰撞, 例如鍊子的旋轉就很容易讓碰撞穿透, 這大概是一個TP的罩門.




大致上掌握這些重點就可以很歡樂地用TP玩物理了.

---完----

[相關文章]

2011/04/17

3ds max 2012 substance material 教學


利用Substance Material製作出來的磁磚效果, 可以表現出很多細節, 還可以表現Vray的反射功能
Autodesk 3ds max 2012版新增了自allegorithmic公司買過來的程序性材質外掛. 雖然很強大但是如果不會串節點的話可能會覺得無用武之地. "為什麼不做成簡單的材質庫給我套用就好?" 大概有人會這樣抱怨, 這邊介紹由allegorithmic釋出的script工具可以讓你更快速地使用這強大的程序性材質, 不管是mental ray或是Vray都能使用substance material的威力. (範例是用max 2011, 但是max 2012也適用)