Отображение списков и VBO обычно не помогает с тривиальной геометрией.Иногда они могут даже замедлить его, если я правильно помню из синей книги OpenGL.
Списки отображения были «так же хороши, как и они» в OpenGL 1.x, но считались устаревшей функциональностью с введением VBO.
Было бы полезно, если бы мы знали, какая у вас целевая версия OpenGL.В OpenGL 1.x в режиме Immediate вы настраиваете «матрицу камеры» (у OpenGL ее нет, вы просто оставляете ее транспонирование в стеке матриц), затем нажимаете и извлекаете матрицы для каждой модели в цикле рендеринга.
Используя расширения OpenGL 2.x или 1.xARB, вы можете поместить ваши преобразования в единообразные матрицы и затем обновить униформу для каждой модели.Это на самом деле не особо выгодно, так как обновление униформы также медленное.
Я думаю, что лучшее, что вы могли бы сделать, - это предоставить OpenGL (набор) матриц атрибутов в шейдере.Это уменьшит нагрузку на ваш процессор за счет передачи всех данных за один раз.Я не могу думать о технических деталях реализации, но я думаю, что атрибуты относятся к каждой вершине, поэтому вам нужно будет передать индекс того, где искать в другом буфере, который вы использовали для размещения преобразований.Я никогда не делал этого, так как большинство моделей содержат больше информации о геометрии и текстуре, чем время для настройки преобразований.
Как говорится, перепроектирование его с помощью VBO и предоставление преобразований в атрибутах, вероятно, является большой работой для8% выигрыша в использовании процессора.8% на одно ядро, вероятно, 2,0 ГГц Core 2 Duo
EDIT
Единообразный буферный объект - это то, что я действительно хотел.Вероятно, для равномерной компоновки блоков.Синяя книга (и, возможно, Оранжевая книга) и Google содержат более подробную информацию.