[Houdini] Pyro solver (sparse) 工作原理
文章有自己理解的地方,不保證正確,也不適合初學(xué)者。目的是供自己以后查閱。


1?如果了解pop solver的話,把pyro solver當(dāng)作一個(gè)更復(fù)雜的pop solver可能會(huì)更好理解。不同的地方是pyro solver進(jìn)行模擬的是volume。把幾何體轉(zhuǎn)換成pyro模擬需要的volume,houdini提供了pyro source這個(gè)節(jié)點(diǎn),用于快速把幾何體轉(zhuǎn)成擁有特定屬性的點(diǎn),再用volume rasterize attribute節(jié)點(diǎn)把點(diǎn)轉(zhuǎn)換成volume。

2 pyro solver的sourcing選項(xiàng)對(duì)這些volume源進(jìn)行進(jìn)一步設(shè)置。

3 在文章開頭圖片里提到的域里,只有density域不影響其他的域,模擬出的煙霧就是這個(gè)域,把它看作pop solver的粒子。把其他域看作pop solver里的各種力場(chǎng)。look選項(xiàng)下默認(rèn)把density域作為煙霧顯示。

4 temperature域給denstity提供向上的升力,同時(shí)temperature域也在變化,它會(huì)冷卻和向周圍擴(kuò)散。vel域提供速度。divergence域提供向域周圍擴(kuò)散或者吸收的力。在solver的shape選項(xiàng)下的Turbulence選項(xiàng),像是pop solver力的pop wind,提供湍流擾亂的力。
5? shape選項(xiàng)下的disturbance和shreding根據(jù)文檔的說法,在調(diào)節(jié)好大致形態(tài)后,用這兩個(gè)選項(xiàng)調(diào)節(jié)細(xì)節(jié)。disturance對(duì)不同粒子的速度大小進(jìn)行擾亂,可以把光滑的表面變得粗糙。shredding對(duì)不同粒子的速度方向進(jìn)行擾亂,把整齊的運(yùn)動(dòng)方向變得無序。

6 buoyancy升力和temperature有關(guān),如果沒有temperature域,這個(gè)選項(xiàng)沒效果。
7 wind,常見的風(fēng)力。
8 viscosity ,粘度。像是水墨效果,火焰似乎也有這種粘度。
9 flame域和其他的有很大區(qū)別,它會(huì)生成其他的域。在dop network里的pyro solver(sparse)的flame選項(xiàng)下,可以看到,它能生成density,temperature和divergence。這比較像直接引入了一個(gè)燃燒源。flame在solver外面一般叫做burn。

10 threshold field用于選擇力作用的域。然后力的大小再乘以control field選擇的域的值,相當(dāng)于一個(gè)遮罩。

11 即使只加入denstiy域和vel域,煙霧仍然表現(xiàn)得像煙霧,不是像粒子一樣直接朝一個(gè)方向飛去,這可能和流體解算的關(guān)鍵步驟壓力投射有關(guān)。


12 手動(dòng)創(chuàng)建collision域和collisionvel域和用static solver引入碰撞體兩種方式除了創(chuàng)建方式不同外沒有區(qū)別。