HoudiniVex笔记_P24_ForceBasics力基础

原视频:https://www.youtube.com/playlist?list=PLzRzqTjuGIDhiXsP0hN3qBxAZ6lkVfGDI
Bili:Houdini最强VEX算法教程 - VEX for Algorithmic Design_哔哩哔哩_bilibili

Houdini版本:19.5

1、什么是Force

本章主要讲重力、弹力、速度与质量、摩擦力/阻力、风力、湍流等。
挺简单的,基本都是纯图片记录下,为下一节打打基础。

2、重力与反弹

具有初始速度的小球与地面反弹。eg实现下面这种运动,
HoudiniVex笔记_P24_ForceBasics力基础_第1张图片
eg.节点连接及设置如下,
HoudiniVex笔记_P24_ForceBasics力基础_第2张图片

3、多对象与反弹

上面是单点,这次用多个点/小球。

eg.基本与【2、重力与反弹】相同,只对前面2个节点部分进行删除,新添加部分如下,
HoudiniVex笔记_P24_ForceBasics力基础_第3张图片

拓展:关于碰撞后的反弹方向,
①当碰撞面是水平面时,只需要改变速度的Y方向即可,
②碰撞非平面时,可把速度取反,再绕碰撞面的法线@N旋转180°,
(图片及代码来自知乎@刘鹏云)
HoudiniVex笔记_P24_ForceBasics力基础_第4张图片

//使用四元数旋转
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、摩擦力等

空气摩擦、风力、加速度。
以下仅单一进行举例,并未将所有力一起进行举例/展示。

先了解下后面需要使用的基本物理公式,
HoudiniVex笔记_P24_ForceBasics力基础_第5张图片

eg.摩擦力、风力等, 
HoudiniVex笔记_P24_ForceBasics力基础_第6张图片

结果:摩擦系数看着给,结果大概如下(未添加风力),图片来自知乎@刘鹏云,

5、水摩擦力

与上面差不多,只不过多一个判断,判断小球是否已进入水中,进入水后下降的速度大大放缓。
不晓得下一章有没有浮力模拟。
HoudiniVex笔记_P24_ForceBasics力基础_第7张图片

eg.①节点连接及设置,
HoudiniVex笔记_P24_ForceBasics力基础_第8张图片
②解算Solver节点内如下,(代码最后那段,f@pscale应该改为 f@pscale/2才对),
HoudiniVex笔记_P24_ForceBasics力基础_第9张图片

6、湍流

小球往下掉得时候,经过下面这种湍流区域,
HoudiniVex笔记_P24_ForceBasics力基础_第10张图片

eg.①节点连接及设置如下,
HoudiniVex笔记_P24_ForceBasics力基础_第11张图片
②解算Solver节点内如下,(和前面的差不多),
HoudiniVex笔记_P24_ForceBasics力基础_第12张图片

③结果为,小球向下坠落的同时周围散开,

你可能感兴趣的:(VEX,for,Algorithmic,Design,笔记,houdini)