Ripple Solver
ripple solver只需要兩個(gè)dop節(jié)點(diǎn),ripple object和ripple solver。這是一個(gè)輕量級的solver,解算很快,用來解算發(fā)生形變的幾何體恢復(fù)原狀時(shí)產(chǎn)生的波紋現(xiàn)象。

Ripple object的Initial Sop Path和Rest Sop Path默認(rèn)指向了兩個(gè)幾何體(下圖)??梢韵胂笠粔K有彈性的布,一個(gè)平整的狀態(tài),另一個(gè)是這塊布被拉起一個(gè)角的狀態(tài)。當(dāng)松開手的時(shí)候,被拉起的布回彈,試圖回到原始狀態(tài),帶動(dòng)周圍的布一起動(dòng),就會(huì)產(chǎn)生波紋的現(xiàn)象。Ripple object需要的是這兩個(gè)狀態(tài),松開手時(shí)的動(dòng)態(tài)由solver計(jì)算。


Ripple Solver:Wave Speed是波紋的傳播速度,可以理解為回彈布料的動(dòng)作傳播給周圍的布料的速度。Rest Spring把幾何體回原始狀態(tài),值越大恢復(fù)的越快,能量消減的越快。

讓人困惑的地方:一般來說,Rest Sop是物體的原始狀態(tài)(平整的布),Initial Sop是物體的變形狀態(tài)(拉起的布),但是打開幫助文檔的例子,發(fā)生形變的物體放在了Rest Sop Path里,然后勾選了Use Doforming Rest這個(gè)選項(xiàng),也就是說Rest Sop里的物體在solver里也是一直在動(dòng)的,物體的原始形狀怎么會(huì)一直動(dòng)呢。我是這樣理解的,因?yàn)橛蠻se Doforming Rest的這個(gè)選項(xiàng),solver能一直讀取到Rest Sop里幾何體的形變,Initial Sop里的幾何體一直在試圖回到Rest Sop的幾何狀態(tài),這樣,就引入了新的動(dòng)態(tài),不再是只拉一次布回彈一次,而是不停的拉布,不停回彈。我是覺得加個(gè)Use Doforming Initial更好一點(diǎn)。
或者,通過用mutiple solver加一個(gè)sop solevr,把物體形變在sop solver里進(jìn)行,感覺更合理。
最后,是我做的一個(gè)雨滴波紋,節(jié)點(diǎn)很少,效果也不錯(cuò)。
思路是每一幀grid上都有一個(gè)隨機(jī)的點(diǎn)被選進(jìn)組里,然后用softpeak拉起這個(gè)點(diǎn),把這個(gè)幾何體作為Deforming Rest。隨機(jī)選點(diǎn)的方法是每幀scatter一個(gè)點(diǎn),把小球copy到這個(gè)點(diǎn)上,作為group節(jié)點(diǎn)的bound object。

