我一直在做一个 3D 太空游戏(这里有一个早期的演示...... www.sugarspook.com/darkmatters/demo.html),我正在添加代码以允许空间站建造出来多个网格。我已经包含了网格并且可以正常工作。现在我希望能够相对于中央空间站对象(轨道类)定位每个网格部分。
每个 OrbitalSection 都有一个 _matrixOffset:Matrix3D ,我对其进行操作以确定它的位置。在 3D 绘图阶段,OrbitalSection 复制它的“父”Orbital Matrix3D 原始数据,然后附加它自己的 _matrixOffset:
transform.matrix3D.copyFrom(_orbitalMatrix);
transform.matrix3D.append(_matrixOffset);
这一切都很好 - 如果 OrbitalSection 的 _matrixOffset 只有一个位置转换,例如:
_matrixOffset.appendTranslation(0, 0.1, 0);
但是,一旦我在 _matrixOffset 中包含了一个旋转,游戏中的定位就会混乱。
我要做的就是将_matrixOffset 添加到父Orbital 的transform.matrix3D 的副本中。在翻译之前和之后,我都尝试了 prependRotation 和 appendRotation。
有谁知道如何共同添加 2 个 Matrix3D?谢谢。