Согласно руководству , glGenTextures выделяет только «имена» текстур (например, идентификаторы) без «размерности». Таким образом, вы фактически не выделяете текстурную память как таковую, и издержки здесь незначительны по сравнению с фактическим выделением текстурной памяти.
glTexImage фактически будет контролировать количество текстурной памяти, используемой для текстуры. Лучшее использование текстурной памяти вашим приложением будет зависеть от многих факторов: включая максимальный рабочий набор текстур, используемых для каждого кадра, доступную выделенную текстурную память аппаратного обеспечения и пропускную способность текстурной памяти.
Что касается вашего вопроса о типичной игре - какую игру вы создаете? Консольные игры начинают заполнять емкость диска Blu-Ray (я работал над названием для PS3, которое изначально не проектировалось для Blu-Ray). Большая часть этого пространства - текстуры. С другой стороны, загружаемые веб-игры гораздо более ограничены.
По сути, вам нужно поработать с разумным игровым дизайном и составить оценку:
1. Общее количество текстур, используемых вашей игрой.
2. Максимальное количество текстур, используемых одновременно.
Затем вам нужно взглянуть на ваше целевое оборудование и решить, как сделать все это подходящим.
Вот ссылка на старую статью для разработчиков игр, которая поможет вам начать:
http://number -none.com / удар / бумага / implementing_a_texture_caching_system.pdf