gpt4 book ai didi

c++ - Nuke - Matrix4 相机约束锁 Z 旋转

转载 作者:太空狗 更新时间:2023-10-29 23:01:42 24 4
gpt4 key购买 nike

所以我在 Nuke(来自 The Foundry)中构建了一个插件,它将模仿 Maya 的动画约束行为。我有一个 parent ,一个 child ,然后是点、方向、目标、 parent 约束的选项。这一切都运行良好,但目前我最大的问题是目标限制。

一些背景:使用 Nuke Matrix4 class值得注意的是这个矩阵是一个 4x4 矩阵,其中前 3 行的前 3 列适用于旋转/缩放,前 3 行的最后一列是平移 (X,Y,Z)

Vector3 classes我正在获取源位置和目标位置。目标源 = ST然后我设置一个 Y 平面(一个倒置,一个不倒置)然后我得到我的 ST 点和 Y 平面的叉积,然后我的 ST 和倒 Y 平面的另一个叉积。 (当 parent 在 child 后面时将其反转)然后我得到我的 ST 的叉积和我的 ST.cross(y_plane)

目标约束实际上工作得很好,但是当父项处于某些位置时,我的相机(子项)中有很多 Z 轴旋转。我希望能够避免这种 Z 旋转。有人碰巧知道怎么做吗?

最佳答案

如果您正在模拟 Maya 的约束系统,Maya 会通过 up vector 处理 Z 旋转,这会调整您的 Z 旋转以与五个选项之一对齐:

  • scene up 将相机顶部对准 +Y
  • object up 将相机顶部对准第三个物体
  • object rotation up 将相机的 Z 旋转与第三个对象的 XYZ 旋转相匹配
  • vector 将相机顶部对准该 vector
  • none 不尝试用任何东西调整相机顶部的方向。这必须是您当前拥有的。

此外,还有一个 up vector 定义什么是“相机的顶部”,就像 aim vector 定义相机应该指向的位置一样。

关于c++ - Nuke - Matrix4 相机约束锁 Z 旋转,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30495628/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com