Регистрация Главная Сообщество
Сообщения за день Справка Регистрация

Программа пакетного пересжатия текстур

-

Общение и обсуждение по World of Tanks

- Общение и обсуждение по темам World of Tanks

Закрытая тема
 
Опции темы
Старый 21.08.2011, 15:57   #1
Заблокирован
 Разведчик
Аватар для умненький
 
умненький на правильном пути
Регистрация: 17.11.2010
Сообщений: 2
Популярность: 53
Сказал(а) спасибо: 6
Поблагодарили 41 раз(а) в 23 сообщениях
Отправить сообщение для умненький с помощью ICQ
 
По умолчанию Программа пакетного пересжатия текстур

Для чего это вообще нужно:
  1. Ускорить загрузку карт путем уменьшения (ухудшения) текстур.
  2. Уменьшить нагрузку на видеопамять (если ее мало), вероятно уменьшить потребление ОЗУ.
ReComp - Программа создает BAT-файлы для пакетной обработки (уменьшения размеров) текстур утилитами NVIDIA: nvdxt из состава утилит [Ссылки могут видеть только зарегистрированные пользователи. ] (по умолчанию) или [Ссылки могут видеть только зарегистрированные пользователи. ] (задается ключом -nvtt). Хотябы одна из этих утилит требуется для работы программы.
[spoiler]DDS Utilities:
+ не создает временных файлов [утилита nvdxt]
+ нормально работает с большими текстурами (8192х8192) [используя утилиты detach и stitch или старую версию nvdxt v6.60]
+ изменение размеров текстуры с mipmap уровнями без потери качества
NVIDIA Texture Tools:
- создает два файла TGA при работа с одним файлом DDS, причем один из них в 3-4 раза больше самой DDS
- вылетает при попытке ресайза большой текстуры (8192х8192)[/spoiler]
Usage: recomp <input> [<options>]

<Input>: Путь к папке, содержащей текстуры ИЛИ Текстовый файл содержащий путь к каждому dds (задается ключом -list). Если указываете путь к папке в кавычках, то не нужно ставить в конце слэш.

<Options>: (все опции необязательные)
Код:
-detach               Обработка без потери качества текстур (только с mipmap уровнями) утилитами detach и stitch
                      [только для DDS Utilities] [Самый быстрый способ].
-dxt <1, 3, 5, 9>     Задать определенный тип DXT, если он не определен по заголовку текстуры (9 = ARGB).
-fast                 Быстрое сжатие (вероятно за счет худшего качества).
-force                Принудительно создать BAT-файл с неправильными параметрами.
-info                 Вывод некоторой бесполезной информации о текстуре.
-list                 Указывать этот ключ, если вы используете файл, а не папку (для input).
-mips                 Принудительно генерировать mipmap уровни во всех текстурах.
-nocuda               Не использовать CUDA компрессор (только для NVIDIA Texture Tools).
-nomips               Отключить генерацию mipmap уровней.
-nonstop              Не останавливать BAT-file, если возникает ошибка.
-nvtt                 Использовать NVIDIA Texture Tools (вместо DDS Utilities).
-outsamedir           Перезаписать оригинальные текстуры (игнорируется, если ключ -s не задан).
-pause                Вставить комманду "pause" в BAT-файл (только для NVIDIA Texture Tools).
-s [0.125, 0.25, 0.5] Scale factor for zoom (default = все варианты).
-temp <path>          Путь к временной папке (для работы утилиты detach).
[spoiler]-force и -dxt (если в заголовке текстуры указан неизвестный для меня формат текстуры, то можно попробовать сжать текстуры в другом формате, который задаем ключем -dxt [без него будут записываться ключи -bc0 или -dxt0, которые неизвестны для NVIDIA Texture Tools и DDS Utilities])
-nocuda (по умолчанию nvcompress.exe пытается каждый раз задействовать CUDA, у кого возникают проблемы - отключаем)[/spoiler]
Описание: Передаем в качестве первого параметра программе путь к папке, в которой находятся текстуры. Программа сама рекурсивно находит все текстуры внутри папки и подпапок. Вместо указания папки, можно указать текстовый файл (с любым именем и расширением) содержащий путь (в виде x:\path1\path2\texture.dds) к каждому dds. Файл со списком текстур можно быстро сгенерировать например в TotalCommander используя плагин [Ссылки могут видеть только зарегистрированные пользователи. ] от Konstantina Polyakova. Одна строка - один путь к файлу, в конце строк не должно быть пробелов и TAB'ов (быстро убрать не нужные символы можно в AkelPad комбинацией клавиш Alt+Backspace), не должно быть пустых строк в начале, середине или конце файла. Программа просматривает заголовки текстур и создает один или три BAT-файла с нужными ключами для утилит DDS Utilities или NVIDIA Texture Tools. При запуске BAT-файла, (для NVIDIA Texture Tools) распакованные текстуры будут создаваться рядом с оригинальными, обработанные несжатые и сжатые - рядом с BAT-файлом. При запуске BAT-файла, (для DDS Utilities) обработанные текстуры будут создаваться рядом с BAT-файлом или перезаписывать оригинальные. Текстура на выходе будут такого же формата (DXT1, DXT3, DXT5, RGBA) что и оригинальная, mipmap уровни будут генерироватся только если они были и в оригинальной текстуре.

