Идеальное сжатие текстур pcx, tga - Форум Игроделов
Пт, 03 Май 2024, 22:59 
 
Приветствую Вас Гость Главная | Регистрация | Вход
Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум Игроделов » UNREAL ENGINE и UDK » МАНУАЛЫ И УРОКИ » Идеальное сжатие текстур pcx, tga (как достичь минимального веса игры путем сжатия текстур)
Идеальное сжатие текстур pcx, tga
_SIM_Дата: Пт, 22 Июн 2012, 20:16 | Сообщение # 1
 
Сообщений: 22
Награды: 0
Репутация: 16
Статус: Offline
Итак, как же достичь минимального веса игры путем сжатия текстур?
Я долго эксперементировал, и, наконец, нашел этому решение. Даже несжимаемые форматы tga и pcx, которые и поддерживаются UDK можно сжать в несколько раз!

1. Для этого открываем в Photoshop'е (далее PS), который, естественно, нам необходим, нашу текстуру. Вот мой пример: (Текстура размером 940x1600)

Сейчас вес в несжатом состоянии составляет 4,3 MB
2. Теперь щелкаем в PS: Изображение -> Режим -> Индексированные цвета
И тут подбираем количество цветов, содержащихся в нашей сжатой текстуре. Подбираем на глаз - как вас устроит. Все зависит от цветности изображения. Чем более текстура однородная, тем меньше она потеряет в качестве. В моем случае текстуру без заметных потерь качества можно было сжать аж до 32 цветов.


3. Теперь осталось сохранить наш файл. Крайне рекомендую именно PCX формат! Т.к. после такого способа сжатия, UDK часто не хочет правильно отображать текстуру.
Эффект оказался не супер-мега-круто-сжимаемым, но весьма заметен.

MyPackage.upk - Пак с несжатой текстурой.
MyPackage2.upk - Пак со сжатой текстурой.
Кто знает еще возможные способы сжатия - пишите, буду крайне благодарен!
 
СообщениеИтак, как же достичь минимального веса игры путем сжатия текстур?
Я долго эксперементировал, и, наконец, нашел этому решение. Даже несжимаемые форматы tga и pcx, которые и поддерживаются UDK можно сжать в несколько раз!

1. Для этого открываем в Photoshop'е (далее PS), который, естественно, нам необходим, нашу текстуру. Вот мой пример: (Текстура размером 940x1600)

Сейчас вес в несжатом состоянии составляет 4,3 MB
2. Теперь щелкаем в PS: Изображение -> Режим -> Индексированные цвета
И тут подбираем количество цветов, содержащихся в нашей сжатой текстуре. Подбираем на глаз - как вас устроит. Все зависит от цветности изображения. Чем более текстура однородная, тем меньше она потеряет в качестве. В моем случае текстуру без заметных потерь качества можно было сжать аж до 32 цветов.


3. Теперь осталось сохранить наш файл. Крайне рекомендую именно PCX формат! Т.к. после такого способа сжатия, UDK часто не хочет правильно отображать текстуру.
Эффект оказался не супер-мега-круто-сжимаемым, но весьма заметен.

MyPackage.upk - Пак с несжатой текстурой.
MyPackage2.upk - Пак со сжатой текстурой.
Кто знает еще возможные способы сжатия - пишите, буду крайне благодарен!

Автор - _SIM_
Дата добавления - 22 Июн 2012 в 20:16
DjeeZДата: Сб, 23 Июн 2012, 13:42 | Сообщение # 2
 
Сообщений: 270
Награды: 8
Репутация: 291
Статус: Offline
_SIM_, рассматривать вопрос экономии памяти за счет текстур лучше - комплексно, а не применительно к одной конкретной текстуре.
Если у текстуры 4 канала, то можно считать что имеются четыре массива с данными которые можно использовать. Т.е. их можно рассматривать как четыре текстуры. И мы вольны сами решать что мы в них поместим. Не всегда оправданно уменьшать качество цвета. Но иногда можно, особенно в темноте. Можно сделать черно-белую текстуру, в которой передадим детали изображения, а что-бы разукрасить ее, использовать цветную текстуру меньшего разрешения. Так в свое время поступили телевизионщики, когда делали телевидение цветным и пытались впихнуть информацию о цветах в существующие телевизионные стандарты. Так, теперь, часто делают и игроделы. В зависимости от материала, шейдера - можно использовать и более хитрые приемы - была бы фантазия.
 
