tyflow的Roation op - 當不勾選Affect particle shape orientation時,就相當於3ds max的Affect pivot only。可以使用Align to shape mesh來改變軸向,這個功能可以做很多事,比方說使用Voronoi op要把物件切割成木片時,軸向變得很重要。但又不想調整原始幾何體的軸向,就可用這個方法。
2025/03/10
PhysX Shape - Hull Size Multiplier碰撞殼的尺寸調整
PhysX的碰撞,為了提升計算效率,會透過原始幾何體的Hull殼來計算。在某些情況,比方說碎裂的幾何體,碎片的Hull彼此相互交錯會造成一開始時就爆開。在Hull的Size multiplier中調低可避免Hull交錯的問題。
tyflow Element Fracture 根據元素拆分
以前有個maxscript叫Detach Elements,可以把幾何體中的每個Elements拆分成一個一個獨立的幾何體。tyflow的Element Fracture op做的是一樣的事。
使用的時機: 物件有預先切割,比方說磚塊構成的房屋,由單一幾何體構成。但你想要拆成一塊一塊磚塊,這時就可用Element Fracture。
2025/03/09
Phoenix Simulation Speed模擬時間的最佳化
Phoenix在模擬時會記錄每個階段所花費的時間,統計放在Simulation Speed選單中。我們可以從這些數據來判斷要修改那些參數使來最佳化模擬的時間。
以上是模擬煙霧所得到的資料。佔26.1%最高的是Fluidity,這是在Dynamics捲展覽中的參數,可降低Quality來加速模擬。
再來佔第二高17.5%是Transport (Advection),可調整的是Steps Per Frame,這也是影響模擬結果最重要的參數之一。
其他的因素都沒有上述兩個影響那樣大,例如Vorticity或是其他Gravity與Buoyancy的影響都很輕。
當然實務操作上首先還是會先調整Voxel Size與Grid dimensions這兩個屬性。
2025/03/07
2025/03/06
tyflow fragment on spot在爆炸時才對物體切割
如果是玻璃,預先碎裂看起來就不好,所以要在爆炸衝擊時才進行切割會比較好,該怎樣做呢?
首先,不管是用Multifracture或Voronoi Fracture op,在作用時間Timing都設置為Continous持續計算。2025/03/05
tyflow: Scale by Proximity 根據距離縮放粒子
這個效果常常見於Motion Effect。以前用thinkingParticles很複雜但是用tyflow卻能輕易做到。
先導入幾何體,然後用Face fracture切割成一個一個面。添加Scale op,在Scale中設置為Absolute。勾選Multiply by proximity。在Objects清單中添加場景移動中的球。 這樣球移動那哪裡,面就會縮小放大。 勾選Invert則效果相反。
tyflow Scale - Relative multiply 用球體當作爆炸的力
tyflow提供各式力場,但都不如用PhysX的球體去推擠其他剛體來的效果更加真實。我們可以產生球體使其隨時間而變大來擠壓其他剛體。方法是添加Scale op,Timing設置為Continious,Scale設置為Relative multiply。將Scale value設置為150%。這樣球體就會隨著時間越來越大。但也不能讓它無限放大,因此在最後添加Delete op - Age。
tyflow Hull mode - Compound 剛體碰撞的近似幾何體
PhysX的剛體計算會透過近似的幾何體進行 - 稱之為Hull。這個Hull可以是球體,方塊或是原本的幾何體,或是...合成出來的近似幾何體 Compound。
Hull的選擇很重要,它會影響模擬的速度與精確度。不夠精確會讓碎裂的物體在一開始就爆裂,不穩定。而 Compound是很不錯的Hull類型,它以Grid的模式去近似原本的幾何體。所以Slice Length越小,越精確。
2025/03/04
tyflow PhysX Shape Sticky starting penetrations讓碎裂一開始不爆掉
用Voronoi Fracture或Multifracture op所切割的物體,很容易在一開始模擬時就爆開。在tyflow中的PhysX Shape中的Start penetrations起始穿透的選項中有提供Sticky starting penetrations,可以避免碎片在一開始就爆開。因此這個選項預設是啟動的。
當然這跟你剛體的Hull精確度有關,大部分情況Hull的類型不會很精確,有穿透是正常的。
如果想要一開始就計算所有的鋼體穿透,就選Process all penetrations。
tyflow Property Test - Neighbor count 選取在距離內的粒子
tyflow Property Test - Neighbor count可以用來選取距離某粒子內的粒子。以此為例就是我們希望靠近子彈粒子的玻璃粒子再次碎裂,就可利用之。使用Property Test op,Test type選Neighbor count,在Test value選Greater than,Value 為0。根據實際需求,在Search value中設置距離範圍。
2025/03/02
lightning tyflow grow製作閃電效果
tyflow grow operator可以做出生長或是閃電的效果。 可以產生這樣的mesh之後,然後取其mesh,做出簡易的閃電動畫。
2025/02/26
recursive fracture tyflow 重複切割
tyflow是基於particle flow的概念,所以基本上是一個事件傳到另一個事件的event-based particle system; 相較於thinkingParticles則是rule-based的。這兩種系統各有各的優缺點。
2025/02/23
Fracture at contact points tyflow根據碰撞處進行碎裂
又是跟上一篇有關的內容。如果玻璃被掉到地上,要產生寫實的碎裂,在與地板接觸的位置應該有比較高密度的碎片。因此能根據接觸點來切割幾何體便很重要。利用Birth Objects先把Box導入到tyflow中,tyflow預設便會計算地板碰撞。當PhysX Collision觸發到下一個Voronoi Fracture時,其Voronoi point mode切換成Point Cloud。
2025/02/21
At PhysX Contact Points 在撞擊點產生粒子
這篇是前一篇的補充。如果要在撞擊點產生Point Force,我們必須要利用At PhysX Contact Points這個參數。Spawn operator中,Spawn mode選擇At PhysX Contact Points,這樣Point Force產生的位置才會在正好在子彈撞擊處。由上圖可看到Point Force的Gizmo顯示其範圍。
tyflow Point Force 點狀力場
繼續談玻璃碎裂特效。tyflow有一個operator很方便 - Point Force點力場。就是根據粒子產生力場,很實用 (不知道為何thinkingParticles沒有類似的功能?!)。在撞擊的位置產生Spawn一顆粒子,然後產生Point Force。在Point Force中要指定受影響的玻璃碎片群組 - Simulation groups - 2。 產生子彈撞擊的瞬間衝擊力。
2025/02/20
GPU Aid Simulation - Phoenix FD 用GPU加速模擬
Phoenix FD的Fire Smoke Simulator的Simulation選單中有個選項是Use GPU to Aid Simulation。一直很好奇這到底能加速到甚麼程度。實際模擬煙霧效果,勾選大約能減少5%的模擬時間,當然這跟你顯卡GPU性能有關,我的是RTX 1000 Ada Generation Laptop GPU。這只能對PCG方面的模擬進行加速,希望未來開發團隊能擴展到其他功能以及液體的模擬。雖然我不抱太大期望 (笑)
2025/02/19
2025/02/18
tyflow raycast glass shattering 投射粒子在物體上
前一篇Glass Shattering with tyFlow玻璃碎裂特效part2,玻璃碎裂的中心是用一個sphere幾何體來控制,能不能改成用程序性的產生,槍指哪裡就在哪裡產生碎裂點呢? 答案就是tyflow的raycast operator。
2025/02/16
Phoenix FD Storage Quality & File size 壓縮品質檔案大小
因為官方網站上沒有相關資料,因此做瞭這個簡單統計,看看Phoenix FD的快取檔案中儲存品質(Storage Quality)與最終模擬產生的快取檔案的關係。
Storage Quality |
File Size (Mb) |
減少至原本的% |
14 |
245 |
- |
13 |
211 |
86.1 |
12 |
178 |
72.6 |
11 |
146 |
59.5 |
10 |
116 |
47.3 |
Phoenix FD預設的Storage Quality為14,我模擬了煙的效果共16 frames產生的AUR總快取大小為245Mb。當Storage Quality設置為13,檔案大小降至211Mb。大約為原本的86%。當品質降至10,檔案大小甚至可降至原本的一半以下。
渲染出來的品質整體來說幾乎沒有差別,只有在很細微的地方有差異。可以用jpg壓縮的狀況來比擬。
2025/02/14
2025/02/13
2025/02/09
2020/10/04
2020/07/26
2019/01/06
2018/12/26
2018/05/30
The Art of tweaking Parameters 調特效參數的技巧
3D模型 / Lien Ying-Te
一直以來都想寫這樣的文章。身為TD / FX Artist,每日的工作不免要調整許多參數,或許算圖引擎的參數很多,特效軟體/外掛的參數更是繁雜。以模擬火焰為例,需要很多時間模擬才能得到滿意的結果,能很有效率地調整參數,似乎是生存的必備技能。以下談幾點自己在調整參數時會用到的技巧:
1. References 找參考圖片,影片。這是做特效的第一步,先找真實的照片或影片,除了在調參數作為"寫實"的參考依據外,還可以先prime your brain,預先讓自己的腦袋對甚麼是真實的火焰有個印象,植入潛意識中,在實際用CG軟體操作時,將有意想不到的幫助。
2. Unit 注意單位。單位是特效要成功的最重要基礎,從兩個方面來看:首先,如果單位適當,比方使用兩公分樹枝燒出寫實的火焰(而不是錯誤地使用兩公里的樹枝),比較容易調出真實的火焰; 另一方面,如果固定使用正確的單位,場景回收使用,用在下個專案上會更加容易,久而久之可建立自己的特效模板。如果每個場景都不使用標準的單位,那在合併場景,重複使用參數上,就難免遇到惱人的問題。
3. Autobackup 自動備份檔案。這個步驟不管你是不是在調參數,都很重要。如果可以的話將可undo的步驟設多一點,調參數有時候會想回到前面的好幾個步驟,如果有Autobackup可節省不少時間。甚至,避免掉令人懊悔的悲劇。
4. Create a Preview 產生預覽畫面。這與步驟3有相關,如果有產生預覽的習慣,就可知道三天前的測試效果到底是如何; 產生預覽也方便比較參數產生的結果差異。
5. Faster iteration 讓每輪的測試快一點。儘量把測試的場景弄得夠小,使每次得到的回饋快一點。比方說把Grid設定在場景的重點範圍,不需要讓Grid涵蓋整個場景。這樣每一輪的測試才能越快得到結果。一旦測試完成,才把Grid放大到案子的實際需要的尺寸。
6. One parameter at a time 一次只調一個參數。如果你一次調整三個參數,比方說調整了SPF, Scene Scale與Fuel amount,你就不知道到底哪個參數對火焰的高度產生怎樣的影響。除非很有經驗,否則不建議一次調整多個參數。
7. Know how to compensate the effect 知道如何代償某個參數帶來的效應。特效最困難之處在於,參數之間不是完全獨立的,經常,調整參數A也會連帶影響參數B。我們假定把參數A調高,會讓火焰變高,可是當我們調整參數B時,參數B會讓參數A對火焰變高的影響削弱。這時候我們在調整參數B後,就要再把A調高一點點。在軟體公司把這連帶關係都自動化之前,你都必須要運用細心的觀察,做好代償的調整。最常遇到需要代償的現象是當你由低解析度的Grid調到高解析度的時候,有可能是Conservation的Quality要隨之提高。
8. Finding the right value 找到最適當的數值。想要做出寫實的火焰,或許有超過十組的參數必須要調整,比方說Grid size, SPF, fuel amount, Scene scale, solver types...等等。首先,我們必須要確認這個參數對火焰是有影響的,從預設值為起始,我會給予極端值,比方說風力設定為99999,確認對場景有影響。再來,可以從預設值的兩倍多,五倍多,或者兩倍少,五倍少開始下手。比方說Scene scale預設為1,我們可以從0.2,2,5這樣的數值下手。比較這些數值所得到的結果,就更容易找到最適參數。
9. Reset to default 沒有差異就調回原本的數值。如果發現把參數A調成兩倍,得到相同的結果,那麼就建議你調回原本的數值,不要讓整體的參數離預設的參數越來越遠,最後達到難以收拾的混亂程度。
10. By process of elimination 排除法。有時候你拿到的場景放了很多燈,很多力場。建議在調參數時儘量越簡單的環境越好,把所有的力場都先排除掉,再一個一個加進來,如此方可請楚知道每個力場的效應為何。
11. Don't over tweaking 不要過度測試參數。有時候調參數到某個程度,會發現越調越差,這時候不用擔心,因為在步驟3我們已經有備份,配合步驟4的預覽,我們可以順利地找到上一個好看的測試結果。
2018/01/06
Lele談V-Ray Next Beta 1
原文 / So, what's Next? But V-Ray, of course!
作者 / Emanuele Lecchi
2017/08/14
2017/06/28
Phoenix FD - scene scale parameter場景尺度的影響
提問 / ominetpl
編譯 / Hammer Chen
液體模擬 場景尺度參數沒有用?
scene scale = 1000和0.001模擬相同場景得到的卻是一樣的結果。這是bug或者我哪裡做錯了?
先謝了,並感謝這套很棒的軟體。
georgi.zhekov答:當您場景無重力時 模擬液體時,就會得到這樣的結果。 如果你打開重力,你會看到不同scene scale所產生的差異。
ominetpl:感謝您的快速回复!那麼這意味著scene scale只會影響Std. gravity 並不影響液體的特性?我已經亂調了所有的參數,例如viscocity, surface tension, non newtonian,增加max wind 與 gravity,仍然沒有看到任何因為scene scale的不同所產生的差異。
scene scale看起來只是會因為重力而加乘。 該是這樣嗎?
Svetlin.Nikolov答:嘿,使用液體的默認值,您將看不到太多的差異 - 當您模擬火焰時,scene scale會影響更多的參數。 尺度影響gravity, 在Inject mode下的發射來源, 火焰的降溫效果, 泡沫與水花的動態與表面張力,但重力是最明顯的。
ominetpl:好。 現在都很清楚!非常感謝您的回答。
Ivaylo Katev答:粘度(viscosity )和表面張力( surface tension)都不受場景尺度的影響,粘度本來就不會受到場景尺度影響,而表面張力應該是要受到尺度影響,只是我們故意讓表面張力不受到尺度所影響,許多使用者會因為這樣不同的尺度依賴而感到困惑。
Svetlin.Nikolov答:沒錯,這只是PHOENIX Simulator液體的特殊表面張力 - Liquid Sim的表面張力不受到場景尺度所影響。
ominetpl:感謝大夥!一切都清楚了
im.thatoneguy :那麼你如何模擬小尺度效應,當凝聚力成為突然變得很強? 我覺得0-1的表面張力範圍沒有考慮到實際上會從疏水玻璃上彈起的雨滴。
Ivaylo Katev:您必須手動調整表面張力以具有小尺度效果,在大多數情況下,通常會以大尺度模擬 然後開啟表面張力,這用這種方式模擬小尺度變慢的效果。當然現有的表面張力並不完美,實際上這就是液體模擬行為的困難之處,我們所提供的解算方法很快速,但有其局限性,今後我們會擴充功能必須擴展,但如果一開始就把所有功能都寫出來,軟體可能永遠都無法發布。
2017/06/06
以Maxwell製作寫實的玻璃杯
作者 / TONI FRESNEDO
編譯 / Hammer Chen
這篇使用Maxell算圖器說明如何產生寫實的玻璃。儘管不是V-Ray,且在某些觀念或是數值上相反,例如粗糙度ROUGHNESS。但是新版的V-Ray 3.5同樣也提供選項可以切換這種比較像PBR材質的名詞 - "Use roughness"。這樣不用在導入貼圖時(原本用在 glossiness上)還要將其反轉。這篇教學寫的很純粹,值得參考。
2017/05/31
決定正確的falloff衰減曲線
提問 / grantwarwick
編譯 / Hammer Chen
我做了測試,老實說我原本預期反射會與光線的方向對齊,但結果並不是,或許我想太多了? 但是從正投影攝影機, 這些反射不就應該要對齊嗎,如果不是 Viscorbel又怎樣能說是物理精確的?