linear-algebra - 3D 索具:皮带扭曲或帧插值超过 180 度。欧拉、矩阵、四元数?
问题描述
此处为 3D TD,定义“Bezier 曲线”和沿它的方向以及控制对象的变换。我在插入之间的“向上向量”Control Objects
时遇到了问题,这种方式可以让我在控制之间有超过 180 度的差异,所以我可以扭曲多少。
我正在使用 SideFX Houdini,它有一种类似 C 的语言VEX
来实现它们。在这里,您可以看到控制项、Bezier 句柄(青色、黄色)和其中之一的变换面板。
为了生成帧,贝塞尔曲线被重新采样为折线,并从每个Control Object
对应点开始,有一个平行帧传输到Control Object
对应点。
这将导致帧的连续性中断,所以我所做的是围绕切轴进行加权旋转,因此帧的“Up Vector”逐渐与下一个Control Object
“ Up Vector”对齐。
问题是这种对齐是通过检查两个向量之间的角度来完成的,帧传输向上和下一个Control Object Up
在同一平面上。最大的不同是180度。除此之外,它会翻转到另一边:带有翻转帧的剪辑
现在,如果应用这种扭曲或滚动,我可以拥有超过 180 个,作为帧传输和后续对齐的偏移,但这是一个额外的步骤。 扭曲超过 180 作为偏移
我知道在处理矩阵时没有转弯的概念,因此我从与Euler构成的对象中提取的内容可能是不可能的。但我有一种感觉,可能有一个涉及四元数的解决方案,我通常将它们用作Axis-Angle,而不是我在概念上完全掌握它们。
我的问题似乎是我如何将一个控制对象与下一个控制对象联系起来,我可以掌握从一个控制对象到另一个控制对象需要多少扭曲。
寻找我应该研究的参考文献来对此进行排序。如果它甚至可能......
谢谢
解决方案
推荐阅读
- r - 如何在 R 中使用 glm 循环多次曝光和结果?
- reactjs - 当您使用 multipart/form-data 内容类型拥有 javascript 对象时如何发布数据
- python - groupby 导致空数据框
- node.js - Amazon Rekogntion Image:错误 InvalidImageFormatException:请求的图像格式无效
- javascript - 将表单的复选框标签附加到
元素
- vue.js - Vue3 - 如何获取版本
- matlab - 是否可以从未经校准的校正图像对确定两个相机之间的基线?
- apache - Joomla:从 example.com/index.php/foo/bar 永久重定向到 example.com/foo/bar(URL 中没有 index.php)
- algorithm - 算法效率的大符号
- python - 循环遍历 IP 地址范围以检查 HTML 中的打印机状态 - Python & BeuatifulSoup