欢迎光临散文网 会员登陆 & 注册

Ripple Solver

2021-09-26 01:23 作者:pandahgt  | 我要投稿

ripple solver只需要两个dop节点,ripple object和ripple solver。这是一个轻量级的solver,解算很快,用来解算发生形变的几何体恢复原状时产生的波纹现象。

Ripple Object

Ripple object的Initial Sop Path和Rest Sop Path默认指向了两个几何体(下图)。可以想象一块有弹性的布,一个平整的状态,另一个是这块布被拉起一个角的状态。当松开手的时候,被拉起的布回弹,试图回到原始状态,带动周围的布一起动,就会产生波纹的现象。Ripple object需要的是这两个状态,松开手时的动态由solver计算。

./defaultgeo
./defaulatgeo/REST

Ripple Solver:Wave Speed是波纹的传播速度,可以理解为回弹布料的动作传播给周围的布料的速度。Rest Spring把几何体回原始状态,值越大恢复的越快,能量消减的越快。

Ripple Solver

让人困惑的地方:一般来说,Rest Sop是物体的原始状态(平整的布),Initial Sop是物体的变形状态(拉起的布),但是打开帮助文档的例子,发生形变的物体放在了Rest Sop Path里,然后勾选了Use Doforming Rest这个选项,也就是说Rest Sop里的物体在solver里也是一直在动的,物体的原始形状怎么会一直动呢。我是这样理解的,因为有Use Doforming Rest的这个选项,solver能一直读取到Rest Sop里几何体的形变,Initial Sop里的几何体一直在试图回到Rest Sop的几何状态,这样,就引入了新的动态,不再是只拉一次布回弹一次,而是不停的拉布,不停回弹。我是觉得加个Use Doforming Initial更好一点。

或者,通过用mutiple solver加一个sop solevr,把物体形变在sop solver里进行,感觉更合理。

最后,是我做的一个雨滴波纹,节点很少,效果也不错。

思路是每一帧grid上都有一个随机的点被选进组里,然后用softpeak拉起这个点,把这个几何体作为Deforming Rest。随机选点的方法是每帧scatter一个点,把小球copy到这个点上,作为group节点的bound object。

节点图
效果图


Ripple Solver的评论 (共 条)

分享到微博请遵守国家法律