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