Detach: Утилита detach (stitch) (из состава DDS Utilities) извлекает (собирает) mipmap уровни из файла текстуры. Это позволяет изменять размер текстуры без потери качества. Сначала извлекаем mipmap уровни (по умолчанию в системную временную папку, можно указать другую папку в качестве парметра ключа -temp), удаляем самые большие mipmap уровни, переименовываем оставшиеся mipmap уровни и собираем их в новую текстуру. Такой способ ресайза самый быстрый, но требует большего количества файловых операций. Если текстура не содержит mipmap уровней, то она обрабатывается как обычно.

По поводу mipmap: если включено - в настройках игры выставить максимальное качество для текстур, если отключено - настройки в игре не влияют. Для больших текстур (0.5 и 0.25) рекомендую включить, для маленьких (0.125) - практически не влияет. Плюсы и минусы читаем на [Ссылки могут видеть только зарегистрированные пользователи. ].

Ограничения:
  • В папке "\res\system\maps\" есть маленькие по размеру текстуры, если их сильно сжать, то они получатся размером 1x1 и игра будет вылетать. Пережимайе только большие текстуры в этой папке, а мелкие - они и так мелкие.
  • Текстуры в папке "\res\maps\skyboxes\" я не пробовал пережимать, они мне вообще не нужны. Есть подозрение, что там текстуры формата cubemap, я не реализовывал их поддержку в программе.
  • Не следует трогать текстуры в папке \res\particles\Decals\, иначе не будет видно эмблем и пробитий на танке.
  • Не следует трогать текстуры в папке \res\system\fonts\.
  • Не следует трогать текстуры \res\gui\maps\vehicles\decals\graffiti_stickers.dd s и \res\maps\fx\explosion_decal.dds.
  • Не следует трогать текстуру \res\particles\maps\flash.dds, иначе не будет видно трассеров.
Как распаковать патч: копируем в пустую папку файл version.xml (лежит в корне игры) и устанавливаем патч в эту папку.

Чем посмотреть текстуры: [Ссылки могут видеть только зарегистрированные пользователи. ] [Ссылки могут видеть только зарегистрированные пользователи. ], [Ссылки могут видеть только зарегистрированные пользователи. ]
[spoiler]Я не пытался изобретать велосипед, поэтому использовал по максимуму возможности других программ, чтобы облегчить написание этой. Почему Catalog Maker и AkelPad, потому что они часто идут в разных сборках TotalCommander'ов и уже были установлены на ПК.[/spoiler]
Пример использования с указанием папки:
[spoiler]
  1. Установить утилиты NVIDIA Texture Tools или DDS Utilities
  2. Указать в качестве первого парметра программе папку с текстурами:
    Код:
    recomp d:\games\wot\res\vehicles -s 0.125
  3. Запустить BAT-файл. Полученные текстуры будут находится в папке .\0.125 рядом с BAT-файлом
[/spoiler]

Пример использования с файлом-списком:
[spoiler]
  1. Установить утилиты NVIDIA Texture Tools или DDS Utilities
  2. Создть файл со списком текстур используя плагин Catalog Maker в TotalCommander (в ReadMe плагина написано как)
    [spoiler]Примерные настройки плагина
    [attachment=36017:CatalogMaker_View.jpg][attachment=36018:CatalogMaker_Format.jpg][/spoiler]
  3. Уберать лишние строки и лишние символы пробелов и TAB'ов (например в AkelPad комбинацией клавиш Alt+Backspace), список должен выглядеть примерно так
    Код:
    c:\GAMES\World_of_Tanks\res\vehicles\american\A01_T1_Cunningham\T1_Cunningham.dds
    c:\GAMES\World_of_Tanks\res\vehicles\american\A01_T1_Cunningham\T1_Cunningham_crash.dds
    c:\GAMES\World_of_Tanks\res\vehicles\american\A01_T1_Cunningham\T1_Cunningham_NM.dds
    c:\GAMES\World_of_Tanks\res\vehicles\american\A01_T1_Cunningham\T1_Cunningham_SM.dds
  4. Скормите список программе, указав уровень ресайза и ключ -list
    Код:
    recomp list.lst -list -s 0.125
  5. Запустить BAT-файл. Полученные текстуры будут находится в папке .\0.125 рядом с BAT-файлом
