2009/04/18

Thinking Particles vs Particle Flow 兩大粒子系統的差異



Thinking Particles Particle Flow是在3ds Max 2010平台上兩大粒子系統, 分別有不同的特性. 一個是"以規則為基礎的粒子系統"(rule-based), 另一個是"以事件為基礎的粒子系統"(event-based). 兩者的使用哲學就有很大的不同. 功能上也有幾點不同, 一般詬病PF的缺點就是不支援物理碰撞 要做碎裂效果很麻煩(必須借助Maxscript) ;但是TP也不是沒有缺點,TP非常難學, 概念也要花時間去適應. 這裡我翻譯了三篇文章 兩篇是CGTALK上的討論串, 一篇是CEBAS產品頁說明文, 希望透過多位知名專家如BoboAllan McKayOlegBPsychoSilence,  PENBrandonD等人的回答 讓讀者能更清楚這兩個系統的差異.


Thinking Particles
Particle Flow
company
Cebas
ship with 3ds Max
UI
RULE-BASED
EVENT-BASED
fracturing
YES
need Maxscript
dynamics
YES
need Box 2
cache
VERY GOOD
BAD
Maxscript

support
krakatoa

support
ease of use
difficult
easier
plugins

Orbaz Box 1, 2, 3
manual

NICE
Video tutor
some
Many
製表人: Hammer Chen

---以下文章翻譯自CGTalk討論串---


原文請點這裡

標題: Thinking Particles vs Particular Flow
Atd3d發問: 我一直在研究Thinking Particles和Particle Flow,我發現Thinking Particles的功能與概念類似Particular Flow。請問這兩套各有哪些優勢,與缺點? 先謝了

Bobo回答: 這兩個有很多不同。 
Thinking Particles (譯注:以下簡稱TP)是以規則為基礎的系統(RULE-BASED system)。 
Particle Flow(譯注:以下簡稱PF)是以事件為基礎的系統(EVENT-BASED system)。

TP的優點:
  • 非常強大(比起PFlow更容易創造複雜的系統) 
  • 很棒的物理動態計算( Dynamics)
  • 支持實體碎裂(Fracturing)
  • 良好的快取系統
  • 能夠以材質控制粒子特性( 因為Matterwaves是內建的) 
  • 因為它是以規則為基礎的粒子系統, 所以在製作場景更有彈性。 

TP的缺點: 
  • 功能強大通常就代表軟體很複雜。如果你只是要建議一個簡單的例子系統, 用TP會比PF難很多。最好是先去唸個博士學位再來用TP

PF的優點: 
  • 非常容易用,也許全世界使用性與功能達到最佳平衡的粒子系統。 
  • 很好的腳本支援( 如果沒有內建的,你就可以自己用腳本寫,只是maxscript的效能會慢) 
  • 如果你有購買Orbaz 的PF + Box 3, 這個功能可讓PF功能更接近TP

PF的缺點: 
  • 發行4年後仍然沒有物理動態的功能(我希望將來在Box 2裡面會有) 
  • 沒有實體碎裂功能(Box 2會有? ) 
  • 計算複雜粒子要花很多時間,快取做的不是很好。 
  • 想要更強大的功能就必須再買更多外掛,而 Autodesk自3ds max 以來還沒有增加新功能(譯注: 3ds max 2009 extestion, box1已變成內建了, 感謝銘育大指正)。
atd: 哇! Bobo親自出來回答問題,替一位名不精撰的古巴人回答問題 ! !這個論壇真是太棒了 。 

我現在幾乎明白這兩個軟體,不過還有四點我不明白:
1. Bobo所謂的以規則為基礎的粒子,到底是什麼? 
2. PF的粒子之間會有物理模擬計算嗎? 
3. PF沒有碎裂功能? 
4 . 不太確定ㄟparticle flow加上 box 1 and 2是否就能達到thinking particles的威力?  

再次感謝Bobo兄  我欣賞你的才華!還有你寫的script

Bobo回答: 
  1. 請看這篇,有關於事件導向與以規則為基礎的粒子系統的差別。 

---譯者插入一段CEBAS公司產品頁的翻譯----
ThinkingParticles在市場上的立足點到底是什麼?我們用”以事件為基礎的粒子特效”還有”以規則為基礎的粒子特效”這兩種系統的差別來說明。以事件為基礎的粒子特效通常是以觸發或是事件來引起效果的。這表示前者會受到key framing的影響, 而後者是完全不受到時間與key framing的影響的! ThinkingParticles能提供真正的非線性動畫技術。

ThinkingParticles是用規則和條件來控制粒子效果,而不是用時間或事件觸發來控制粒子。你如果用ThinkingParticles來做粒子特效的話完全不必去管更動時間或frames對效果的影響。

