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

[Houdini] vex: lookat

2022-06-08 02:49 作者:pandahgt  | 我要投稿


lookat

lookat函数

lookat函数里的from和to是两个位置。从form点建立指向to点的一个矢量,或者说看的方向,函数计算-z方向或者说{0,0,-1}旋转到这个矢量需要的角度。

假设用铅笔始终指向一个人,铅笔笔尖的方向确定了,但是铅笔自身竖直方向仍然可以旋转,roll参数控制这个旋转值,或者用up指定一个方向,这个方向在计算后始终朝上。


lookat

示例,猪头始终看向运动的小球。

示例

1 猪头的初始面向-z方向,因为lookat计算把-z旋转到目标方向需要的角度。

2 目标方向是猪头中心指向小球的一个矢量。

3 如果手动用transform节点旋转猪头面向小球,肯定要把pivot设定在猪头的中心再旋转。问题在于lookat求出的是一个matrix3,3乘3的矩阵。我们来看4乘4矩阵如何构建, maketransform(int trsint xyzvector tvector rvector svector pvector pr),它能够把pivot translate和pivot rotate包含进去,但是3乘3的矩阵不能,它只包含旋转和缩放,相当于transform节点的pivot只能是默认值,直接用P应用这个矩阵的话,旋转中心不在猪头中心,而在原点{0,0,0}。v@P -= pos_geo把猪头移动到了原点,猪头中心在{0,0,0},然后再应用旋转,这时猪头围绕着中心旋转,再用v@P += pos_geo把旋转后的猪头移动到原来的位置。


[Houdini] vex: lookat的评论 (共 条)

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