3.3.1) Сканировать DDS (включено по умолчанию).
3.3.2) Сканировать TGA (включено по умолчанию).
3.3.3) Конвертировать BMP, TGA, PNG, JPG, JPEG, GIF, TIF, TIFF в DDS (Выключено
по умолчанию)
.
3.3.4) Кодировать в DXT при некратности 4.
У движка игры есть проблемы с чтением BC-блоков при разрешении не кратном 4.
Поэтому, если программа находит BC-кодированный файл не кратный 4 - то по умолчанию кодирует его в 87`ой формат.
3.3.5) Стандартизирует разрешение текстур (актуально для старых частей игры).
3.3.6) Анализ DXT1 DDS-файлов.
Отключение этого параметра имеет смысл лишь тогда, когда нужно по-быстрому обработать большой мод. Просто сжав несжатые файлы и почистить неиспользуемые альфа-каналы.
3.3.7) Удаление "чёрного" альфа-канала.
Включать этот параметр стоит осмысленно, ибо он напрочь удаляет прозрачность из полностью прозрачных текстур.
3.3.8) Кодировка "чёрного" альфа-канала в DXT1
.
Включение этого параметра может сэкономить немного памяти. Но из-за бага в движках GEM-2.x - этот параметр не стоит оставлять включенным при отключенном 9 и 10 пунктах меню не в целях долгосрочного архивного хранения мода.
GEM-2.x не умеет читать заальфа-канальные данные в DXT1.
3.3.9) Не использовать DXT1 для файлов с не "белым" альфа-каналом
.
Если этот параметр включен, то все файлы с "чёрным" (прозрачным) и черно-белым (1-bit) альфа-каналом, будут кодироваться в DXT5.
При отключенном 8 и 10 пунктах "восстанавливает" файлы, сжатые при отключенных 9 и 10 пунктах.
3.3.10) Отменить запрет предыдущего параметра для изначально DXT1 файлов.
Включение этого параметра, нейтрализирует действие восьмого параметра для DDS-файлов, которые изначально были DXT1.
По поводу последних трёх настроек - всё вроде бы понятно, но на всякий случай оставлю эту ссылку:
http://mow-portal.ru/forum/30-189-3#5114
4) Кнопка "Принять"
Когда все рабочие условия установлены - в главном окне меню нажимайте эту кнопку, после чего программа перейдёт к обработке.
Если вы не трогали никаких настроек и всё оставили по умолчанию, то программа будет:
(Для DDS)
1) Удалять неиспользуемый альфа-канал (путём перекодирования из любого доступного формата в DXT1).
2) Рассчитывать и воссоздавать MiP-уровни (для уменьшения мерцания текстур).
3) Перекодировать не кратные 4 BC-текстуры в 87`ой формат (иначе игра их не увидит).
(Для TGA)
4) Кодировать всё в RLE.
Т.е. на настройках по умолчанию, программа и оптимизирует текстуры, и чинит их взаимодействие с игрой.
Разумеется. Кто-то может возразить, что BC-компрессоры ухудшают качество графики, и даже будут частично правы.
Я изучал этот вопрос:
http://mow-portal.ru/forum/30-189-3#5142
Но у меня есть ряд контр-аргументов:
1)
http://mow-portal.ru/forum/30-189-3#6665
2) По статистике, 95-99% текстур в игре являются сжатыми. И всех всё устраивает.
3) Несжатые текстуры весят в 4-8 раз больше сжатых (имея лишь пренебрежительно малое преимущество по качеству графики).
4) Игровые алгоритмы обработки текстур, меняют отображение текстур таким образом, что вы не сможете отличить сжатую текстуру от несжатой.
Далее - программа будет пытаться обработать все выбранные вами DDS и TGA файлы и/или папки (со всеми подпапками и DDS и TGA файлами в них).
Программа отключает защиту от записи на файлах, и обрабатывает даже скрытые от просмотра файлы.
По завершению работы программа выдаст сообщение "Программа завершила свою работу.".
Можете её закрыть или как обычно, или нажав любую кнопку в выделенном окне программы.
Примечание-1:
Программа не работает ни с какими иными форматами кроме DDS и TGA (в режиме записи).
С форматами BMP, PNG, JPG, JPEG, GIF, TIF, TIFF
программа работает только в режиме чтения.
Программа не работает с файлами с заблокированными дескрипторами (но разумеется - хотя бы раз пытается их открыть).
Программа работает только с DDS-файлами с суб. форматами:
1) DXGI_FORMAT_R10G10B10A2_UNORM (№ 24);
2) DXGI_FORMAT_R8G8B8A8_UNORM (№ 28);
3) DXGI_FORMAT_BC1_UNORM (№ 71);
4) DXGI_FORMAT_BC2_UNORM (№ 74);
5) DXGI_FORMAT_BC3_UNORM (№ 77);
6) DXGI_FORMAT_BC5_UNORM (№ 83)
;
7) DXGI_FORMAT_B5G6R5_UNORM (№ 85);
8) DXGI_FORMAT_B5G5R5A1_UNORM (№ 86);
9) DXGI_FORMAT_B8G8R8A8_UNORM (№ 87);
10) DXGI_FORMAT_B8G8R8X8_UNORM (№ 88);
11) DXGI_FORMAT_B4G4R4A4_UNORM (№ 115);
(Технология палитр не поддерживается).
И TGA-файлами с суб. форматами:
1) TYPE_RGB (№ 2);
2) TYPE_GRAY (№ 3);
3) TYPE_RGB_RLE (№ 10);
4) TYPE_GRAY_RLE (№ 11);
При плотности данных на пиксель, равной 8, 24 или 32 бита.
(Технология палитр не поддерживается).
Примечание-2:
Программа может вызываться из других приложений с использованием ключей-параметров.
Подробнее можно посмотреть в пункте обновлений:
UPD-15: v1.1m8 (RELEASE) от 31.08.22.
Внимание: ключи-параметры не имеют защиты от дурака, и должны задаваться осознано.
Порядок задачи параметров и файловых адресов - свободный.
Личное примечание (3):
Разработка этой программы ведётся уже больше 2 лет, а некоторых её алгоритмов взаимодействия с форматами - итого больше.
Изначально - эта программа являлась лишь огрызком от моей более старой программы, и создавалась только с целью подготовки крупных модов к архивации. Но сейчас - программа обросла таким кол-вом алгоритмов и спецификаций, а т.ж. была отлажена прогонкой через терабайты модов до той степени, что мне уже нестрашно выкидывать её в народ. Хоть и на всякий случай скажу делать бэкапы.
Программа имеет весь нужный мне функционал; Имеет неплохую эффективность; Пусть по первой и не идеально, но прошла проверку временем.
Пользуюсь ей на постоянной основе.
С крупных модов программа может отжать от 3 до 30% процентов веса. Но в среднем - примерно 10-15% веса на базовых настройках.
Тут всё зависит от ответственности мододела и направленности мода.
Для примера полностью распаковал и оптимизировал несколько модов.
Вот их результаты:
1) Tanks Only MOD (v1.0.052) - сбросил 3.19% веса; ("из коробки" мод отлично оптимизирован).
2) # v a l o u r (патч 73) - сбросил 3.53% веса; ("из коробки" мод отлично оптимизирован).
3) UFO aftermath (v.0.1.9) - сбросил 4.91% веса; ("из коробки" мод отлично оптимизирован).
4) After The Blast A Fallout Mod - сбросил 8.87% веса; ("из коробки" мод неплохо оптимизирован).
5) Robz realism mod 1.28.1 - сбросил 8.92% веса; ("из коробки" мод неплохо оптимизирован).
6) Armor Balance - сбросил 8.94% веса; ("из коробки" мод неплохо оптимизирован).
7) Vietnam Redux 1.9 - сбросил 13.21% веса; ("из коробки" мод плоховато оптимизирован).
8) Apocalypse World War 3 v1.2 - сбросил 14.1% веса; ("из коробки" мод плоховато оптимизирован).
9) Red Frog mod 2.3 - сбросил 20.11% веса; ("из коробки" мод оптимизирован как мусор).
10) Terminator. Customizable Skirmish v2.1 - сбросил 22.75% веса; ("из коробки" мод оптимизирован как мусор).
11) Paper Panzer II - сбросил 25.15% веса; ("из коробки" мод оптимизирован как мусор).
По сути, хоть прога и для ленивых. Но она остаётся узкоспециальзиованным софтом.
Который нужно применять со знанием дела.
Программа не является полностью универсальной.
Без необходимости не стоит проходится ей по текстурам эффектов и интерфейса.
Для тех, кто хочет посмотреть "чё там внутри";
Программа распространяется вместе с исходным кодом для "Visual Studio 2017 Community".
Обновления:
UPD-9: v1.1m2 (RELEASE)
Исправил: анализ альфа-канала в TGA-модуле.
Исправил: удаление чисто черного альфа-канала.
UPD-10: v1.1m3 (RELEASE)
Исправил: анализ альфа-канала в TGA-модуле.
UPD-11: v1.1m4 (RELEASE)
Исправил: декодирование альфа-канала BC-блоков.
Изменил: MiP-фильтр на default.
UPD-12: v1.1m5 (RELEASE)
Добавлен: режим "Жёсткой альфы".
Добавлен: режим "Игнорирования цвета за альфа-каналом".
Добавлен: режим "Стандартизации разрешения".
Изменил: фильтр на "MITCHELL".
Изменил: параметры запуска многототока.
UPD-13: v1.1m6 (RELEASE)
Добавлена: английская локализация.
Добавлена: возможность переходить по пунктам меню на пробел, бэкспейс и кнопки лево/право.
Исправлен: ряд мелких багов.
Изменил: DDS`ки с MiP`ами не кратными 4 теперь кодируются без сжатия по умолчанию.
UPD-14: v1.1m7 (RELEASE)
Исправил "прыгающий" английский текст.
Исправил добавление несуществующего альфа-канала на изображение без альфа-канала.
UPD-15: v1.1m8 (RELEASE) 31.08.22
1. Исправлен вылет программы при использовании фильтра "DEFAULT";
2. Исправлено неправильное кодирование бинарной альфы изображений не кратных 4;
(Максимальная фильтрация альфы теперь триангуляционная. Если кому испортил какую текстуру - извините.
Отдельное спасибо пользователю TonaTor за найденный редкий специфический баг);
3. Отключена принудительная перезапись BC-кодированных текстур не кратных 4;
4. Добавлена возможность конвертировать: BMP, TGA, PNG, JPG, JPEG, GIF, TIF, TIFF изображения в DDS.
(Теперь программа должна постоянно иметь рядом с собой библиотеку "FreeImage.dll");
5. Добавлено отображение процента готовности масштабирования;
6. Добавлено описание и нормальная иконка для программы;
7. Добавлена поддержка ключей-параметров для запуска программы.
Вот набор ключей:
(
-ZERO_MIP_MAP+ (Генерация MiP-уровней (Отключено))
-ZERO_MIP_MAP- (Генерация MiP-уровней (Включено))
-MULTIPLE_OF_FOUR+ (Генерация MiP-уровней при кратности 4 (Включено))
-MULTIPLE_OF_FOUR- (Генерация MiP-уровней при кратности 4 (Отключено))
-GENERATE_SOURSE_MIP+ (Генерировать ближайшее к исходному кол-во MiP-уровней (Включено))
-GENERATE_SOURSE_MIP- (Генерировать ближайшее к исходному кол-во MiP-уровней (Отключено))
-DXT1_ANALYSE+ (Анализ DXT1 DDS-файлов (Включено))
-DXT1_ANALYSE- (Анализ DXT1 DDS-файлов (Отключено))
-DELETE_BLACK_ALPHA+ (Удаление "чёрного" альфа-канала (Включено))
-DELETE_BLACK_ALPHA- (Удаление "чёрного" альфа-канала (Отключено))
-NOT_USE_DXT1_FOR_MONOCHROME_ALPHA+ (Не использовать DXT1 для файлов с не "белым" альфа-каналом (Включено))
-NOT_USE_DXT1_FOR_MONOCHROME_ALPHA- (Не использовать DXT1 для файлов с не "белым" альфа-каналом (Отключено))
-DXT1_LOYAL+ (Отменить запрет предыдущего параметра для изначально DXT1 файлов (Включено))
-DXT1_LOYAL- (Отменить запрет предыдущего параметра для изначально DXT1 файлов (Отключено))
-ENCODE_IN_DXT_WITH_A_NON_MULTIPLICITY_OF_FOUR+ (Кодировать в DXT при некратности 4 (Включено))
-ENCODE_IN_DXT_WITH_A_NON_MULTIPLICITY_OF_FOUR- (Кодировать в DXT при некратности 4 (Отключено))
-ALIEN_LANG+ (Переключает программу на альтернативный язык (Английский))
-ALIEN_LANG- (Переключает программу на изначальный язык (Русский))
-THREAD_PRIORITY_HIGHEST (Задаёт высокий приоритет программе)
-THREAD_PRIORITY_NORMAL (Задаёт средний приоритет программе)
-THREAD_PRIORITY_IDLE (Задаёт низкий приоритет программе)
(Команды установки соответствующего фильтра)
-DEFAULT
-BOX
-TRIANGLE
-QUADRATIC
-BSPLINE
-MITCHELL
-LANCZOS
-KAISER
-UsingMultiThreads+ (Использовать многопоток (Включено))
-UsingMultiThreads- (Использовать многопоток (Отключено))
-NotUsingOneCore+ (Не загружать одно ядро (Включено))
-NotUsingOneCore- (Не загружать одно ядро (Отключено))
-NotUsingTwoCore+ (Не загружать два ядра (Включено))
-NotUsingTwoCore- (Не загружать два ядра (Отключено))
-STANDARDIZING_RESOLUTION+ (Стандартизировать разрешение (Включено))
-STANDARDIZING_RESOLUTION- (Стандартизировать разрешение (Отключено))
-HARD_ALPHA+ (Жёсткая альфа (Включено))
-HARD_ALPHA- (Жёсткая альфа (Отключено))
-IGNORE_COLOR_BEHIND_ALPHA_CHANNEL+ (Игнорировать цвет за альфа-каналом (Включено))
-IGNORE_COLOR_BEHIND_ALPHA_CHANNEL- (Игнорировать цвет за альфа-каналом (Отключено))
-DDS_OPTIMIZE+ (Сканировать DDS (Включено))
-DDS_OPTIMIZE- (Сканировать DDS (Отключено))
-TGA_OPTIMIZE+ (Сканировать TGA (Включено))
-TGA_OPTIMIZE- (Сканировать TGA (Отключено))
-CONVERT_TO_DDS+ (Конвертировать BMP, TGA, PNG, JPG, JPEG, GIF, TIF, TIFF в DDS (Включено))
-CONVERT_TO_DDS- (Конвертировать BMP, TGA, PNG, JPG, JPEG, GIF, TIF, TIFF в DDS (Отключено))
-NO_INTERFACE (Не предлагать пользователю меню настройки)
)
Отказ от ответственности:
Программа рассчитана на опытных пользователей.
Программа распространяется "как есть" и никаких гарантий её работоспособности нет и даже не подразумевается!
Ссылка на форум:
http://mow-portal.ru/forum/30-189-3#6252