Как получить доступ к данным текстуры на графическом процессоре в OpenGL? - PullRequest
5 голосов
/ 21 марта 2012

Я не до конца понимаю, как осуществляется доступ к данным текстуры в графическом процессоре. Если возможно - кто-нибудь может объяснить это?

  1. Когда количество текстурных блоков ограничено, ограничивает ли это количество текстур, которые я могу генерировать с помощью glGenTextures() и загружать в GPU с помощью glTexImage2D()? Или это ограничивает только количество текстурных единиц, которые можно связать, используя glBindTexture()?

  2. Что я действительно хотел бы сделать, так это уметь загружать все свои текстуры в графический процессор - даже если их количество превышает количество доступных текстурных блоков. Когда нужна текстура, я бы просто привязал ее к текстурному блоку, используя glBindTexture(). Возможно ли это?

1 Ответ

4 голосов
/ 21 марта 2012

Ad. 1. Текстурные единицы равны количеству текстур, которые вы можете связать одновременно.

Ad. 2. Это именно то, что нужно - вы загружаете столько текстур, сколько хотите, и привязываете только те, которые необходимы для текущего вызова. Это одна из задач драйвера графического процессора для автоматической выдачи требуемых данных (т. Е. Текстур текстур, привязанных в данный момент) к графическим процессорам и оперативной памяти системы.

...