[/spoiler]

Работа с большими текстурыми (8192x8192):
[spoiler]
  • утилитой detach (из состава DDS Utilities) извлечь MIP уровни
  • удалить большие MIP уровни и переименовать файлы, чтобы нумерация начиналась с нуля
  • утилитой stitch собрать MIP уровни в одну текстуру
[/spoiler]

Чтобы остановить BAT-файл, нажмите Ctrl+C.

P.S. Объяснять я не мастак, так что если че накуралесил в описании, сильно не пинайте, а посоветуйте.

Немножко не в тему: моя борьба за FPS дала такие результаты (с миру по нитке...)
[spoiler]
  • Уменьшить глубину цвета до 16-бит на рабочем столе (если игра запускается в окне), дает приблизительно +(1-2)FPS
  • \World_of_Tanks\res\system\data\speedwind.ini (движение растительности) - поставить все нули
    [spoiler]
    Код:
    NumWindMatricesAndLeafAngles 0 0
    WindResponseAndLimit 0 0
    MaxBendAngle 0
    BranchExponent 0
    LeafExponent 0
    GustStrengthMinMax 0 0
    GustDurationMinMax 0 0
    GustFrequency 0
    BranchOscillationX_LaLsHaHs 0 0 0 0
    BranchOscillationY_LaLsHaHs 0 0 0 0
    LeafRocking_LaLsHaHs 0 0 0 0
    LeafRustling_LaLsHaHs 0 0 0 0
    [/spoiler]
  • \World_of_Tanks\res\maps\skyboxes\ (убрать полностью папку skyboxes - убирает облака)
  • \World_of_Tanks\res\particles\Tank\ (убрать все файлы xml кроме engine_exit_* (2 шт.) - пропадают эффекты попаданий, искры...)
    Без файлов engine_exit_* (2 шт.) игра не запустится!!! И заменить engine_exit_* на эти (убирает дым от двигателя):
    [attachment=43248:engine_exit_diesel.xml]
    [attachment=43249:engine_exit_gass.xml]
  • \World_of_Tanks\res\particles\Shells_Eff\ (убрать все файлы xml кроме trace [трассер снаряда] - пропадают эффекты попаданий, искры...)
  • \World_of_Tanks\res\particles\Environment\ (убрать полностью папку Environment - пропадают эффекты разрушений, дым, огонь, пыль)
  • Ставим ангар от Шторма (убирает ангар) [[Ссылки могут видеть только зарегистрированные пользователи. ] или [Ссылки могут видеть только зарегистрированные пользователи. ]]
  • \World_of_Tanks\res\content\Interface\ (убрать полностью папку Interface - убирает ангар, танчик будет висеть на фоне звезд [не работает для премиум ангара]) [!!!! данный метод уже не работает]
  • \World_of_Tanks\res\gui\maps\icons\map\screen\ (убрать полностью папку screen - картинка при загрузке карты)
  • \World_of_Tanks\res\audio\music.fsb (можно убрать файл музыки)
  • \World_of_Tanks\res\gui\flash\ScopeShadow.swf (заменить файл на другой - уменьшает падение FPS в снайперском режиме):
    [attachment=40071:ScopeShadow.rar]
  • Убираем вершинные и пиксельные шейдеры:
    • \World_of_Tanks\res_bw\shaders\pixelshaders (убрать полностью папку pixelshaders)
    • \World_of_Tanks\res_bw\shaders\shimmer (убрать полностью папку shimmer)
    • \World_of_Tanks\res_bw\shaders\xyz* (убрать полностью папки xyz* - 4 штуки}
  • Во время игры убрать отображение состава команд - Ctrl+TAB два раза, дает приблизительно +(1-2)FPS
  • Настройки игры все по минимуму плюс редактирование preferences.xml из этой [Ссылки могут видеть только зарегистрированные пользователи. ], в настройках драйвера видеокарты создать профиль для игры и указать там максимальную производительность вместо качества.

