Actionscript 3 添加或组合矩阵x3d
我一直在做一个3D太空游戏(这里有一个早期的演示…www.sugarspook.com/darkmatters/demo.html),我正在添加代码,以允许太空站由多个网格组成。我已经包括了网格并正在工作。现在,我希望能够相对于中央空间站对象(轨道类)定位每个网格部分。Actionscript 3 添加或组合矩阵x3d,actionscript-3,matrix-multiplication,stage3d,Actionscript 3,Matrix Multiplication,Stage3d,我一直在做一个3D太空游戏(这里有一个早期的演示…www.sugarspook.com/darkmatters/demo.html),我正在添加代码,以允许太空站由多个网格组成。我已经包括了网格并正在工作。现在,我希望能够相对于中央空间站对象(轨道类)定位每个网格部分。 每个轨道部分都有一个_matrixOffset:Matrix3D,我通过它来确定它的位置。在3D绘图阶段,OrbitalSection复制其“父”轨道矩阵3D原始数据,然后附加其自身的_matrixOffset: transfo
每个轨道部分都有一个_matrixOffset:Matrix3D,我通过它来确定它的位置。在3D绘图阶段,OrbitalSection复制其“父”轨道矩阵3D原始数据,然后附加其自身的_matrixOffset:
transform.matrix3D.copyFrom(_orbitalMatrix);
transform.matrix3D.append(_matrixOffset);
如果轨道部分的_matrixOffset只有一个位置平移,那么这一切都可以正常工作,例如:
_matrixOffset.appendTranslation(0, 0.1, 0);
但是,一旦我将旋转包含到_matrixOffset中,游戏中的定位就混乱了。我要做的就是将_matrixOffset添加到父轨道的transform.matrix3D的副本中。翻译前后,我都尝试过prependRotation和appendRotation。
有人知道怎么加两个矩阵吗?
谢谢。将“添加”矩阵偏移量添加到父矩阵副本的确切含义是什么
我建议你多读一些关于“同质变换”的内容。显然,你希望你的
轨道截面
位于相对于其主基底的某个位置。这意味着,您必须首先填充矩阵,然后附加父矩阵
transform.matrix3D.copyFrom(_matrixOffset);
transform.matrix3D.append(_orbitalMatrix);
如果你的
Orbital
实例决定以某种方式旋转,这也可以保护你的皮肤。我希望_matrixOffset对轨道的变换产生一次性的累积效应。Matrix3D对象,相对于轨道的位置和旋转来定位和旋转它。当_matrixOffset只有一个翻译时,它似乎起作用;当_matrixOffset包含旋转时,它会变得混乱。顺便说一句,它是“同质的”。好吧,所以我用错误的顺序做这些操作。。。我不记得我是否按照你的建议试过;我试过很多选择。但我稍后会试一试,让你知道它是否有效。谢谢