Зависит от ваших целей / объектов.
Объекты, которые никогда не меняются, перемещаются путем установки матриц (это можно сделать с помощью glRotatef / glTranslatef и тому подобное).Это, конечно, быстрее, чем преобразование вершины объекта в вершину.Объект хранится в DisplayList, VertexArray или в VBO.Вы МОЖЕТЕ отправить каждый объект целиком каждый раз, используя команду glVertex *, но если объект никогда не изменяется, в этом нет необходимости.
Символы (скины / фальсификации) преобразуются с использованием нескольких матриц, которые обычно обрабатываются вершинным шейдером,Вы можете сделать это на CPU, если хотите, но если у вас нет ОЧЕНЬ продвинутого механизма такелажа / скининга, в этом нет необходимости.
Вычисления, которые не могут быть полностью выполнены на Videocard, выполняются на CPU.Обычно это системы частиц, ткань и процедурная геометрия, иногда тени (для расчета объема тени с использованием трафаретных теней).Такие объекты обычно сохраняются в памяти, по крайней мере частично, и преобразования выполняются на процессоре.Это строго зависит от оборудования.В зависимости от мощности видеокарты и версии OpenGL можно выполнять некоторые или все эти задачи на видеокарте (без использования ЦП), но не всегда.Например, обычно невозможно построить теневой объем для процедурной геометрии (т. Е. Топология варьирует каждый кадр, а также положение вершин) в графическом процессоре.Однако есть способы избежать этого, и ситуация может измениться в будущих версиях.