原视频:https://www.youtube.com/playlist?list=PLzRzqTjuGIDhiXsP0hN3qBxAZ6lkVfGDI
Bili:Houdini最强VEX算法教程 - VEX for Algorithmic Design_哔哩哔哩_bilibili
Houdini版本:19.5
1、什么是Force
本章主要讲重力、弹力、速度与质量、摩擦力/阻力、风力、湍流等。
挺简单的,基本都是纯图片记录下,为下一节打打基础。
2、重力与反弹
具有初始速度的小球与地面反弹。eg实现下面这种运动,
eg.节点连接及设置如下,
3、多对象与反弹
上面是单点,这次用多个点/小球。
eg.基本与【2、重力与反弹】相同,只对前面2个节点部分进行删除,新添加部分如下,
拓展:关于碰撞后的反弹方向,
①当碰撞面是水平面时,只需要改变速度的Y方向即可,
②碰撞非平面时,可把速度取反,再绕碰撞面的法线@N旋转180°,
(图片及代码来自知乎@刘鹏云)
//使用四元数旋转
velocity *= -1;
vector4 quat = quaternion($PI,@N);
qrotate(quat,velocity);
//使用矩阵旋转
velocity *= -1;
matrix mat = ident();
roatate(mat,$PI,@N);
velocity *= mat;
//与水平面碰撞,仅需将速度的Y值取反值即可
velocity.y *= -1.0;
4、摩擦力等
空气摩擦、风力、加速度。
以下仅单一进行举例,并未将所有力一起进行举例/展示。
先了解下后面需要使用的基本物理公式,
eg.摩擦力、风力等,
结果:摩擦系数看着给,结果大概如下(未添加风力),图片来自知乎@刘鹏云,
5、水摩擦力
与上面差不多,只不过多一个判断,判断小球是否已进入水中,进入水后下降的速度大大放缓。
不晓得下一章有没有浮力模拟。
eg.①节点连接及设置,
②解算Solver节点内如下,(代码最后那段,f@pscale应该改为 f@pscale/2才对),
6、湍流
小球往下掉得时候,经过下面这种湍流区域,
eg.①节点连接及设置如下,
②解算Solver节点内如下,(和前面的差不多),
③结果为,小球向下坠落的同时周围散开,