У меня есть приложение OpenGL 2.1, в котором пользователь может загружать несколько изображений, которые могут различаться по ширине и высоте, в качестве текстур, чтобы они отображались на своих соответствующих четырехугольных объектах на экране.
Я изначально предварительно загружал все изображения перед их рендерингом, но проблема возникает, когда пользователь решает загрузить сотни, а в редких случаях тысячами, что приводит к очень высокому использованиюБАРАН.Я также отменяю выделение растрового контейнера сразу же после преобразования их в текстуры.Кроме того, я попытался уменьшить размер изображений на основе размеров их соответствующих четырехугольников, которые будут отображаться.Но это, кажется, только накладывает повязку на проблему, поскольку есть возможность, что пользователь может загрузить больше изображений и загрузить больше четырех объектов;следовательно больше оперативной памяти.
Без ограничения количества загружаемых ими изображений я не знаю, как правильно управлять текстурами.Я также читал технику использования объектов Pixel Buffer: передача данных изображения в буфер -> рендеринг на одной многоразовой текстуре, повторение процесса.Но я немного озадачен тем, как действовать дальше, поскольку, как представляется, существует предположение, что все изображения должны быть одинакового размера до обновления текстуры.Существует также возможность снижения производительности, например, резкое снижение частоты кадров в процессе загрузки изображений в качестве текстур в OpenGL.Тем не менее, я очень хочу быть доказан, что ошибся в этом.
Может кто-нибудь пролить свет на этот вопрос или указать мне правильное направление?