五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

Houdini學(xué)習(xí)筆記040_Reaction Diffusion Pattern(反應(yīng)擴散圖案)

2022-10-12 18:41 作者:獨孤嘌呤  | 我要投稿

背景知識參考:

http://www.karlsims.com/rd.html

https://www.lanevol.org/resources/gray-scott

今天我們要學(xué)習(xí)的是反應(yīng)擴散圖案的制作,關(guān)于該圖案的背景知識可參考上面兩個網(wǎng)站。下面列舉了幾個不同參數(shù)下得到的結(jié)果——

Reaction Diffusion Patterns

關(guān)于這個圖案的程序生成思路可以參考油管上的Coding Challenges系列視頻,只不過視頻里用的是Java,我用的是Houdini VEX而已。

其實過程的描述很簡單,如下圖所示:體系中有兩種物質(zhì)A和B,擴散速度分別為dA和dB。兩個B可以將一個A轉(zhuǎn)化為B,同時物質(zhì)A以速率“feed”加入,物質(zhì)B以速率“kill”消失。最終顯示的是物質(zhì)A在體系中的分布。

www.karlsims.com/rd.html

A和B的濃度范圍為0~1。為了簡便起見,最后的可視化可以選擇在一個平面中呈現(xiàn)。用不同的顏色來表示物質(zhì)的濃度。初始創(chuàng)建一個grid節(jié)點(Size:1×1;Rows/Columns:250),給每個point設(shè)置屬性A和屬性B,A的初始值設(shè)為1,B的初始值設(shè)為0。

添加Point Wrangle節(jié)點,VEX代碼如下:

下一步是往體系中隨機添加一些B物質(zhì),使用的是Attribute Wrangle節(jié)點,Run Over設(shè)置為Detail (only once)。

VEX代碼如下:

利用隨機數(shù)生成點,用nearpoints函數(shù)搜索一定距離(maxdist)范圍內(nèi)的點,根據(jù)距離設(shè)置屬性B的值。對于每個生成的隨機點,距離為0的點B值設(shè)為1,距離為maxdist的點B值設(shè)為0。若按照屬性B的值添加顏色顯示,可得到如下所示的斑點圖案,從斑點中心到邊緣,B值從1漸變到0。

初始設(shè)置完成后,接下來就是反應(yīng)擴散的過程了。創(chuàng)建solver節(jié)點,里面還是用point wrangle節(jié)點來實現(xiàn)每一步屬性A和B值的變化。變化按照下面的公式進行,A和B是當前的值,dA、dB、f、k以及δt都是自定義的參數(shù)。唯一稍難理解的是倒三角符號,這是一個Laplace算符,用來表示濃度梯度的變化。

其實,這里的Laplace算符計算方式很簡單。在grid平面中,除了邊緣的點,每個點都會被另外8個點包圍。這些點都有屬性A和B。計算新的屬性值時,只要將周圍點對應(yīng)的屬性值乘上某個系數(shù),然后相加即可。相鄰的點乘以系數(shù)0.2,對角的點乘以0.05,自身乘以-1。

這里我們有兩個屬性值要計算,可以自定義一個laplace函數(shù),最后返回A和B兩個值。先設(shè)置幾個基本參數(shù)如下:

laplace函數(shù)返回的數(shù)據(jù)類型為vector2,步驟說明如下:

由點編號可知,對于npt號點,左右分別是npt-1npt+1,上下分別是npt-250npt+250(250是這里的網(wǎng)格細分數(shù),為方便起見,這里我用的是固定數(shù)值,如果要設(shè)為可調(diào)節(jié)的值,這里的代碼也應(yīng)相應(yīng)做出調(diào)整)。還有四個點的編號分別為npt-251,npt-249,npt+249,npt+251。

顯而易見的是,邊緣的點不滿足上述關(guān)系。為了不麻煩,我們只對非邊緣的點執(zhí)行l(wèi)aplace函數(shù)計算。

先寫出laplace函數(shù):

在解算之前添加Group節(jié)點,將邊緣的點加到“boundary”組中。

inpointgroup函數(shù)判斷,只對不在組內(nèi)的點進行l(wèi)aplace變換計算。公式如下:

最后添加color節(jié)點,用屬性A作為著色依據(jù)。

最后增加solver節(jié)點的Sub Steps,播放就可以看到反應(yīng)擴散圖案的變化,如下圖所示——

dA = 1.0; dB =0.45; f = 0.03; k = 0.062; dt = 1.0;

改變參數(shù)就可以得到不同的擴散圖案,具體可以參考本片開頭給出的網(wǎng)址。

今天的分享到此結(jié)束,感謝各位的閱讀,下回見~

Houdini學(xué)習(xí)筆記040_Reaction Diffusion Pattern(反應(yīng)擴散圖案)的評論 (共 條)

分享到微博請遵守國家法律
东丰县| 宝鸡市| 莱州市| 德阳市| 海门市| 阜城县| 秀山| 鞍山市| 西宁市| 双桥区| 万年县| 凉城县| 中西区| 遂溪县| 苍山县| 磴口县| 克拉玛依市| 松桃| 治县。| 阿拉善右旗| 临沭县| 苍梧县| 鄂尔多斯市| 庐江县| 聂荣县| 大安市| 赫章县| 深州市| 栾城县| 四子王旗| 会同县| 行唐县| 澳门| 安陆市| 剑阁县| 红安县| 南部县| 周宁县| 克山县| 文安县| 张掖市|