Вы можете использовать GLSL для написания шейдера, который обрабатывает преобразование для вас.Однако вам нужно как-то сделать матрицу преобразования доступной для шейдера.
Если вы делаете это в 2D, возникает аналогичный вопрос (для квадроциклов, но теория та же самая) в стеке разработки игрexchange: Основы рисования в 2D с помощью шейдеров OpenGL 3 .
Обратите внимание, что второй ответ на этот вопрос, который дает более подробную информацию, имеет ссылку на OpenGL.org, у которого сломан якорь,Я считаю, что это должно ссылаться на Instanced массивы .
Пример экземпляра, который я нашел после быстрого поиска в Google: Экземпляр шейдера .В этом уроке вы, вероятно, захотите взглянуть на вершинный шейдер для примера матрицы преобразования, примененной с использованием буфера текстуры для хранения матрицы.Пример кода - Delphi, но он должен быть читабельным.Сайт на немецком языке, но вы всегда можете использовать Google переводчик.