我想逐渐在一个对象上应用matrix4,在一个更新每一帧的函数中。
如果我有两个矩阵,那么了解它们之间差异的方法是什么。假设我想知道代表第一个的矩阵+两个差异的0.2。
答案 0 :(得分:1)
您应该查看THREE.Quaternion.slerp
和THREE.Vector3.lerp
方法。
Slerp代表"球形线性插值"而lerp代表"线性插值"。
然后必须根据这两个矩阵构造一个矩阵,但如果设置myObject3D.position
和myObject3D.quaternion
,则三个处理内部。
如果您的起点是矩阵4,则可以decompose
将其加入四元数和向量,然后compose
来自新结果。如果您只想在矩阵中得到最终结果,可以使用makeRotationFromQuaternion( quaternion )
后跟setPosition( position )
。