Вам необходимо научиться применять геометрические преобразования к входным геометриям (вершинам ваших мешей).
В любом случае это происходит путем вычисления и использования матриц поворота. Для получения математической основы гуглите операции с матрицами и векторами (линейная алгебра, выч. геометрия).
Как это делать конкретно в OpenGL - зависит от используемой вами версии API. Если это "старый" OpenGL, например версии 2.0, то там glRotate и прочие функции оперирования матрицами мировых и видовых преобразований. Если это OpenGL 3.0 и позже - то читайте про вершинные шейдеры и преобразования вершин в шейдерах.
glRotatef(angle, x, y, z); вращает на угол angle вокруг вектора (x, y, z). Если вы хотите вращать относительно конкретной оси, задавайте вектор вращения так: (1, 0, 0) - это, например относительно оси х.
Учи матрицы и кватернионы.
Грубо говоря перемножение на матрицу это и есть поворот.
С кватернионами я не силен. Но принцип примерно тот же надо помножить или тип того и будет поворот ))