2011/05/29

3ds max 2012: 永別了Reactor!

(本篇譯自http://www.offsetnull.com

最近從3ds Max 2011 升級到3ds Max 2012 ,花很多時間在學新功能. 因為我對物理模擬情有獨鍾, 對新的MassFX功能很感興趣. 令人難過的是, Autodesk 把Reactor 拿掉了! 這個物理引擎已經內建在3ds Max裡面好幾年了, 跟Reactor不同, MassFX無法模擬軟體動力學(soft-body dynamics), 布料, 水,ragdolls...等等功能. 目前只能模擬剛體而已.

那又怎樣呢? 對於新手, 如果你在舊版裡面作的Reactor場景沒辦法在3ds Max 2012裡面用, 它會跳出"遺失外掛"的訊息. 用戶還會失去Reactor的軟體動力, 繩索, 布料與水...等等. 如上表, 你可看到3ds Max 2012用戶除了剛體模擬會保留以外, 其他的模擬功能都會不見, 不再整合ragdoll進來, 沒辦法再做果凍模擬, 航行的船, 或是車輛模擬了! 這真是令人難過的日子阿! 請注意雖然動態的角色可以影響MassFX的剛體, 例如人去踢磚牆, 但是MassFX並沒辦法同時影響角色.

Reactor有沒有可能再回到3ds Max的懷抱? 令人難過的是, 不會了! 在3ds Max用戶群的新增功能網頁裡面Ken Pimentel(Autodesk傳媒娛樂的總監)說道:

Reactor不能再回來了! 因此, 你們最好把票投到別的新增功能, 不像Reactor的狀況, Autodesk團隊現在是全心全意地在PhysX與APEX團隊裡面合作 .我期望各位在接下來的幾年內看到我們這樣作的價值!

移掉Reactor的這項決策是根據客戶意見回報(Customer Involvement Program (CIP))的統計資料而來, 根據統計, 只有3%的用戶還有在用Reactor. 我現在很恨我自己, 當初為什麼沒有投Reactor一票 ,但是我現在很希望這個功能不會被閹割掉!

還不到萬念俱灰的程度, Cloth modifier用還模擬布料還不錯, Flex也可以用來模擬軟體與水波紋 , 而這兩個系統也當可以模擬繩索. 接下來的幾週, 我會寫一些關於這些功能的教學, 歡迎寫信給我如果你對某個教學感興趣. 請看這裡用Flex modifier作水波效果, 與浮力特效.

你也可以連上http://developer.nvidia.com/physx-dcc ,註冊申請PhysX plugin, 應該很快就能支援到3ds Max 2012.

關於模擬水與海洋, 你可以用Houdini Ocean Toolkit for 3dsmax, 是由Guillaume Plourde先生所改寫的. 這個工具是根據Jerry Tessendorf先生在2004年的SIGGRAPH所發表的論文而來.

[相關文章]

2011/05/27

Making of Twister with PhoenixFD in 3ds max


In this video tutorial I am going to demonstrate creating a twister with PhoenixFD in 3ds max 2011. This continue my PhoenixFD series, will be focus on the spiral gravity force. If you find this tutorial too hard, please read my previous PhoenixFD tutorial.

2011/05/23

Thinking Particles碰撞偵測注意事項


如果你正在製作有鐵鍊的案子, 在試過Rayfire, Reactor, NVidia PhysX等方案後, 最後發現只有Thinking Particles能夠模擬鐵鍊動畫的話, 那你應該要讀這篇文章.

既然是注意事項, 就直接跳到重點. 所有剛體都要給予重力才會有物理寫實的結果. 在TP裡面你可以用max標準的gravity或是用一個向量做出重力的效果.

如上圖:方法一 你可以用stdForce, activate場景中的gravity; 方法二是先做一個Force oprator再接上一個往下的向量. 第二個方法似乎比較笨, 比較明顯的優點是不需要在場景中拉一個gravity force, 另一個優點是重力可以是對速度增加數值, 或是相乘數值(如果初速度等於零, 計算就會錯誤)但是其實用向量的方法的優點會比你預期的還要更重要!


首先是可以控制strength強度, 這沒有什麼. 可以有variation變化度, 這就厲害了, 一條直挺挺的鐵鍊每個鐵鍊可以對重力有不同反應, 模擬結果會更加自然.

綠色的小點表示voxel

第二個優點就非常重要了, 那就是關於collision leak 剛體間沒有正確的碰撞導致鐵鍊斷掉. 若是忽略重力這件事, 要避免collision leak, 1)可以增加sub-frame的數目 (讓快速移動的物件可以計算更多的內差位置, 增加碰撞的成功機會 2)增加voxel數值, 同樣可以讓鐵鍊更容易碰撞 3)修改模型的密度, 讓網格分布更加平均更加緊密.

答案揭曉, subframe, voxel與模型這三個因子都沒有重力的影響要重要. 而重力的設定務必要使用向量加Force Operator的串法, 這裡引用Bobo在CGTALK的一句話

請記住, 外力要影響粒子需要花費一點時間 (因為外力影響的是速度, 速度進而影響粒子的位置). 預設值的狀況, 外力的強度往往對那些速度很小的物件影響力不足.

我通常會把Influence %設為10000.0 另外加一個Wind將其Turbulence設為1.0 Frequency 0.01 and Scale 1.0 外加 Drag with 5% for X,Y and Z 最後的結果就會很隨機.
換句話說當鐵鍊物件起始速度為零時, 標準的gravity根本就對鐵鍊沒有影響力 (這時候你會以為重力的強度不夠, 或是認為模擬的結果不夠真實), 問題就在用標準的gravity的串法有根本上的問題, 它可能是把重力與速度相乘, 而不是真正把重力作用到鐵鍊本身. 因此場景中已經有設key的鐵鍊本身有初速度, 它會拖著沒有速度的鐵鍊, 而沒有速度的鐵鍊是在被拖動的時候才真正被重力所影響, 造成鐵鍊之間的模型交錯, 最後就發生collision leak的問題了.

[相關文章]

2011/05/10

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


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

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

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

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

Smoke 煙霧























fire 火焰



















explosion爆破



























FumeFX做出的效果










Phoenix FD做出的效果



[相關文章]