Space_Unicorn Posted September 3, 2019 Share Posted September 3, 2019 Суть вопроса в названии топика. После отрисовки огромного кол-ва картинок в рендертаргет, функция сжирает до гигабайта видеопамяти, которую потом никак не освобождает. Картинки рисуются единожды, но даже спустя большое кол-во времени память не освобождается, вариант с DxTexture не актуален, т.к занимает куда больше времени, что очень критично в моей ситуации. Как быть? Это какой-то баг, или так и должно быть? Link to comment
TheNormalnij Posted October 17, 2019 Share Posted October 17, 2019 Нужно проверять, удаляются ли rendertarget'ы Link to comment
Space_Unicorn Posted October 17, 2019 Author Share Posted October 17, 2019 RT Удаляются, память не освобождается даже если рендер идёт в скрин Link to comment
Kenix Posted October 22, 2019 Share Posted October 22, 2019 (edited) Может стоит рисовать на одном RT все текстуры а какую-то часть отрисовывать потом через https://wiki.multitheftauto.com/wiki/DxDrawImageSection как вариант вообще надо детальнее смотреть (код и т.д), желательно бы ещё протестить на разных версиях мта. Edited October 22, 2019 by Kenix Link to comment
XaskeL Posted October 22, 2019 Share Posted October 22, 2019 Делать Атласы или использовать .DDS заранее/грузить в R8G8B8A8 (ARGB). Этого не исправить, использовать только DxTexture. Текстурный атлас - это большое изображение или "атлас", который содержит много изображений меньшего размера, каждое из которых является текстурой для какой-то части объекта. Подтекстуры можно накладывать путём указания текстурных координат на атласе, то есть выбирая только определённую часть изображения. В приложениях, в которых часто используются мелкие текстуры, более эффективно хранить текстуры в текстурном атласе, так как: Позволяет сократить количество смен состояний до одного для всего атласа. Уменьшает количество занятых текстурных слотов до одного для всего атласа. Минимизируется фрагментация видеопамяти. Появляется возможность использования NPOT "текстур" (Т.е. атлас будет соблюдать Power of Two, а его элементы можно делать произвольного размера). Однако, использование атласов может приводить к возникновению новых проблем: Cовмещение краёв подтекстур становится нетривиальной задачей. Становится сложно или невозможно использовать мипмаппинг При использовании фильтрации текстуры необходимо добавлять отступы, чтобы соседние подтекстуры не смешивалась с нужной. Создание атласов вручную может быть трудоёмко, поэтому потребуется использовать специальные программы для генерирования атласов. Возникают небольшие потери памяти, так как часть атласа может быть не занята текстурами. Link to comment
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now