Сообщение_SIM_, рассматривать вопрос экономии памяти за счет текстур лучше - комплексно, а не применительно к одной конкретной текстуре.
Если у текстуры 4 канала, то можно считать что имеются четыре массива с данными которые можно использовать. Т.е. их можно рассматривать как четыре текстуры. И мы вольны сами решать что мы в них поместим. Не всегда оправданно уменьшать качество цвета. Но иногда можно, особенно в темноте. Можно сделать черно-белую текстуру, в которой передадим детали изображения, а что-бы разукрасить ее, использовать цветную текстуру меньшего разрешения. Так в свое время поступили телевизионщики, когда делали телевидение цветным и пытались впихнуть информацию о цветах в существующие телевизионные стандарты. Так, теперь, часто делают и игроделы. В зависимости от материала, шейдера - можно использовать и более хитрые приемы - была бы фантазия.

Автор - DjeeZ
Дата добавления - 23 Июн 2012 в 13:42
_SIM_Дата: Сб, 23 Июн 2012, 15:28 | Сообщение # 3
 
Сообщений: 22
Награды: 0
Репутация: 16
Статус: Offline
DjeeZ, Да! Можно объединить несколько текстур в одну, а затем придать ей тон... Ты прав, действительно) Но с этим опять же, много мороки...
 
СообщениеDjeeZ, Да! Можно объединить несколько текстур в одну, а затем придать ей тон... Ты прав, действительно) Но с этим опять же, много мороки...

Автор - _SIM_
Дата добавления - 23 Июн 2012 в 15:28
DjeeZДата: Сб, 23 Июн 2012, 18:26 | Сообщение # 4
 
Сообщений: 270
Награды: 8
Репутация: 291
Статус: Offline
Не "мороки", а "работы". Много "мороки" будет у тех, кто не захочет работать. smile (Морока будет, а результата - нет). smile
А работы тут не много. Сделать одноцветную текстуру. И сделать уменьшенную, пусть в два раза по длине и высоте, цветную текстуру. Одноцветная будет занимать 1/3 от трехцветной, а цветная - 1/4 от первоначальной. Осталось их смешать в шейдере - и получим в два раза меньшую занимаемую видеопамять практически не теряя в качестве. А если учитывать, что ту уменьшенную текстуру можно использовать без изменений при удалении от объекта (или для системы лодов), то в этом случае - при подсчете выигрыша в комплексе - цветную текстуру можно совсем не считать и получим трехкратный выигрыш на пустом месте.
 
СообщениеНе "мороки", а "работы". Много "мороки" будет у тех, кто не захочет работать. smile (Морока будет, а результата - нет). smile
А работы тут не много. Сделать одноцветную текстуру. И сделать уменьшенную, пусть в два раза по длине и высоте, цветную текстуру. Одноцветная будет занимать 1/3 от трехцветной, а цветная - 1/4 от первоначальной. Осталось их смешать в шейдере - и получим в два раза меньшую занимаемую видеопамять практически не теряя в качестве. А если учитывать, что ту уменьшенную текстуру можно использовать без изменений при удалении от объекта (или для системы лодов), то в этом случае - при подсчете выигрыша в комплексе - цветную текстуру можно совсем не считать и получим трехкратный выигрыш на пустом месте.

Автор - DjeeZ
Дата добавления - 23 Июн 2012 в 18:26
PRINCEДата: Сб, 23 Июн 2012, 19:46 | Сообщение # 5
 
Сообщений: 1871
Награды: 15
Репутация: 814
Статус: Offline
выгрузка+текстурные лоды..............
 
Сообщениевыгрузка+текстурные лоды..............

Автор - PRINCE
Дата добавления - 23 Июн 2012 в 19:46
Форум Игроделов » UNREAL ENGINE и UDK » МАНУАЛЫ И УРОКИ » Идеальное сжатие текстур pcx, tga (как достичь минимального веса игры путем сжатия текстур)
  • Страница 1 из 1
  • 1
Поиск:
Загрузка...

Game Creating CommUnity © 2009 - 2024