SkyLoader 133 Опубликовано 21 февраля, 2022 (изменено) Универсальные 64-х битные компиляторы уровней Оригинальные компиляторы разработаны: GSC Game worldПравки компиляторов и сборка: SkyLoaderБлагодарности: Abramcumner, K.D. Текущая версия: 1.4a Состав компиляторов: Компилятор геометрии [ТЧ, ЧН, ЗП] Компилятор травы [ТЧ, ЧН, ЗП] Компилятор АИ-сетки [ТЧ, ЧН, ЗП] Сборщик спавна [ТЧ, ЧН, ЗП] Основные изменения: Поддержка x64 Поддержка основных игр серии Все компиляторы объединены в одно приложение Интерфейс полностью переписан на WinForms Добавлено меню компилятора, в котором можно выбрать проект уровня, выставить определенные настройки и запустить компиляцию Добавлена система сохранения и загрузки настроек последних проектов Создаваемое количество потоков теперь не фиксировано, а зависит от количества ядер процессора Произведен переход на библиотеку DirectXTex на замену устаревшим FreeImage и nvDXT Убран просчет RGB и Sun компонентов освещения и оставлен только Hemi Проведена работа по распоточиванию некоторых фаз компиляции и распоточиванию кода сторонних библиотек Интегрирован Discord Rich Presence для возможности следить за статусом компиляции на удаленном ПК Добавлена возможность автоматически выключить ПК после компиляции Реализован прогресс бар на панели задач для отображения состояния текущей фазы компиляции при свернутом приложении Добавлены ключи для ускоренной компиляции уровней в целях тестирования Добавлены экспериментальные ключи для отключения некоторых фаз компиляции и установки параметров в обход параметров СДК Добавлены основные изменения прошлых компиляторов Расширен вывод информации по некоторым ошибкам Исправлены некоторые вылеты оригинальных компиляторов Для работы требуется установленный Microsoft Visual C++ 2017 Redistributable х64. Внимание: в данном компиляторе по умолчанию отключено запекание статического света и статических теней солнца. Для включения запекания этих компонентов необходимо использовать соответствующий ключ, указанный в описании. Спойлер Для компиляции геометрии уровня: start bin\compilers_sky_x64\xrCompiler.exe -geometry -f имя_уровня -version название_версии (shoc/cs/cop) Для компиляции детейлов (травы): start bin\compilers_sky_x64\xrCompiler.exe -details -f имя_уровня -version название_версии (shoc/cs/cop) Для компиляции АИ-сетки: start bin\compilers_sky_x64\xrCompiler.exe -aispawn -f имя_уровня -version название_версии (shoc/cs/cop) Для сборки спавна: start bin\compilers_sky_x64\xrCompiler.exe -aispawn -s имя_уровня1,имя_уровня2,имя_уровня3 -out all Спойлер -noimpl - пропуск стадии LIGHT: Implicit (запекание освещения для террейна) -nocform - пропуск создания level.cform -noresize - отключить уменьшение размеров загружаемых текстур высокого разрешения -skipthm – не прерывать компиляцию при отсутствующих текстурах и файлах thm -removeinvalid – не прерывать компиляцию при найденных invalid faces и удалять их -skipinvalid – не прерывать компиляцию при найденных invalid faces и пропускать их -tex_rgba – не использовать сжатие для сохраняемых текстур -tex_bc7 – использовать BC7 сжатие для сохраняемых текстур (формат поддерживается только на DX11) -silent – автоматически закрыть приложение после завершения компиляции -sleep – выключить компьютер после завершения компиляции -nohemi – отключить запекание освещения. Значительно ускоряет компиляцию. Предназначен для тестирования геометрии -underground – компилировать уровень как подземный. Ускоряет компиляцию -static – запекать статическое освещение (не работает с ключом -nohemi) -cform – экспортировать только коллизию уровня -noise – отключить создание Progressive геометрии. Ускоряет компиляцию, но не создает упрощенную геометрию для уровня и Multiple Usage объектов -nosmg – не использовать группы сглаживания. В зависимости от конкретной геометрии помогает избежать ломаных фейсов/теней, или наоборот добавит их -notess – не тесселировать геометрию. В некоторых случаях может повышать fps в зависимости от конкретной локации. Проверять на практике -noweld – отключить сшивание маленьких треугольников. В некоторых случаях помогает избежать глюков на некоторых типах геометрии -nomerge – пропустить стадию Merging geometry -nostrip – отключить оптимизацию и стрипификацию геометрии -dx_opt – включить оптимизацию геометрии средствами D3DX optimizer вместо NvTriStrip -old_bcform - создавать build.cform в старом формате -gi – включить фазу Radiosity -no_mt_mu – не запускать расчет освещения для Multiple Usage объектов параллельно основной компиляции -high – более высокий приоритет для потоков -saveobj_base – сохранить всю геометрию уровня в модели с расширением .obj (базовая развертка) -saveobj_lmap – сохранить всю геометрию уровня в модели с расширением .obj (лайтмап развертка) -saveobj_cform – сохранить всю коллизию уровня в модель с расширением .obj -qual_draft – установить качество сцены в Draft (не влияет на выставленные шейдеры) -qual_high – установить качество сцены в High (не влияет на выставленные шейдеры) -force_default_shader - принудительно заменять шейдеры материалов с вершинного освещения на лайтмапное (def_vertex->default) -force_vertex_shader - принудительно заменять шейдеры материалов с лайтмапного освещения на вершинное (default->def_vertex)-ppm число – установить качество лайтмапов вместо значения в СДК -weld_dist число – установить Weld distance вместо значения в СДК -hemi_bias число – установить смещение позиции луча при запекании хеми (по умолчанию: 0.1, в оригинале: 0.001) Спойлер -skipthm – не прерывать компиляцию при отсутствующих текстурах и файлах thm -silent – автоматически закрыть приложение после завершения компиляции -sleep – выключить компьютер после завершения компиляции -nohemi – отключить запекание освещения -static – запекать статическое освещение (не работает с ключом -nohemi) Спойлер -draft – не просчитывать укрытия для АИ-сетки -verify – проверить АИ-сетку на ошибки -noverbose – не выводить информацию об одиночных нодах (при ключе -verify) -skipthm – не прерывать компиляцию при отсутствующих текстурах и файлах thm -silent – автоматически закрыть приложение после завершения компиляции -sleep – выключить компьютер после завершения компиляции Спойлер -s имя_уровня1,имя_уровня2,имя_уровня3... - собрать спавн из перечисленных уровней (перечисление через запятую без пробела). Например, -s zaton,labx8,jupiter,jupiter_underground,pripyat -out имя - выбрать имя выходного файла спавна. Например, -out all -no_separator_check - отключить конфликты спейс рестрикторов и АИ-сетки, а также другие ошибки -insert_graph - осуществлять сборку спавна со вшитыми в спавн графами для ТЧ спавна -large_aimap - собрать спавн для уровней с расширенной АИ-сеткой. Все уровни должны иметь такой формат сетки Спойлер -help – вызов справки со списком всех ключей запуска -t число – установить количество потоков для многопоточных операций (не работает с ключом -tbb) -fsltx имя_файла – использовать свой ltx вместо fsgame.ltx. -log_name имя_файла – создать файл лога с данным именем. Полезно для компиляции локаций очередью -discord – включить Discord Rich Presence с выводом имени уровня и статуса компиляции -discord_s – включить Discord Rich Presence с выводом только статуса компиляции -tbb – использовать TBB многопоточность (не рекомендуется) -both_texture_pathes - загрузка текстур и thm файлов по обоим путям ($game_textures$ и $textures$) Спойлер Ускоренная компиляция уровня для тестирования геометрии без запеченного освещения: start bin\compilers_sky_x64\xrCompiler.exe -geometry -f zaton -nohemi -noise start bin\compilers_sky_x64\xrCompiler.exe -details -f zaton -nohemi start bin\compilers_sky_x64\xrCompiler.exe -aispawn -f zaton -draft Компиляция подземного уровня, полностью закрытого nosun геометрией: start bin\compilers_sky_x64\xrCompiler.exe -geometry -f labx8 -underground Компиляция только коллизии: start bin\compilers_sky_x64\xrCompiler.exe -geometry -f zaton -cform Компиляция локаций очередью с последующим выключением ПК: start /wait bin\compilers_sky_x64\xrCompiler.exe -geometry -f zaton -log_name zaton_geometry -silent start /wait bin\compilers_sky_x64\xrCompiler.exe -details -f zaton -log_name zaton_detail -silent start /wait bin\compilers_sky_x64\xrCompiler.exe -aispawn -f zaton -log_name zaton_aimap -silent start /wait bin\compilers_sky_x64\xrCompiler.exe -geometry -f jupiter -log_name jupiter_geometry -silent start /wait bin\compilers_sky_x64\xrCompiler.exe -details -f jupiter -log_name jupiter_detail -silent start /wait bin\compilers_sky_x64\xrCompiler.exe -aispawn -f jupiter -log_name jupiter_aimap -silent -sleep Спойлер Спойлер Версия 1.4a: Спойлер Добавлена поддержка формата расширенной АИ-сетки. Сетка будет автоматически экспортироваться в новый формат при обнаружении нового формата в файле проекта из СДК. Для данного формата также необходим измененный игровой движок и СДК Для сборки спавна добавлен ключ -large_aimap, предназначенный для уровней с расширенной АИ-сеткой. Все уровни должны иметь одинаковую версию АИ-сетки Оптимизована система трассировки. На оригинальных локациях стадии запекания освещения заняли на ~30% меньше времени. Предположительно, на тяжелых локациях ускорение будет больше Распоточена упаковка вершин коллизии. На тяжелых локациях может немного ускорить фазы, связанные с CFORM. Правка экспериментальная, поэтому для отключения добавлен ключ -no_mt_cdb_pack Создан новый формат build.cform, поддерживающий более 60 млн вершин и 110 млн треугольников Исправлено сохранение больших файлов Добавлена поддержка MU объектов, не имеющих ни одного материала с Cast shadow Компилятор травы больше не запрашивает и не загружает build.cform и build.lights при ключе -nohemi Компилятор АИ-сетки больше не запрашивает и не загружает build.cform при ключе -draft Добавлен ключ -force_default_shader для принудительной замены шейдеров материалов с вершинным освещением на лайтмапное (def_vertex -> default) Добавлен ключ -force_vertex_shader для принудительной замены шейдеров материалов с лайтмап освещением на вершинное (default -> def_vertex) Ключ -t теперь влияет на количество TBB потоков Расширена информация по некоторым ошибкам при сборке спавна Отключена загрузка текстур и thm файлов по обоим путям ($game_textures$ и $textures$) во избежание путаницы и конфликтов. Теперь для ЧН/ЗП уровней производится загрузка только по $game_textures$, а для ТЧ по $textures$ Добавлен ключ -both_texture_pathes для возвращения загрузки текстур по обоим путям Google drive Yandex disk Версия 1.3a: Спойлер Добавлена поддержка сборки ТЧ спавна Для ТЧ спавна добавлен ключ -insert_graph, который осуществляет сборку спавна со вшитыми в спавн графами Мультивыбор уровней в списке на добавление в спавн Добавлена поддержка чтения файлов больше 2 Гб Google drive Yandex disk Версия 1.2: Спойлер Добавлена поддержка сборки ЧН спавна Добавлена поддержка групп сглаживания для ТЧ локаций При ключе -removeinvalid больше не удаляются полигоны с нулевой площадью текстурных координат. Координаты заменяются на константное значение Улучшено взаимодействие потоков расчетов лайтмапов и обработки MU моделей между собой Добавлен ключ -nocform для пропуска создания level.cform В создаваемый компилятором compiler.ini добавлены параметры проектов по умолчанию (секция [compiler_pref]). К примеру, чтобы включить автоматическую установку флага -static для новых проектов, следует выставить параметр gm_static в on. Добавлено больше информации о фазах сборки спавна Google drive Yandex disk Версия 1.1: Спойлер Изменено хранение загружаемых текстур, что уменьшило потребление оперативной памяти Добавлено автоматическое уменьшение размеров загружаемых текстур высокого разрешения до 1К, что тоже повлияло на уменьшение потребления памяти Уменьшен шанс появления черных треугольников при недостаточном значении Pixel per meter Добавлено отключение стрипификации и прогрессивов у высоколигональных мешей для пропуска вылетов "iNumVerts < 65535" и "OGF::Stripify" Добавлен ключ -noimpl для пропуска стадии LIGHT: Implicit Добавлен ключ -noresize для отключения уменьшения размеров загружаемых текстур высокого разрешения Исправлено возможное подвисание окна приложения Исправлено некорректное запекание освещения для некоторых террейнов Исправлено не добавление ключа формата при старте компиляции из меню Исправлена оригинальная ошибка распараллеливания на стадиях запекания освещения Исправлен вылет при отсутствии implicit текстур Google drive Yandex disk Версия 1.0: Google drive Yandex disk Спойлер Можно не устанавливать ключ -version. В таком случае выходной формат данных будет следующим: для уровня из ТЧ СДК – ТЧ формат, для уровня ЧН/ЗП СДК – ЗП формат. Для уровней, собранных ТЧ СДК, будет автоматически применяться ТЧ сглаживание, а значит нет необходимости использовать ключ -nosmg (за исключением модифицированных ТЧ СДК, добавляющих группы сглаживания). При активном ключе -both_texture_pathes на этапе загрузки .thm файлов сначала производится попытка открыть файл по пути $game_textures$ (gamedata\textures), при его отсутствии – по пути $textures$ (rawdata\textures). По умолчанию, для ЧН/ЗП проектов используется только путь $game_textures$, для ТЧ проектов - $textures$. Для частичного исправления часто встречающейся проблемы с появлением черных полигонов было изменено смещение позиции лучей при запекании затенений от хемисферы. В связи с этим, при моделировании геометрии зданий рекомендуется не создавать ту-сайд геометрию для стен (как, например, у кораблей на Затоне), а выдерживать определенную их толщину. Если же требуется оставить геометрию как есть, то можно вернуть смещение луча на оригинальное значение с помощью ключа -hemi_bias 0.001, но тогда количество черных треугольников будет как при использовании старых компиляторов. Увеличение значения -hemi_bias (например, на значение от 1.0 до 10.0) в определенных случаях позволяет избавиться от черных треугольников, оставшихся после запекания освещения. В продакшен версии уровня не рекомендуется использовать ключ -skipthm, поскольку из-за отсутствующих текстур и файлов thm на поверхностях может неправильно запечься свет. Не следует выставлять Weld distance в ноль. Иногда это провоцирует создание кривых фейковых теней от некоторой геометрии. Лучше поставить небольшое значение, но больше нуля. В случаях, когда на уровне нужно поправить только коллизию уровня или расставить фейки для актора, можно воспользоваться ключом -cform. Будет компилироваться только коллижн-геометрия уровня без запекания освещения, тем самым значительно уменьшится время компиляции. Для анализа того, как компилятор изменил геометрию уровня под игру, можно воспользоваться ключами -saveobj_base, -saveobj_lmap и -saveobj_cform. Геометрия будет сохранена по пути temp\geom… в файлы с расширением obj для дальнейшего просмотра их в 3д редакторе. Также ключ -saveobj_lmap может помочь в ручном редактировании лайтмап текстур, если на них были обнаружены проблемы. Изменено 22 января пользователем SkyLoader 13 14 3 3 3 5 Overf1rst, Melya, Pavel_Blend и 38 других отреагировали на это Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
imcrazyhoudini 473 Опубликовано 14 октября, 2022 9 часов назад, macron сказал: У вас там неприличное слово на асфальте вырисовывается.😄 думал после ещё одной компиляции оно окончательно дорисует, но вышло так: Спойлер но всё же это не очень, по сравнению с результатом который был Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
macron 427 Опубликовано 15 октября, 2022 imcrazyhoudini Попробуй в SDK в настройках качества менять "Normal Smooth Angle", отвечающий за скругление углов. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
imcrazyhoudini 473 Опубликовано 15 октября, 2022 macron выше/ниже значение ставить?) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
macron 427 Опубликовано 15 октября, 2022 26 минут назад, imcrazyhoudini сказал: выше/ниже значение ставить?) Сам проверяй, я эту хероборину никак запомнить не могу. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
imcrazyhoudini 473 Опубликовано 15 октября, 2022 macron ставил разные значения, от 0 и до 180, результата нет: Спойлер Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
macron 427 Опубликовано 15 октября, 2022 imcrazyhoudini я так думаю: премудрости со сглаживаниями начались с версии 1.2. Соответственно, есть смысл проверить версию 1.1. Попробуй с/без -nosmg. Компилятор v1.1 https://disk.yandex.ru/d/ZJsPuuNomFQ5yQ Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
imcrazyhoudini 473 Опубликовано 15 октября, 2022 macron у тебя работает он? у меня валится: Спойлер * New phase started: Converting data structures... | Vertices... | | * vertices: 424276 | Faces... | | * faces: 769781 | Models and References дальше всё, ни одна локация не идёт дальше Дополнено 0 минут спустя Дополнено 0 минут спустя хз где оно видит такую модель Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
macron 427 Опубликовано 15 октября, 2022 (изменено) 1 час назад, imcrazyhoudini сказал: у меня валится: Отсюда почитай: Изменено 15 октября, 2022 пользователем macron Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
imcrazyhoudini 473 Опубликовано 16 октября, 2022 macron 15 часов назад, macron сказал: Попробуй с/без -nosmg. Проблем нет на мосту при обоих вариантах, спасибо. Я так понимаю лучше компилировать с -nosmg, дабы багов никаких дополнительно не возникало? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
macron 427 Опубликовано 16 октября, 2022 9 минут назад, imcrazyhoudini сказал: Я так понимаю лучше компилировать с -nosmg, дабы багов никаких дополнительно не возникало? Вроде раньше это относилось к проектам, собранным на ЧН/ЗП SDK, но сейчас с учетом новых особенностей конкретных компиляторов всё не точно. 11 минут назад, imcrazyhoudini сказал: Проблем нет на мосту при обоих вариантах Дык что, проблема была именно с компилем версии 1.3 ? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
imcrazyhoudini 473 Опубликовано 16 октября, 2022 (изменено) macron ну я так понимаю лучше с этим ключом, у друга багули без него на 1.3 были, на компиляторах кд я всегда с -nosmg компилил, как тут хз, наверное тоже лучше без 32 минуты назад, macron сказал: Дык что, проблема была именно с компилем версии 1.3 ? получается да Спойлер Изменено 16 октября, 2022 пользователем imcrazyhoudini Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
macron 427 Опубликовано 16 октября, 2022 Тогда можем посоветовать авторам последние автоматические фичи связанные со сглаживанием сделать опциональными. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Yara 29 Опубликовано 16 октября, 2022 imcrazyhoudini По логу, карта (неважно, из какой части трилогии) после декомпила бардаковской софтиной, у которой "фича" - вся геометрия становится с типом сглаживания ТЧ, и её компилить только с ключом -nosmg, если без - будет как на скринах. Хочешь качество - грузишь объекты в 3-д редактор, правишь где надо, экспортируешь с типом сглаживания ЧН / ЗП, и можно компилировать без ключа. Мост с ТЧ-милитари (-nosmg), и вариант без ключа и с типом сглаживания ЧН / ЗП: Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
imcrazyhoudini 473 Опубликовано 16 октября, 2022 Yara ну я думаю ключ -nosmg подходит и к исходникам билдолокаций, где чн/зп сглаживания быть не может Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
imcrazyhoudini 473 Опубликовано 17 октября, 2022 macron Спойлер как думаешь, это вина ключа -noimplh, или как там его... я все lmap#*_* взял от прошлой компиляции, да и террейн тоже компилил ещё с -nosmg Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
macron 427 Опубликовано 17 октября, 2022 (изменено) 1 час назад, imcrazyhoudini сказал: -noimplh На сколько знаю, при -noimpl не создается текстура-лайтмап террейна, это имятеррейна_lm.dds. Ее (и только её) в этом случае можно подставить от предыдущей компиляции. 1 час назад, imcrazyhoudini сказал: я все lmap#*_* взял от прошлой компиляции Результат на лицо. Изменено 17 октября, 2022 пользователем macron Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
imcrazyhoudini 473 Опубликовано 17 октября, 2022 1 минуту назад, macron сказал: Результат на лицо. ну дело в том что они не создались во время этой компиляции, поэтому взял от предыдущей Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
macron 427 Опубликовано 17 октября, 2022 imcrazyhoudini Ok, а в level-файле есть ссылки на лайтмапы? Мля, проще скомпилить нормально, дольше эти шарады разгадывать. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
imcrazyhoudini 473 Опубликовано 17 октября, 2022 3 минуты назад, macron сказал: есть ссылки на лайтмапы? лишь на первый (1_1 и 1_2) 3 минуты назад, macron сказал: проще скомпилить нормально да тоже так думаю, попробую Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
imcrazyhoudini 473 Опубликовано 18 октября, 2022 (изменено) macron пересобрал, остался вот этот баг: собирал с -nosmg (лока же не поддерживает чн сглаживание) Спойлер Изменено 18 октября, 2022 пользователем imcrazyhoudini 1 macron отреагировал на это Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
imcrazyhoudini 473 Опубликовано 29 октября, 2022 что влияет на скорость компиляции? раньше билдовские болота на компиляторах кд собирал за 48 часов, на этих за 17 сейчас от запустил янтарь - идёт 19-ый час, стадия baking lightmaps, 36.45%, пишет осталось 33 часа (в 11:30 было 46 часов, сейчас 19:22) тогда как на компиляторах кд янтарь собирал за 17 часов как понять то, где какие компиляторы лучше использовать, дабы не терять лишнее время Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
macron 427 Опубликовано 29 октября, 2022 1 час назад, imcrazyhoudini сказал: что влияет на скорость компиляции? Много чего. Начинается всё с настроек проекта заложенных в build.prj левеледитором. И далее как эти настройки будут интерпретироваться и обрабатываться конкретным компилем. Если есть гарантия, что build.prj одинаковый, то далее дело в компиляторах... Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
imcrazyhoudini 473 Опубликовано 29 октября, 2022 macron ну билд не одинаковый, но вот объектов на локацию новых я не добавлял до сих пор на этой стадии сижу, что меня и удивило, ведь после болот думал янтарь ещё быстрее будет 🥴 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
macron 427 Опубликовано 29 октября, 2022 7 минут назад, imcrazyhoudini сказал: билд не одинаковый Порой один параметр может в разы время компиляции менять включая параметры типа "Error LM", вроде на число лайтмапов как-то влияли, будет их 5 или 55, например. Но если настройки компиляции остались старыми, то да... Может новый компиль серьезнее какие-то вещи обсчитывает и по другим формулам. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
imcrazyhoudini 473 Опубликовано 30 октября, 2022 macron ну у меня стандартный high пресет ещё странным кажется то, что компилятор в данный момент использует 860 мб оперативной памяти, хотя свободной ещё 4 гб точно, впервые такое вижу идёт 37-ой час, стадия baking lightmaps, 70.57%... 1 macron отреагировал на это Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты