Я играл с созданием матрицы модели и понял, что порядок операций масштабирования и перевода имеет значение. Я использую Qt для своих матриц и использую QMatrix4x4 и использую openGL (но это должно быть независимым от библиотеки и платформы и связано с математикой). Результат уменьшения модели и последующего ее перевода работает только так, как ожидалось, вот так.
QMatrix4x4 model;
model.translate(some_vec3d);
model.scale(some_vec3d);
У меня сложилось впечатление, что математически, поскольку масштаб появляется в первых 3x3 матрицы, а перевод влияет только на последний столбец матрицы (4-й столбец), порядок независим. Когда я смотрю на матрицы, я понимаю, что порядок имеет значение, но не могу понять, почему.