Так что я использую GLM для генерации MVP для каждой конкретной модели, например так: (Игнорируем ошибки пространства имен, я использую пространство имен glm, но иногда мне просто нравится писать его)
//Generate MVP
glm::mat4 Projection = glm::perspective(45.0f, 4.0f / 3.0f, 0.1f, 100.0f);
glm::mat4 View = glm::lookAt(
vec3(4, 4, 3),
vec3(0, 0, 0),
vec3(0, 1, 0)
);
glm::mat4 Model = mat4(1.0f);
glm::mat4 MVP = Projection * View * Model;
Если я хочу, чтобы моя модель находилась в другом месте, чем в источнике, я должен просто изменить
glm::mat4 Model = mat4(1.0f);
на
glm::mat4 Model = glm::gtx::translate(x, y, z);