Я пытаюсь реализовать преобразование объекта с использованием матриц, но это работает странно.Координаты центра объекта не (0,0,0).Перевод и масштабирование выглядят хорошо, но вращение выполняется вокруг (0,0,0) координаты (не вокруг центра объекта).
Мой код Java:
Matrix4f moveOriginMat = new Matrix4f();
Vector3d centroid = new Vector3f(pickedObject.getCentroid().getX() + translationMatrix.m30(), pickedObject.getCentroid().getY() + translationMatrix.m31(), pickedObject.getCentroid().getZ() + translationMatrix.m32());
moveOriginMat.translation(-(float)centroid.x * (scaleMat.m00() - 1), -(float)centroid.y * (scaleMat.m11() - 1), -(float)centroid.z * (scaleMat.m22() - 1));
modelMatrix.set(moveOriginMat);
modelMatrix.mul(scaleMat);
modelMatrix.mul(xRotationMatrix);
modelMatrix.mul(yRotationMatrix);
modelMatrix.mul(zRotationMatrix);
modelMatrix.mul(translationMatrix);
Что я делаю не так?Мне нужно вращать объект вокруг его собственных осей, а не вокруг центра мира.