我正在使用本教程创建3D引擎:https://www.davrous.com/2013/06/13/tutorial-series-learning-how-to-write-a-3d-soft-engine-from-scratch-in-c-typescript-or-javascript/
每当我乘以平移矩阵时,它总是像这样扭曲图像:
程序太长所以这里我乘以翻译矩阵,我使用euclid.py库进行所有矩阵计算:
worldMatrix = Matrix4().rotate_euler(
mesh.rotation.y, mesh.rotation.x, mesh.rotation.z).translate(
mesh.position.x, mesh.position.y, mesh.position.z)
transformMatrix = worldMatrix*viewMatrix*projectionMatrix
这里是翻译方法(euclid.py库的一部分):
def translate(self, x, y, z):
self *= Matrix4.new_translate(x, y, z)
return self
def new_translate(cls, x, y, z):
self = cls()
self.d = x
self.h = y
self.l = z
return self
有没有人知道任何可能的原因?
答案 0 :(得分:1)
矩阵乘法不是可交换的,请确保以正确的顺序对矩阵进行乘法。