這裡我們舉個例子說明為什麼ThinkingParticles優於其它粒子系統。想像一下,你現在必須建立一個3D場景當中有艘太空船穿越小行星群。小行星群中有大隕石還有小碎片,到處亂飄。現在想像,你的老闆說, “太空船應避免大的岩石,但允許與小碎片擦撞,然後小碎片自船體中反彈開來。 ”這將是動畫師的夢魘。

以事件為基礎的粒子系統很難處理這類場景,因為你必須要先定義一個太空船的飛行路徑, 這個路徑裡面必須要沒有大隕石而且你還得決定在某個key frames都不會碰到大隕石。但是,要是有一天他媽的你老闆要你去改太空船的飛行路徑你要怎麼辦? (更改所謂的大隕石與小碎片的定義)

要是用ThinkingParticles就方便多了。你只要寫兩個規則就能將解決避開隕石碰撞的問題。理論上,要這樣寫:

If SPACE SHIP GETS NEAR (VALUE) A ROCK
如果太空船端近(數值)隕石
CHECK IF
檢查是否符合條件
BIG (VALUE) ROCK THEN AVOID IT (move around)
大(數值)隕石 然後避開它(移動)
SMALL (VALUE) ROCK IGNORE AND DO COLLISION
小(數值)碎片就忽略它 然後與它碰撞
END
結束

當然,上述是不是真正的程式碼。在ThinkingParticles 中,您甚至不需要輸入程式碼。以上只是ThinkingParticles的邏輯和流程。正如你所看到的,沒有時間相關變量,所以不管時間怎樣改都能正確運作。不需要去預先設定路徑或關鍵影格。只要太空船接近岩石 規則就會控制太空船的走向。

---CEBAS公司產品頁的翻譯結束----

關於第2和3的問題 -是的, PFlow粒子不能計算粒子的實體碰撞,也不能把模型切成碎片 除非你寫很複雜的script來處理。 

4 . Pflow加上Boxes 2 與3將非常接近TP的功能,但Boxes 2尚未公佈而我沒有什麼內部消息,我只知道它將提供物理模擬效果和碎裂功能。 
Box 3提供類似TP以數學式控制粒子的Data,你可以不會寫程式就做到這點。

BrandonD回答: 以下我希望大家要記住,當你們聽到有人訐譙PFlow不夠完美時。一開始PFlow的目的是在max裡面建立一套粒子系統用來取代Spray, Snow, Super Spray等,所以PFlow設計的目標就是要讓性能與易用性達到平衡, 使廣大的max  user都能使用這個功能。PFlow被設計成跟過去的粒子功能有接近的複雜度(很簡單)讓使用者感覺好像使用過去的粒子系統那樣親合。這不是用在特殊場合的粒子,但可用在一般狀況, 這就是為什麼Thinking Particles還是能擺在檯面上。TP並不是PFlow有一樣的設計思維,沒有容易使用的特性,TP是一個很專門的工具。

PsychoSilence(譯者注: 這位是德國Particle Flow的專家): BrandonD你把PF的設計架構都說出來暸真讚!

atd: 您好, 我一直在看allan mckay 與Brandon的教學影片,PF能做出的特效真的很讚。Thinking Particles也很強。 所以我想問,依你的專業意見, 3ds Max粒子引擎(TP, FumeFX, Afterburn)會比Maya Particles來的強嗎 ? 有點離題了,但如果有人可以回答我嗎?

joconnell回答: 理論上Mayas particles能做出所有的粒子效果,但必需要寫很多MEL腳本。顯然 從cgfluids來的Rif Dagher 它本來是寫maya's particles的人 後來發現thinking particles比他預期的還要更強大. 

至於tp與pflow 對我來說是要建立簡單效果用pflow很快速,敲一敲就能產生效果。但當您使用以百萬計的粒子或使用了大量的幾何實例就會變的非常不穩定,但-我想如果有讓歐特克讓這個軟體不斷更新,可能就可以解決這個問題,無論如何。 Pflows的緩存系統的理論上能夠產生很好的快取,但實際上並不好用。

Tp是非常巨大的粒子系統,它彈性高但是如果你要做簡單的粒子效果卻要花很多腦筋。它內建的功能就十分強大. 播放/快取的引擎也比pflow可靠(根據我的經驗)。他有很好的碎裂功能與動態模擬功能 這也就是為什麼我當初購買的原因, 但它還有其他有數以百計好功能。

跟Bobo兄一樣比較兩個的話,pflow加上box #3比較接近tp。當我需要製作較複雜 要有動態與碎裂功能時我會用tp,。當我想簡單又快速的效果我會用pflow。

