Трехмерная (3D) компьютерная графика |
---|
Основы |
Основное использование |
похожие темы |
Сжатие текстур - это специализированная форма сжатия изображений, предназначенная для хранения текстурных карт в системах рендеринга компьютерной 3D-графики . В отличие от обычных алгоритмов сжатия изображений, алгоритмы сжатия текстур оптимизированы для произвольного доступа .
Компромиссы [ править ]
В своей основополагающей статье о сжатии текстур [1] Бирс, Агравала и Чадда перечисляют четыре особенности, которые, как правило, отличают сжатие текстур от других методов сжатия изображений. Вот эти особенности:
- Скорость декодирования
- Крайне желательно иметь возможность рендеринга непосредственно из сжатых данных текстуры, поэтому, чтобы не влиять на производительность рендеринга, распаковка должна быть быстрой.
- Произвольный доступ
- Поскольку предсказать порядок, в котором средство визуализации обращается к текселям, было бы сложно, любая схема сжатия текстур должна обеспечивать быстрый произвольный доступ к распакованным данным текстуры. Это, как правило, исключает многие более известные схемы сжатия изображений, такие как JPEG или кодирование длин серий .
- Скорость сжатия и визуальное качество
- В системе рендеринга сжатие с потерями может быть более приемлемым, чем для других случаев использования. Некоторые библиотеки сжатия текстур, такие как crunch [2], позволяют разработчику гибко выбирать между скоростью сжатия и визуальным качеством, используя такие методы, как оптимизация скорости и искажения (RDO).
- Скорость кодирования
- Сжатие текстур более терпимо к асимметричным скоростям кодирования / декодирования, поскольку процесс кодирования часто выполняется только один раз в процессе разработки приложения.
Учитывая вышеизложенное, большинство алгоритмов сжатия текстур включают некоторую форму векторного квантования с фиксированной скоростью и потерями небольших блоков пикселей фиксированного размера в небольшие блоки битов кодирования фиксированного размера, иногда с дополнительными дополнительными этапами предварительной обработки и постобработки. Блочное кодирование с усечением - очень простой пример этого семейства алгоритмов.
Поскольку их шаблоны доступа к данным четко определены, распаковка текстуры может выполняться «на лету» во время рендеринга как часть общего графического конвейера , уменьшая общую пропускную способность и потребности в хранении всей графической системы. А также карты текстур, сжатие текстур может также использоваться для кодирования других видов рендеринга карты, в том числе карт рельефа и поверхность карт нормалей . Сжатие текстур также может использоваться вместе с другими формами обработки карт, такими как карты MIP и анизотропная фильтрация .
Доступность [ править ]
Некоторые примеры практических систем сжатия текстур: S3 Texture Compression (S3TC), PVRTC , Ericsson Texture Compression (ETC) и Adaptive Scalable Texture Compression (ASTC); они могут поддерживаться специальными функциональными блоками в современных графических процессорах .
OpenGL и OpenGL ES, реализованные на многих картах видеоускорителей и мобильных графических процессорах, могут поддерживать несколько распространенных видов сжатия текстур - как правило, за счет использования расширений поставщиков.
Сжатие текстур может применяться для уменьшения использования памяти во время выполнения, в отличие от сжатия текстур, предназначенного для уменьшения загрузки или размера диска. Данные текстуры часто являются крупнейшим источником использования памяти в мобильном приложении.
См. Также [ править ]
- Блочное кодирование с усечением (BTC)
- Векторное квантование
- Сжатие цветных ячеек
Ссылки [ править ]
- ^ Эндрю Бирс; Маниш Агравала; Навин Чадда (1996), «Рендеринг из сжатых текстур» , Компьютерная графика, Proc. SIGGRAPH : 373-378
- ^ "crunch open source библиотека сжатия текстур" . GitHub . Проверено 13 сентября 2016 .
Внешние ссылки [ править ]
- http://gamma.cs.unc.edu/GST/ GST: сверхсжатые текстуры с возможностью декодирования с помощью графического процессора
Эта статья, связанная с компьютерной графикой, является незавершенной . Вы можете помочь Википедии, расширив ее . |