Меши так и перемещаются.
Матрица модели(точнее объекта который визуализирует модель) (так называемая мировая матрица) это есть матрица перемещения * матрица вращения * матрица масштаба, и её надо обновлять постоянно как что-то изменилось (изменили масштаб, ориентацию или позицию).
На CPU нужно вычислить WVP, потому что на GPU эти вычисления будут идти на каждую вершину, а вершин очень много.
Код
Matrix4 W = GetWorldMatrix();
Matrix4 V = GetViewMatrix();
Matrix4 P = GetProjectionMatrix();
Matrix4 WVP = P * V * W;
посылаем в шейдер WVP
Шейдер
Код
#version 330 core
layout(location = 0) in vec3 lay_position;
void main(){
gl_Position = WVP * vec4( lay_position, 1.0f ); // перемещаем текущую вершину на нужную позицию
}