請各位明白,儘管我做了大量的粒子特效,但我不像Allan, Brandon 或rif等人是全職的粒子TD –我不像他們由時間去鑽研這幾個軟體(例如- rif會寫很多tp presets提高工作效率, bobo 與 brandon能透過box #3產生類似tp的粒子效果) 。

理想上,我希望max的粒子效果能像MAYA一樣好,特別是東西像fume或是流體解算器或是krakatoa這種渲染巨量粒子的功能。

BrandonD: 至於關於Maya particles跟其他粒子系統相比的話,在我看來,Maya particles已經過時很久了,自90年代中期的Dynamation就沒有太大演進。功能有嗎?是的,但就如其他人說的需要大量的MEL腳本。這不一定是壞事,特別是當你需要做的事情非常複雜,但如果你只是要做簡單的事情時, 不使用更現代化的介面會讓你很痛苦。

Houdini的粒子工具是很難被擊敗的,不是因為它有其他人沒有的功能,而是Houdini運作的方式是很廣泛的且設計的極為優美 對於簡單或是複雜系統都一樣。

Steve Green: 我也不是粒子特效的專家(hardcore particle user),基本上PFlow適合我的需要,但我希望PFlow能夠好用一點。 (我記得一個很好的例子----自變形的表面噴發粒子,例如白浪花的效果。使用PArray似乎比PFlow更快)

JohnnyRandom: 關於快取的事, 我不知道除了以Oleg加速快取的方式以外還有什麼辦法可以做到,或是說決定權還在Autodesk那方

多線程計算很棒,如果有這個功能!我就會想買。在A社的這幾版更新裡面 不管是animation, character enhancements, archviz, 或 modelling, hair都有更新 但是PFlow在第六版以後就沒有更新了

Steve Green: 我記得PFlow其實是3ds Max 5的extension ,但我不記得變成max 6內建的功能後有增加任何新的東西。

不知道要改成支援多線程是否容易,或是我們能利用現有的,可以用GPU或Aegia 的資源來加速計算。

或是利用Aegia來加速碰撞的計算

atd: 我曾在Orbaz官方網站看過關於以Aegia加速Box #2的計算。BrandonD:Houdini粒子, 恩 ,聽起來還不錯喔!

Michael McCarthy: 對於這類麻辣的主題,還能夠維持住理性的討論, 不帶偏見。這真是太好了。我希望我能以不帶偏見的方式表示一點關於TP的意見。 我同意,TP對於簡單粒子特效的建立是比較困難,但我們用好幾種方式解決這個問題。

  • 黑盒子(Blackboxes) ..基本上可以把複雜或簡單的動態計算可以整整合成單一按鈕
  • 教學..我寫了幾個的超簡單的TP 2.5教學, 真的超簡單從頭開始教建立簡單系統。
  • 教學影片... 現在購買TP附贈大量的教學影片讓你了解更複雜的粒子特效( matterwaves ,碎裂,形狀碰撞等)。我們還準備提供由專家所製作的免費教學影片。其中是教基本知識, 有些是講進階的。
  • 論壇資源...該cebas論壇如同CGfluids論壇一樣提供極佳的TP支援。
Michael McCarthy
cebas USA

當然囉, Bobo兄。你聽到的資訊是對的。TP 3.0接近完工了,而且效果令人吃驚!我們今年將在Siggraph攤位416號展示TP 3.0的新功能 。我們歡迎大家來看看。超強的專家Rif Dagher, 它是CafeFX的FX TD總監 ,他本人將在攤位展示他的小組用Thinking Particles 與 finalRender Stage-2,創造Spider-Man 3的精彩特效. 還有Shadow Play Studios的特效動畫師Ari Sachter-Zeltzer也將展示難以置信TP技術。

Steve Green:是啊,軟體已經很久沒更新了 而且還不確定如果要計算碰撞的話GPUs 或PhysX的顯卡是否會有幫助。 此外,如果靠好的硬體就能加速粒子的顯示,歐特克是否會就這個部份讓軟體支援也還是個未知數,或者Oleg寫的軟體就能做到了 。

OlegB(譯者注 他是PF的作者之一): 可以採取兩種方式。另一個問題是, PFlow太靈活。您可以大致抓出粒子的效果用很多不同的方式但是不ㄧ定是最佳化過的方式。你可以快速製作原型,然後修到你想要的效果,用少的粒子數目,然後你把粒子數目增加到你實際要用的。

這篇看起來像好像“高效PFlow ”的課程.為什麼要使用Box#3的原因是它讓你能使用更低階的粒子資料。在PFlow中加入多線程運算的支援並非當務之急。但是,如果硬體也能搭配的話(多核心架構) ,那就會變的非常實用。

atd: 哇塞! 這篇現在就欠Allan Mckay的參與了 !或是Spielberg? ? 
我很訝異這篇的回答都這麼棒,所以我還有更辣的問題: 

TP 3在Siggraph都show了這麼棒的功能,那Orbas Box#2到底什麼時候要推出?

OlegB: Box#2會在Siggraph之後推出。alpha/beta版會與新版的Box#3一起推出。

Steve Green: 感謝更新,我期待新版到來。

Allan McKay (譯者注 這位是PF的專家): 哈有趣,我之前有寫回應只是還沒貼出,但才一貼就有人提到我的名字...老實說,這兩套粒子用起來都很棒。有了box set 3你幾乎可以任何你想做的粒子特效,因為box set 3讓你可以去取用底層的資料,它開啟pflow的黑盒子讓你可以做出更複雜的特效。我認為pflow具有很棒的使用性與實用性 ,你可以把已經調好的PF設定丟給其他同好, 而且不會發生奇怪問題。Box set 2一定能趕上TP的許多功能例如碎裂效果與剛體計算。

TP主打是功能強大的粒子軟體,它讓你可以做出許多複雜的設定。雖然我個人不太相信初學者能夠開別人的TP設定檔然後就能使效果正確的RUN出來。我去年幫Frantic公司設定TP,我們在電話上面討論很多設定上的更改 如果那個人之前沒有用過TP的話真的要花很大的工夫去解釋,還好最後還是把工作完成了。我認為,目前這兩套軟體都還在發展新功能 也各自有他關鍵的優勢,都到最後還是得看個人使用偏。我知道有很多pflow的老手是從第一版就玩他了, 而Oleg兄讓套軟體經過版本演進變的很棒。

我們在澳洲製作的新電影用Houdini作特效。實際上我們已經建立了完整的houdini與MAX之間的雙向工作流程。我負責寫寫max的import/export而Rangi at Kanuka負責寫houdini的import/export。效果很棒,因為我們可以在max裡面做流體然後在houdin中顯示效果。有趣!

我認為Pflow 更易使用,而TP目前有剛體計算等優勢,而最新版還有很多很棒的功能!儘管如此我還是使用pflow,而且有了box set 3你可以做以前做不到的效果。TP則是把很多功能拆開來因此你可以做出很多很酷的特效。

我等不及看到Ari demoing  應該會很酷

我這裡可能有重複講 延續我之前講到的maya particles,我會說至少maya particles目前還算不錯而且跟其他粒子系統比起來很實用。好笑的事maya particles過去被認為是專家級的工具箱。maya particles是可以用來做一些進階特效,但是你必須要寫額外的工具與介面(特別當你要做實體碰撞的粒子)maya particles的介面很舊而且又笨重又過時。當然我相信maya particles以後會改介面,但目前max的粒子很強大也很靈活。而且還外加了fume, krakatoa等等的解決方案,因此max變成了一個夢幻的特效工具。

cganimator: 兩個粒子軟體我都用過。但我現在比較常用TP。 

因為... 
  1. TP比PFlow快 。 
  2. 粒子之間的碰撞(只有TP才有 ) 
  3. 對ESC鍵有極快的反應(譯注: 快取效能較好)
  4. 可以將粒子輸出成物件模型
  5. 我們沒有BOX3 ( T.T譯注: 諷刺 Pflow的使用者還額外需要BOX3這個外掛)
但.... 我恨TP的help。教學影片是很棒啦,但TP真的需要更好的參考手冊。噢...我忘記了一個非常重要的事情。有時候,我必須使用PFlow ,因為TP.不支援Vray的運動模糊。 

rudinie: 是否有教育版本或試用版的Thinking Particles?我很想嘗試,如果我能適應這個規則為基礎的粒子系統,我就會想要買一套。順便問一下謂何歐元和美元的價格差這麼多? (歐元: 1489,25與美金1295年(相當於歐元945.738元) 

joconnell: 可能跟營業稅有關。它沒有教育或試用版,但如果你寫信跟michael要,他應該可以給你一個臨時授權。 

entrancea: 有沒有人可以給我有關TP的教學影片連結? 

feldy: 噗! 我可能只能花一個小時盯著TP。在我看過絕命終結站2以後我就一直很想要用tp,因為裡面做的特效很讚。Allan兄請問要怎樣把檔案在Houndini與max之間做交換?我知道有人使用realflow的輸出入功能作為溝通方法但是我不知道效果會不會很慢。順便恭喜你在Autodesk的Master classes的成功。 

entrancea: 所以,TP到底長怎樣?他是否跟是PFlow有一樣的工作流程或者是一個完全不同的東西?Allan兄....我一直在看你寫的教學,祝賀你在Autodesk的 Masters Program。

SoLiTuDe: 用起來會非常不同 你應該看一下fumefx / tp的整合應用的教學影片...看過後你應該就會有初步認識了。

---第一篇討論串翻譯完畢---


---以下文章翻譯自CGTalk討論串---
原文連結請點這裡

undream問到: 對。就是這個問題。 要選哪個,為什麼?我是個剛開始接觸3ds Max的用戶,之前使用C4D了好幾年,所以請各位手下留情

JonathanFreisler回答: 這就好像你問我要選max 或maya。哪個比較好為什麼? 一樣的意思

沒有人可以幫你決定,完全取決於您的意願。 Pflow是3dsmax內建的粒子系統,它是以事件為基礎的粒子系統(event based system)。TP是Cebas的產品, 是一個以規則為基礎的粒子系統。兩者各有優缺點, 沒有人能告訴你一定要用哪一個才比較好。

剛開始用Pflow會比較容易上手, 如果你剛接觸粒子特效的話,網路也有不少pflow的教學( 例如www.allanmckay.com) 

我個人是建議你先接觸pflow, 再去用TP。TP目前是比pflow功能強大 能夠處理剛體計算,但設置上要多花一點時間,用起來比較複雜,要花點時間適應它。希望對你有幫助。

Bobo回答: 首先,我認為PFlow和TP有很大的不同。兩者看來很像,但其實一點也不像。因此,要選哪套軟體其實是要看你實際要使用的狀況來決定。

正如前面有人說,這類的問題就好像你問, “3ds max或Maya要選哪一個,為什麼?” ,基本上答案就是:有百分之90的效果在3ds max比較容易做出來 但是剩下的百分之十的東西比較難用max做出來。 Maya大概就是做起來會麻煩些,但是剩下的百分之十做起來就比max容易,這裡面包含了一些比較困難的效果。把上面的描述3dsmax改為 “ PFlow ”和“Maya”改為 “TP” ,差不多就能回答你的問題了...

您可能已經在 C4D當中接觸了TP 1.0 ,但在Max中TP已經到第三版了。TP功能非常強大對初學者會比較複雜。TP很棒是因為它能做出分子間的實體碰撞(mesh-to-mesh collisions) 而且你可以隨時改變起始條件然後產生合理的計算結果

TP會把粒子資料紀錄成網格的ㄧ部分,因此要做抽象的點雲計算 例如與Krakatoa整合時 會變的比較困難。TP有很棒的預設參數系統(Black Boxes)可以讓你儲存常用的參數供日後取用。快取做的很好,同時也直接支援烘烤物體(baking to scene objects)。比較難用MAXScript控制,這是一個缺點。

Particle Flow比較是紀錄空間中粒子的資訊,不必依賴模型網格,雖然將來可能會推出支援粒子實體碰撞的功能。很容易上手(Particle Flow是所有粒子系統中具有最簡單UI的) ,對於常用的粒子特效用很少步驟就能做出來,但在面對複雜一點的粒子特效時,Particle Flow缺點就暴露出來。

Particle Flow能與Krakatoa整合在一起使用(對我來說這功能超讚) ,內建還提供基本的快取功能,但真正厲害的是它有個外掛就是----- PFlow Tools Box #3---它提供你更好的快取功能外加低階的資料存取系統稱為Data Operators, 這個東西非常類似TP的運作方式TP。能用MAXScript控制粒子是很棒的功能  。雖然用了MAXScript會導致效能變差,但是效能差總比沒有辦法做出效果來的好吧,MAXScript增加了靈活性,但總言之以事件為基礎的粒子效果還是比以規則為基礎的粒子系統(TP)要不具彈性。

我發現我平常比較常用PFlow,但還是有些特效沒用TP做不出來的(至少在有限的時間內用TP才有可能做出來) 。對於粒子特效的入門者, PFlow更容易取得(因為它是3ds max內建的功能 ),也更容易上手因為它的學習曲線比較容易點。

但是,總歸一句,看你的選擇----有可能你用TP會比較習慣...

undream: 謝謝你超棒的解釋!

我認為自己應該會TP比較容易上手,但大多數人都說PFlow比較容易上手...嗯,但我問我自己,如果沒有實體碰撞的功能 ...............我不知道(譯注: 表示沒有實體碰撞他沒有辦法接受)。

下面是我關於PFlow方面的問題: 
我不懂MAXScript [似乎需要寫程式的能力] ,我也不想學MAXScript。我有看你那個PFlow scripting 1教學DVD, 好像.....全部都要靠MAXScript才能完成似的 ,我不想要靠MAXScript做粒子特效。因此,我要問的是:是不是PFlow和TP都需要用到MAXScript?

Michael McCarthy: 這篇可能是我看過最棒的文章,沒有太多偏見!

joconnell: MAXScript並不是pflow 或 tp的先決條件----但有了MAXScript會使你用pflow更方便 ,特別當你沒有box #3的時候.  box 3 與 tp兩者都能讓你取用更原始的資料所以不必用太多的scripti來處理

我會同意bobo的說法, pflow用起來很容易也快速所以當我要做簡單效果時我會用pflow。但當我要做較複雜且需要大量的粒子數目時 或是需要動態物理計算與實體碎裂, 我就會選tp。我也認為tp的整體快取效能要比pflow好很多

我認為這兩個系統都非常有用,而Autodesk最近又把pflow創始程式設計師給買了回來, 所以你應該可以在新版的MAX裡面看到更新的功能。

undream: 到底是什麼是Box3 ? 我搜索了Autodesk的網站他解釋的很清楚,但我還是看不懂。我需要物理模擬,和粒子相互作用。有了BOX3 , PFlow就可以做到這一點,或者我還是需要tp?

JohnnyRandom: 我認為,這兩套粒子系統都很強大,任何學粒子的人都應該要兩個都會,這是我個人淺見。有的效果不能做就要用另外ㄧ套系統。當然,我才開始使用TP,挖,你可以點這裡有TP的demo

至於支援動態模擬的PFlow Tools Box#2 2將在不久的將來會推出,目前將由alpha進入到beta的階段。box #2的動態系統相當厲害,且非常簡單易, 這裡有幾個例子

3DMadness: 謝謝Bobo兄 超棒的解釋. 你能解釋什麼是“規則”為基礎的粒子特效,TP就是這樣運作的嗎?我知道什麼是以事件為基礎的粒子系統,但因為我從來沒有用過TP所以我不知道什麼是“規則”為基礎的粒子特效。

Box #3是orbaz公司所販賣的外掛盒# 3是一個插件出售orbaz : http://www.orbaz.com/products/particleflow/box3/

但我認為它支援物理計算,你就必須等待box #2發布才有物理計算的功能。

JohnnyRandom: 我相信有人可以比我解釋的更好,但... “規則”為基礎的粒子特效基本上就是.規則就是規則嘛。如果粒子A做了這個接著就去做那個。如果粒子A撞到粒子B就會產生粒子C

您先建立粒子然後設定一組參數,當您的粒子通過test是true或false, 粒子會進到下一階段(或他們就不繼續做他們正在做的)的下一組或遵循下一個規則。

因此,在某種意義上它就很像是以事件為基礎的粒子系統, 當你要去用test來驗證的時候。只是TP給你更多更複雜的條件式,類似於Box#3 ,幾乎每一個粒子的數據資料都能夠被操縱。

3DMadness: 感謝Johnny兄的回答,我讀過cebas網站上的解釋,但您說的比cebas清楚。所以通過這種方式,我們是否可以說,particle flow外加box #3還比TP更厲害,因為我們可以同時有以事件為基礎也有以規則為基礎的粒子特效 對嗎?從另一方面來看,搞不好TP也有某些事件的特質還是說他完全就只有以規則來做粒子

Bobo回答道: 說來有點麻煩,但...讓我們看看這兩個系統的使用介面:
在PFlow ,您創建的粒子會在容器(或稱為事件)之間流動 ,因此得名“Particle FLOW” 。這些事件會以節點顯示,在這些事件(或是容器)中的粒子具有特定的屬性,透過操作子(operators)可以改變粒子屬性, 而這些操作子可經由測試器(Tests)來測試,如果測試結果為真,粒子就會移動到下一個容器(事件)。Particle FLOW讓你可以直接看到粒子的流向,從一個事件到另一個事件。

在Thinking Particles中,您是在不同的UI介面中建立不同的容器(群組) 而這些群組並不會以流程來顯示。粒子可以被送到其中任一個群組,但你不會看到粒子的”流動”。你只會看到動態群組的階層 而這很像Particle Flow 的Operators(特別是Box #3的Data Ops ) 。 

在動態群組當中,你知道哪個粒子群組會被操弄,而這些資料可以被閱讀,修改和測試粒子性質, 然後根據動態群組的邏輯去分發粒子到其他群組中。而使用者要做的是去建立基本的節點, 不是決定不同容器中粒子的流程,而是以邏輯來控制粒子的,因此稱為“會思考粒子” (THINKING Particles) 。

因此,從某種意義上說,Particle Flow加上Box #3跟TP非常相似,但仍是在以事件為基礎的粒子框架當中運作,因此可以混合使用兩種系統。如果您在Particle Flow中只建立一個事件,並以Box #3把所有邏輯操作子放在那個事件裡面,那您的粒子行為就會非常接近TP的預設操作模組的效果。若是再把Box #2加進來的話這兩套系統就會非常非常相似了。

粒子系統, 只要你採用簡單的動態組 只設定粒子屬性而不去碰觸太多內部的邏輯或是用太多群組操作子。

舉個例子, 例如”如果粒子速度大於100則進到下一個事件”這是PFlow的拿手絕活,但更複雜的設置,例如“根據物體A與B之間的距離決定粒子的噴出率 ”這類的東西若是以PFlow來寫, 你就會需要maxscript或資料操作子,但是如果是用 TP來做的話 根本就是家常便飯了!。

當然,這是過度簡化的說明, TP還有更多彈性可以講,但我希望我的說明能對你有幫助...

JohnnyRandom: 對不起,我並不想要造成混淆。Pflow是一個線性系統, 像A到 B到C這樣, 且以循環的方式運作,就好像水從溪流流下來,打在石頭上散開 然後流到海洋 然後形蒸發 形成雲 然後又形成雨掉下來 掉到溪流裡面 變成一個循環。

TP則是把所有的東西擺在群組與動態組當中。 因此,水在溪流中流動,是一個規則:水會往下流,是一個規則:如果水撞道石頭會飛濺,是一個規則:如果水到達海洋則會蒸發,是一個規則:如果水蒸發就會形成雲,是一個規則:如果有雲就會下雨。

『 A 』可以流到的' B ' , ' C ',或' D ' ,只要符合你設定的條件規則就好。它可以不用, 『 A 』到B ' (就像Pflow那樣 ) ,它也可以直接進入' D '

3DMadness: 是的,非常感謝Johhny和Bobo花時間來解釋這些,現在我更了解了。我喜歡用粒子作特效,而且我還從歐特克的訂閱網頁(Autodesk Subscription)取得了particle flow與box #1,因此,能夠先了解box #3 等到我有錢去買box #3再來花更多時間了解他是怎麼用總是好事。

SoLiTuDe: 嘿嘿...在你舉出的例子裡面,您還是可以決定A組要流向B或是C 或是D 只要你設定適當的TEST。所以這樣的舉例並不適當,我認為Bobo的解釋比較貼切。我聽起來好像是搞的全部都是條件語句(如果A就B) ...但其實關鍵差異是在介面與/流程的邏輯的不同。另外,我個人喜歡Box3處理物件/幾何採樣的方式...那裡面有很棒的幫助節點。

JohnnyRandom: ^大聲笑,我也比較喜歡Bobo的解釋,你說的沒錯,我試著用最簡單的方式來理解這兩套系統,但我腦袋想的很難用鍵盤敲出來。即使是條件句用兩種系統都能夠做到。

BrandonD: Bobo幾乎把所有概念都交代到了。我用Houdini好幾年了, 但當我用MAX工作時 我會把PFlow與TP交錯使用。他們是兩個完全不同的系統,各有自己獨特的長處和短處,前面已經有提到過了。大部分情況,我可以用PFlow做很多效果 ,但任何跟碎裂 動態模擬或複雜的規則, 我就會用TP。這兩種粒子系統各有他的缺點 都會遇到另一套會比較簡單就做出來的狀況。

PFlow當初被寫出來的目的就是要有彈性且對大部分的用戶都能滿意。為此,它有幾個限制,讓整個介面更簡潔 設定更快速。TP則是另外一種怪獸,它更注重功能而犧牲了簡潔度,讓它變的比較小眾。TP用起來沒有很多限制,因此如果你要做一個效果可能要用好幾個操作子形成複雜網路才能達成 但是PFlow就只要一個操作子就可以囉如。當然,建設這網絡可以讓您完全控制粒子的參數。因此,這又是一場複雜派與簡潔派的爭論。

根據以上所述,這兩者都有它發展的舞台,我想任何MAX的藝術家若是以作特效為主的話,應該要各買一套。

PEN(譯者注 這位是Paul Neale, 3dsMax的大師之一): 以下是我針對這欄問題的個人淺見。我跟Bobo 與 Brandon一樣是特效藝術家,但我也做很多動畫與教育訓練的工作。我常常遇到有人跑來問我可否寫個plugins 或scripts為了要完成某項工作然而約80 %的要求都是Max已經內建的功能了 問題只在於這些人沒有花時間去理解這些內建的工具。所以,我認為你應該先用PFlow,並不是因為PFlow功能比較好,或是較快或更容易,而是因為它是max內建的功能,你應該先了解這套系統的限制性,在去額外添加外掛,用你現成的東西去做你已經做的出來的特效會比較重要。

3DMadness: 嘿Brandon,感謝您分享你的知識 而我也同意PEN所說的我們應該先了解max的限制再去買更多的外掛。Bobo的教學是最好的,讓我們知道透過scripts加上particle flow我們可以很多事。Pete Draper在他的網站www.xenomorphic.co.uk也有用很普通的max.就做出很棒的粒子效果而不需要靠外掛。

Chad Capeland: 我們寫了幾行簡單的test來決定我們應該用TP或是PF.做某段特效..

  1. "If/Then"特效在Pflow做出來 “ ,"Until" 與 "For"特效是在TP當中做出來的。 (如果您需要解算不同問題,then TP) 。 
  2. 跟Krakatoa有關的就用Pflow 。 
  3. 跟Maxscript有關的就用Pflow 。 
  4. 跟SDK有關的就用Pflow。 
  5. 任何跟轉變物件有關的(不是粒子)通常就要用TP做出來。
現在,其他比較兩者的必要條件,是假設你的Pflow有完整的Orbaz外掛與Krakatoa。這就是為什麼我們不問是要處理怎樣的抽象資料;或者我們是否必須要處理碰撞,壓力,或實體破碎;或是處理快取等問題. 雖然我同意用TP比較容易製作presets,但這不是決勝點。我們不是生來就能以presets 來作思考的。

cooperunionstud: 嘿chad, 你是否有用orbaz論壇上測試那個爆炸的手(煙塵)。

Chad Capeland: 我是有參與手炸開粒子特效製作,但我應該沒有貼到orbaz論壇上。貼到Krakatoa論壇上面那個是我做的,主要是用Box#3做出來的 。 

---第二篇討論串翻譯完畢---

者翻譯完的心得: 我非常同意PEN兄的論點, 很多效果是內建的功能就能做到了 只是你沒有認真花時間去研究罷了! 要先了解一個軟體的優點盡可能的發揮它的優勢後 再去考慮購買外掛來擴充 這是所有學習3DCG的人都應該有的心態.

另外提醒諸位熱愛CG Taiwaner台灣人玩動畫的網友們, 翻譯也是有著作權的 如果你喜歡我的翻譯, 歡迎轉貼 但是要記得寫轉貼出處. 本站不歡迎以任何形式盜文的行為 如發現盜文會依情況做適當的處置. 最簡單的作法就是公佈盜文者的部落格與姓名. 謝謝大家的長期支持.

站長上

12 comments:

Akai said...

好文!推一下!

我簡單描述一下Event、Rule

Event像一個電路版,只差電源輸入,電源一輸入,啟動電路板該有的功能,所以Event的功能類似預先設定,「等通知」!

想像一下,進廁所開燈,通電後一秒鐘後啟動抽風機,功能要預先設定好等通電

Rule是Event的進階版本,進廁所開燈,內部光敏電阻偵測周圍光源,白天的瓦數少,晚上的瓦數拉高,這是規則設定,以光敏電阻的阻抗為邏輯判斷!

同樣的,抽風機啟動前,內部熱敏電阻偵測廁所內的溫度,決定風葉的轉速,這也是規則,以熱敏電阻的阻抗為邏輯判斷


Event比較像模組的組合,
Rule比較像元件的組合。

一般的軟體只到模組、元件,Houdini比較特殊,在不依賴TD的情況下,User可以自行定義元件的成份

Houdini的粒子系統,Rule跟Event是交互運用,Houdini還多一層參數群的封裝,自由定義,併在單一元件裡面。

hammerbchen said...

To Akai大:

一直都沒機會試試胡狄尼 (或說是不敢試)

看到電路板的東西就一整個暈 對這方面有學習障礙

aomay said...

光要看完就很辛苦了~~
更何況是翻譯完
謝謝 你所翻譯的這些文章

hammerbchen said...

To Aomay大:

重點是, 翻完之後就會用TP了嗎?

不會! XD 哈哈 真慘!

次(LINX) said...

其實我也是個長期忠實讀者~
想當初為了玩影片對位功能而找到這來...

如同aomay大所說,
光是看完就花不少時間了,
翻譯更是花譯者時間!

由衷感激!

kang said...

好文,忍不住浮上水面來給你讚賞一下,
看完之後對這兩個particle system 有了更深的了解了

Akai said...

Dear Dream_Writer

這兩套粒子處理套件的操作概念相差頗大,用硬體的比喻比較能解釋其中差異。

TP如果使用在主動畫上,可能比較難發揮,反而PF運用在主動畫,隨著主題一起操作,效率較好。

TP接近半自動的運作方式,利用規則判斷主動畫的資料變化而變化,TP運用在次動畫應該會有不錯的效率表現

主要細節交給Particle_Flow,很小的細節交給Thinking_Particle。

兩套粒子操作器要搭起來才有可能跟Houdini的粒子系統相抗衡,目前我還沒看過兩套搭著用的範例,我不知道兩套能不能搭著用,如果有的話,應該也會像我寫的這樣子吧!如果不行,就當作夢一場吧!

Unknown said...

感謝翻譯!
翻過其中的二篇就覺得很吃力了~
沒想到來這裡看到這麼大長串的!
hamm兄果然還是比較專門啊~

hammerbchen said...

To Akai大:
TP的優缺點大概要用過Houdini的人會更了解


To 不發火大:

慢你一步翻譯了 所以找了另外一篇來充充字數...XD

Anonymous said...

我很少會回覆的, 但是我真心的要多謝你這篇POST , THANKS

Anonymous said...

非常感謝。

ARC said...

感謝!