Немного про эффекты:
[spoiler]
  • \World_of_Tanks\res\particles\Tank\explosion_All.x ml - след на земле после взрыва танка
  • \World_of_Tanks\res\particles\Shells_Eff\groundHit _AP_1.xml - эффект при попадании снаряда в землю, именно этот отображает минимум дыма и анимации (меньше всего тормозит), нужно его размножить нижеприведенным BAT файлом, этим мы заменим все остальные файлы эффектов попаданий и при попадании любого снаряда в змелю будет вызывать минимум тормозов и отображать след на земле от выстрела
    Код:
    echo off
    echo Copy groundHit_AP_1.xml
    copy groundHit_AP_1.xml groundHit_AP_2.xml
    copy groundHit_AP_1.xml groundHit_AP_3.xml
    copy groundHit_AP_1.xml groundHit_HC_2.xml
    copy groundHit_AP_1.xml groundHit_HC_3.xml
    copy groundHit_AP_1.xml groundHit_HE_2.xml
    copy groundHit_AP_1.xml groundHit_HE_3.xml
    copy groundHit_AP_1.xml groundHit_HE_4.xml
    copy groundHit_AP_1.xml stoneHit_AP_1.xml
    copy groundHit_AP_1.xml stoneHit_AP_3.xml
    copy groundHit_AP_1.xml woodHit_AP.xml
    echo Done
    pause
  • \World_of_Tanks\res\particles\Shells_Eff\waterHit_ AP_1.xml - эффект при попадании снаряда в воду, скопировать этот файл с новым именем waterHit_AP_3.xml, тем самым заменив более нагруженный эффектами waterHit_AP_3.xml
[/spoiler]

С такими издевательствами игра нормально работает, без ошибок, зависаний... все это НЕ ДАЕТ НИКАКИХ ПРИЕМУЩЕСТВ в плане геймплея над соперниками.

Если раньше было примерно 5-27FPS которое РЕГУЛЯРНО проседало от малейших граффических эффектов вроде искр, дыма, пыли, анимации разрушений объектов, то сейчас 15-30FPS, игра идет НАМНОГО плавнее.[/spoiler]

Код:
Language: C
IDE:      Code::Blocks 10.05
Compiler: GNU GCC 4.4.1
[Ссылки могут видеть только зарегистрированные пользователи. ] [Ссылки могут видеть только зарегистрированные пользователи. ]
[Ссылки могут видеть только зарегистрированные пользователи. ] [Ссылки могут видеть только зарегистрированные пользователи. ]
[spoiler]Changelog:
v0.2.2
* исправил затирание строки при выводе количества найденых файлов;
* ошибка ключа -detach, если была только одна текстура.

v0.2.1
* исправил ошибку ключа -detach при отсутствии ключа -s;
* исправил ошибку ключа -detach при малом количестве MipMap-уровней в текстуре.

v0.2.0
+ добавил возможность работы с утилитой detach (из комлекта DDS Utilities) [ключи -detach и -temp];
+ добавил остановку BAT-файла, если возникнет ошибка при работе внешних утилит [ключ -nonstop отключает];
- убрал проверку пары полей в заголовке текстуры (иногда они не заполняеются);
* произвел косметические изменения в создаваемом BAT-файле.
[/spoiler]




коротко для чего это кто не прочел в начале темы - это для того у каво слабые системы и при игре все лагает/глючит
 
Старый 21.08.2011, 23:52   #2
 Разведчик
Аватар для Dominio
 
Dominio никому не известный тип
Регистрация: 28.06.2011
Сообщений: 19
Популярность: 12
Сказал(а) спасибо: 12
Поблагодарили 1 раз в 1 сообщении
Отправить сообщение для Dominio с помощью Skype™
 
По умолчанию Re: Программа пакетного пересжатия текстур

gad2010z, ПИ**АБОЛ!
 
Пользователь сказал cпасибо:
ElectroVamp (24.08.2011)
Закрытая тема


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программа для просмотра текстур DYLAN31 Общение разработчиков 6 11.01.2011 22:40
Баг текстур MuXyuJI Баги и читы Lineage 2 0 11.09.2010 09:28

Заявление об ответственности / Список мошенников

Часовой пояс GMT +4, время: 23:03.

Пишите нам: [email protected]
Copyright © 2024 vBulletin Solutions, Inc.
Translate: zCarot. Webdesign by DevArt (Fox)
G-gaMe! Team production | Since 2008
Hosted by GShost.net