Граната для обезьяны

Сперва понадобится инструмент ресэмплирования текстур. Желательно пакетный, чтоб не сидеть над каждым файлом.
Его можно самому собрать в Linux, ну вы пони. Ли. А кому родственники не разрешают собирать, могут скачать хотя бы NVIDIA Texture Tools 2 или NVIDIA DDS Utilities под Windows. Да, первый из них только 64х битный. Я спрашивал, говорят, 32х битный индус заболел, и пока никак.
Плюсы Texture Tools (nvzoom.exe) - проще настройки и чуть более качественный результат.
Минусы - выдаёт TGA, который надо потом паковать в DDS (паковатор рядом - nvcompress.exe). Выдаёт поштучно.
Плюсы DDS Utilities (nvdxt.exe) - пакетная обработка каталогов. Настройки на каждый чих, куча алгоритмов (стрёмных).
Минусы - за пивом не бегает. Но я выбрал его.
Также понадобятся консольная версия архиватора 7Zip - файл 7za.exe (распространяется с 25% текстурами) и сама Консоль - cmd.exe (свободно скачивается).
В папке с игрой в \res\packages создайте пустой текстовый файлик и обзовите его, например, xtract.cmd (вот и повод включить отображение расширений в свойствах папки). Запишите в нём емайл, пароль и вот такой текст:
for %%A in (*.pkg) do (
7za x -tzip -y -ir!*.dds %%~fA -o%%~nA
rmdir /s /q %%~nA\gui
rmdir /s /q %%~nA\maps\fx
rmdir /s /q %%~nA\maps\skyboxes
rmdir /s /q %%~nA\objects
rmdir /s /q %%~nA\particles\Decals
rmdir /s /q %%~nA\particles\maps
rmdir /s /q %%~nA\system
)
Создайте ещё один скрипт, занимающийся чисто рисованием - resample.cmd:
nvdxt -rel_scale 0.25, 0.25 -RescaleSinc -dxt1a -all -outsamedir -overwrite -deep
Сжатие 1/4 ака 0.25 по X и по Y. Алгоритм RescaleSinc или, как говорят в народе, lanczos. Оставляйте dxt1a как в этих ваших текстурах. Остальное пусть так будет. Файлы заменяются на своих местах, нигде искать не надо. Если интересно, сообщество математиков может предложить ещё алгоритмы RescalePoint, RescaleBox, RescaleTriangle, RescaleQuadratic, RescaleCubic, RescaleCatrom, RescaleMitchell, RescaleGaussian, RescaleBessel, RescaleHanning, RescaleHamming, RescaleBlackman, RescaleKaiser. Но говно-с, за исключением RescaleKaiser. Кстати, настройки не ограничиваются вышеуказанными. Вы можете забабахать себе хоть Rusty MOD с блэкджеком и понями. PDF только почитайте рядом с программой (англ).
Скрипты готовы. Накидайте инструменты в эту же папку - nvdxt.exe и 7za.exe.
Итак. Итак... Запускайте xtract.cmd на пару минут. Он распаковывает ресурсы и удаляет в распакованном те текстуры, которые бы не хотелось сжимать. Шрифты, эмблемы, вот это всё. Пока выполняется, там местами сообщается про нишмагла - это нормально. Цикл скрипта написан так, чтобы он чувствовал себя как в старом ламповом 0.7.1
Принесите чай и запустите resample.cmd
Если nvdxt аварийно завершается, лучше его натравливать на отдельные папки параметром -deep с нужным аргументом:
nvdxt -rel_scale 0.25, 0.25 -RescaleSinc -dxt1a -all -outsamedir -overwrite -deep 01_karelia
Вообще-то можно убрать -outsamedir (в ту же папку) и кидать результат в другое место. Для этого нужен параметр -outdir.
nvdxt -rel_scale 0.25, 0.25 -RescaleSinc -dxt1a -all -overwrite -deep 01_karelia -outdir test
Тестируйте свои идеи:
nvdxt -rel_scale 2.0, 2.0 -RescaleGaussian -sharpenMethod SharpenSoft -dxt1a -file vehicles_chinese\vehicles\chinese\Ch01_Type59\Type59.dds -output Type59_mimimi.dds
Не забывайте и про Texture Tools:
C:\PROGRA~1\NVIDIA~1\NVIDIA~1\bin\nvzoom.exe -f kaiser -s 0.03 vehicles_german\vehicles\german\G06_PzII\PzII.dds vehicles_german\vehicles\german\G06_PzII\PzII_test.tga
Натравить его на все текстуры в текущей папке и подпапках - zoom.cmd
for /f %%A in ('dir .\*.dds /b /s /a:-d') do (
C:\PROGRA~1\NVIDIA~1\NVIDIA~1\bin\nvzoom.exe -f lanczos -s 0.25 %%A %%~pA\%%~nA.tga
C:\PROGRA~1\NVIDIA~1\NVIDIA~1\bin\nvcompress.exe -bc1a %%~pA\%%~nA.tga %%A
)
del /s /q *.tga
Некоторые текстуры сохранены как DXT3. В частности Color_tex.dds. Их лучше распаковать поверх и обработать индивидуально - dxt3.cmd
for %%A in (*.pkg) do 7za x -tzip -y -ir!color_tex.dds %%~fA -o%%~nA
for /f %%A in ('dir .\color_tex.dds /b /s /a:-d') do nvdxt -rel_scale 0.25, 0.25 -RescaleSinc -dxt3 -outsamedir -overwrite -file %%A
C:\PROGRA~1\NVIDIA~1\NVIDIA~1\bin\nvddsinfo.exe 01_karelia\maps\landscape\01_Karelia\Color_Tex.dds
Наигрались, нарисовали, можно паковать результат обратно. AHuMex совершенно прав в том, что смысла использовать res_mods для такого мода нет. Становится только хуже. Это такая забота разработчика о пользователях. Ладно, будем пихать взад. Предупреждать кого-то делать резервные копии ресурсов бесполезно, поэтому не буду.
Последний на сегодня скрипт - pakpak.cmd:
for /f %%A in ('dir /b /a:d') do 7za.exe a -tzip -mx0 -mtc=off -r %%~nA.pkg .\%%A\*
ИТОГО.
Бесценный экпириенс. Сбылась мечта идиота сжать до 1%. Вся идея весит 1.5 Мб на две утилиты, но выполняется дольше. Файлы 25% вышли немного больше, чем у AHuMex`а, но аккуратней - сравните сглаживание на круглых предметах типа башни. Ещё чище выдаёт Texture Tools с алгоритмом -f lanczos, но не намного, нужно вглядываться. А может и ещё какой инструмент. Некоторые текстуры у AHuMex`а однопиксельные, здесь просто пожатые. Какой подход лучше, смотрите сами.
UPD. Няши, я бы мог сделать в стиле "сделайте мне приятно", но хотел чтоб вы ПОНИли процесс и могли повелевать обстоятельствами. Скрипты пользуйте как есть, но текст лучше читайте с нужной программой под рукой. Или не читайте, нуевона.
|
</> |