libgdx:ModelInstance.transform.setToTranslation(..)和ModelInstance.transform.translate(..)之间有什么区别?

kal*_*yer 4 vector-graphics libgdx

有什么区别:

myModel.transform.SetToTranslation( *some Vector3* )
Run Code Online (Sandbox Code Playgroud)

myModel.transform.translate( *some Vector3* )
Run Code Online (Sandbox Code Playgroud)

(其中myModel的类型为ModelInstance)

具体来说,这些操作的副作用是什么?

对我来说最重要的是,您使用一种方法而不是另一种方法的典型用例是什么?

Xop*_*ppa 7

setToTranslation将矩阵设置为平移.换句话说,它删除了调用之前矩阵所具有的每个变换(例如,任何平移,旋转和缩放),然后将其设置为具有指定值的平移矩阵.

translate将使用包含给定平移的平移矩阵对矩阵的当前变换进行后乘,从而得到:

transform.translate(x,y,z) == transform.mul(tempMatrix.setToTranslation(x,y,z))

使用的主要副作用translate(矩阵数学而不是特定于libgdx)是在它之前的任何变换可能(将)影响翻译.

这篇文章可能对您有所帮助:http://badlogicgames.com/forum/viewtopic.php?f = 11&t = 17878&p = 75338#p75338