Как стать автором
Обновить

Комментарии 8

Я так и не понял, какое отношение имеет формат PNG к статье?

PNG являются исходными файлами, которые преобразуются в DDS. Т.к. создавать файлы сразу в DDS возможности не представляется.
Формулировка
Сжатие PNG в DDS в формате DXT5
на мой взгляд несколько сбивает с толку, потому что палитровый PNG сам по себе 1 байт на пиксель, да ещё и сжат DEFLATE (т.е. он изначально меньше чем DXT5, как его ещё можно «сжать» ?)
Кроме того из статьи неясно почему таки PNG. Это же Python — можно взять, например, pillow и работать с практически любым форматом. Ну или воспользоваться конвертером типа ImageMagick.
Статья скорее «Особенности S3TC DXT5», что там на вход PNG и вывод DDS по сути не так важно.
1. pillow не конвертирует в DDS.
2. Таки на счёт формулировки согласен, лучше заменить слово «сжатие» на «конвертацию», заголовок поправил.
3. ImageMagick принимает много форматов на вход и на выходе даст тоже DDS. PNG взят за пример. Можно было рассмотреть BMP, но проблемы после преобразования в DXT5 останутся такими же.
PNG действительно может занимать меньше места на диске, чем DDS. Мой контекст был касательно использования ресурсов памяти оперативной/видеокарты.

Не совсем понятно зачем заморачиваться с DXT5 для пиксель арта. Пикселей не так много, такого же сжатия можно добиться палитрой на 256 цветов. Дополнительно палитру можно будет менять для ретро эффектов.

Да, можно, но бывает такое, что надо. Зачем и почему — возможно в будущем напишу статью. И да, если маленькие пиксельные картинки — то лучше оставлять PNG с малой палитрой, но если картинка большая и растровая — то тут без сжатия будет сильно много ресурсов будет использоваться. Данная небольшая картинка была приведена лишь как пример.
Так с большими и растровыми картинками и DXT5 лучше справляется. К тому-же можете глянуть на YCoCg-DXT5, если хочется качества.
1. Потому, что не знал о его существовании.
2. Посмотрю. При беглом ознакомлении не уверен, что текущие инструменты в моём проекте будут его поддерживать(pyglet/Wand). Т.к. насколько я понял надо будет отделять альфа канал от RGB для YCoCg-DXT5
Я то и на распространённыеDXT1/DXT5 еле нашел инструментарий под python, мало кто таким вообще занимается извращением.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории