-
Публикаций
138 -
Зарегистрирован
-
Посещение
-
Победитель дней
3
Сообщения, опубликованные SkyLoader
-
-
14 часов назад, imcrazyhoudini сказал:
Ну вот как у меня выглядит на ванильной игре с текстурами, что ты скинул:
При этом вода у нас отличается. У тебя или шейдеры другие или текстура воды в самой игре.
Под водой действительно есть темные места, но это исключительно из-за самой текстуры и качества компиляции. Ряска слабо пропускает свет, и в игре ты не должен был что-то через неё видеть.
-
55 минут назад, imcrazyhoudini сказал:могу сцену скинуть с текстурками для неё и объектами, которая с багами собиралась, пойдёт?
При загрузке объектов:
ЦитатаCan't find texture 'water\water_ryaska1'
В архиве её нет. Ты точно ту текстуру проверял?
Дополнено 54 минуты спустяВ принципе, и без этого есть вопросы:
У тебя в объекте террейна есть несколько слоёв геометрии, имеющей одну и ту же текстуру террейна. Так делать нельзя, поскольку для террейна лайтмапы и хеми запекаются в саму текстуру террейна. Если развертки слоев будут совпадать, пойдет конфликт, который выльется в нечто подобное. Здесь нужно или править развертку террейна, исправляя конфликты, или дублировать текстуру террейна и назначить её на второй слой.
Вариант с дублированием текстуры террейна:
-
8 часов назад, imcrazyhoudini сказал:перепроверял thm файлы через thm editor;
вручную выставлял настройки террейна через thm editor, чтобы были как на милитари1. Убедись, что компилятор экспортирует локацию в ТЧ формат (в логе должно быть прописано -version shoc)
2. Проверь текстуру воды в gamedata/textures. Она должна иметь прозрачность
3. Проверь, что thm файле воды стоит формат текстуры, поддерживающий альфу (например, DXT3, DXT5 или 8:8:8:8)
4. На всякий случай скопируй этот thm файл воды в соответствующие папки по путям gamedata/textures и rawdata/textures и перекомпиль
-
В 16.11.2022 в 18:35, imcrazyhoudini сказал:почему возникают такие проблемы?
пробовал с -nosmg и без, с -noise и без, итог один
на кд компилах попробовал - всё нормально, а тут такоеВ шапке темы в спойлере про советы упомянута последовательность загрузки thm файлов:
ЦитатаНа этапе загрузки .thm файлов сначала производится попытка открыть файл по пути $game_textures$ (gamedata\textures), при его отсутствии – по пути $textures$ (rawdata\textures). Это следует учитывать людям, работающим с ТЧ.
В теории, проблема запекания может заключаться в том, что в gamedata\textures есть thm'ка, в которой выбран формат текстуры без альфы, из-за чего при компиляции прозрачность воды не учитывается.
В 20.11.2022 в 14:01, Raul Duke сказал:Кто-нибудь в курсе что за проблема может быть. Компилятор встал на 40% во время фазы Converting to OGFs.
Желательно приложить скриншот и лог. Так хотя бы можно увидеть, на каком объекте висит компиляция.
В 20.11.2022 в 14:01, Raul Duke сказал:Есть какие-то возможности пропустить это
Как сказали выше, часть расчетов у той фазы можно пропустить ключом -noise, также часть расчетов пропускается ключом -nostrip.
-
3 часа назад, imcrazyhoudini сказал:то будут какие-то последствия для неполной динамики
Да, для статики и неполной динамики нужен ключ -static
3 часа назад, imcrazyhoudini сказал:А нормально ли то, что трава изначально выставляет для себя такое значение:
-ppm 0.000000Для травы этот параметр не нужен. Я поэтому и предложил перекачать версию 1.3, так как там это убрано, дабы не смущало. В дополнительных ключах это ставить не обязательно.
-
1
-
-
59 минут назад, imcrazyhoudini сказал:короче, достаточно зайти в обычный сдк, сделать там билд - и геометрия пойдёт?
Лучше перекачать версию 1.3 из шапки, сделать билд оригинальным сдк и должно пойти. Может когда-нить Yara уберет новые параметры сцены (или хотя бы сместит их в конец структуры параметров) для совместимости с другими компиляторами, но пока использовать это вместе нельзя
1 час назад, imcrazyhoudini сказал:а чтобы трава пошла - выставить pixel per meter?
Нет, он не нужен
1 час назад, imcrazyhoudini сказал:а level.cform полученный от другого компилятора поддерживается?
Нет
-
1 час назад, imcrazyhoudini сказал:SkyLoader с чем может быть связано:
Сдк от Yara? Я уже как-то упоминал, что в нём были добавлены правки по сглаживанию и параметрам сцены, из-за чего совместимость с оригинальными компиляторами отсутствует.
1 час назад, imcrazyhoudini сказал:-ppm 0.000000
Выглядит опасно. Пока еще никто не выкручивал Pixel per meter в 0 🙂
-
В связи с недавним откатом сайта повторяю посты с релизами версий.
Версия 1.2:
СпойлерДобавлена поддержка сборки ЧН спавна
Добавлена поддержка групп сглаживания для ТЧ локаций
При ключе -removeinvalid больше не удаляются полигоны с нулевой площадью текстурных координат. Координаты заменяются на константное значение
Улучшено взаимодействие потоков расчетов лайтмапов и обработки MU моделей между собой
Добавлен ключ -nocform для пропуска создания level.cform
В создаваемый компилятором compiler.ini добавлены параметры проектов по умолчанию (секция [compiler_pref]). К примеру, чтобы включить автоматическую установку флага -static для новых проектов, следует выставить параметр gm_static в on.
Добавлено больше информации о фазах сборки спавна
СпойлерВерсия 1.3:
Данное обновление направлено на поддержку сборки ТЧ спавна. Теперь для ТЧ спавна достаточно воспользоваться только ключом -s, так как все фазы сборки левел графов, гейм графа и спавна объединены в одну задачу. Также в меню компилятора можно выбрать список уровней, которые будут присоединены к общему спавну.
Второе нововведение для ТЧ спавна, это ключ -insert_graph. Он позволяет вшить все графы уровней в файл спавна, как это реализовано в ЗП. Это облегчит перенос спавна из рабочей директории сдк в директорию игры, поскольку не нужно переносить все файлы графов и таблиц связности АИ-сетки с графами, а лишь перенести один файл спавна. Однако такой формат спавна потребует изменения игрового движка, поэтому ниже приложена ссылка на коммит, который можно адаптировать под свою версию движка.
https://github.com/SkyLoaderr/OGSR-Engine/commit/c756706c6b1fb826bfaf53a83cedea579b38b971
СпойлерДобавлена поддержка сборки ТЧ спавна
Для ТЧ спавна добавлен ключ -insert_graph, который осуществляет сборку спавна со вшитыми в спавн графами
Мультивыбор уровней в списке на добавление в спавн
Добавлена поддержка чтения файлов больше 2 Гб
Спойлер-
4
-
-
Модели рук точно будут изменены. Но некоторая конкретика касательно этого еще обсуждается.
-
В 21.07.2022 в 20:39, Pavel_Blend сказал:Может убрать проверку на версию формата и полагаться только на наличие чанка со сглаживанием?
Можно конечно убрать проверку, правда это не совсем безопасно. Помимо чанка со сглаживанием для обычной геометрии еще есть сглаживание для каждого MU объекта (в ЧН/ЗП), и оно не вынесено под отдельный чанк, а лежит вместе с данными о вершинах. Из-за этого можно получить неправильное чтение данных. Но опять же можно положиться чисто на наличие чанка и надеяться, что во входном формате имеется та же зависимость наличия сглаживания MU объектов от наличия чанка.
-
В 05.07.2022 в 22:46, macron сказал:Странно, вылетает компиляция геометрии.((
xrCompiler.exe -geometry -version shoc -skipinvalid -noise -f level
Выглядит как битый билд уровня. Можно перебилдить тем же сдк или другим.
В 12.07.2022 в 22:33, St4lker0k сказал:При компиле ТЧ локи вылетает:
Если уровень билдился сдк от Yara, то так и должно быть. В том сдк был изменен формат проекта уровня, который не поддерживается обычными ТЧшными компиляторами.
-
1
-
-
3 часа назад, hi_flyer сказал:потестил на ТЧ версию 1.1, заметил такой момент - при сборке аи-сетки похоже не просчитываются укрытия ( ключ -draft не был выставлен).
Проверил на ТЧ версии МП АТП. Укрытия просчитываются и зависимость от ключа -draft работает.
Для сравнения версия с просчетом укрытий:

Версия без укрытий (на драфте):

Скорее всего тебя смутило только время расчета, а не какие-то проблемы в игре. Во первых, из компиляции был вырезан рудимент в виде освещения АИ-нод. В ЗП компиляторе уже был вырезан расчет освещения нод, а в коде движка ТЧ я не заметил его использования в игре, поэтому эти просчеты также были убраны для ТЧ локаций. Ну и во вторых, компилятор использует все ядра ПК, что ускорило просчеты по сравнению с предыдущими компиляторами.
3 часа назад, hi_flyer сказал:Ну, и от себя в список предложений могу добавить - сделать кнопку сохранения прогресса компиляции геометрии.
В условиях параллельного выполнения задач в компиляторе это будет не просто сделать. На этот счет пока ничего сказать не могу.
-
19 минут назад, Grade сказал:ну, как я понял, проблема в том же уазике может быть, а это, ведь, лод объект.
Как я писал выше, в тот момент выполняется параллельно две фазы: build UV и расчеты Лодов. Уазик, который упомянут в логе, относится ко второй параллельной операции, не затрагивающей Build UV mapping. Да, в окне компилятора вперемешку выводится информация о состоянии выполнения двух фаз, из-за чего может возникнуть путаница. Если бы в уазике была проблема, тогда бы вылет был бы и на драфте.
19 минут назад, Grade сказал:пока все успешно компилиться и процесс уже дошел до стадии LIGHT: Baking Imap AO.
Значит развёртка под лайтмапы создалась, хорошо
-
34 минуты назад, Grade сказал:Сейчас проверю вариант с удалением части лодов с локации
У лод объектов нет разверки под лайтмапы, и, следовательно, они не участвуют в фазе Build UV mapping, на которой происходит ошибка. Я имел ввиду убирание обычных объектов статической геометрии.
-
Grade Судя по скриншоту можно сказать, что в тот момент происходило параллельное выполнение двух фаз: Build UV mapping и LIGHT: Starting MU. Первая фаза отвечает за формирование лайтмап развертки для геометрии уровня, а вторая за расчеты геометрии и освещения для MU (Lod) объектов. Так как вылет не возникает при драфт качестве, значит проблема происходит именно на Build UV mapping. Это также подтверждается ERRORом на скриншоте, который отвечает за лайтмап развертку.
Один из вариантов решения, удалять части уровня в сдк, пока вылет не прекратится и потом по наличию вылета определить, на каком объекте крашится компиляция. Другой вариант, попробовать скомпилировать уровень этим компилятором: https://ap-pro.ru/forums/topic/3341-universalnye-kompilyatory-urovney-h64/ В нём был исправлен ряд вылетов, в том числе возникающих на фазе Build UV mapping. Может быть он поможет с вылетом или хотя бы с выводом ошибки в лог.
-
1
-
-
В 10.04.2022 в 02:56, Graff46 сказал:Можно этот ключ в интерфейс добавить?
Да
В 01.05.2022 в 15:52, macron сказал:Предлагаю добавить параметр -nocform для пропуска этапа создания level.cform.
В то же время, в игру можно от ранее созданного упрощенного варианта карты подставить упрощенный level.cform, а гигантский всё равно выкидывается.
Можно будет добавить когда-нибудь. И тогда уж для компиляции нужно будет запрашивать не level.cform, а build.cform, как это сделано для детейлов и аи-сетки.
В 04.05.2022 в 16:39, 1_A сказал:насчет пожеланий следующих версий, то это как то попробовать ускорить процес сборки, геометрии и спавна.
Спавн вряд ли получится ускорить, а по геометрии может что-то будет, но не в ближайшее время.
-
1
-
-
Graff46 ключ отключает запекание освещения террейна и пересоздавание его текстуры, тем самым ускоряя компиляцию. Нужно для случаев, когда, например, менялась геометрия внутри зданий, и оно не могло повлиять на затенение террейна.
-
1
-
-
Доступна версия 1.1
СпойлерИзменено хранение загружаемых текстур, что уменьшило потребление оперативной памяти
Добавлено автоматическое уменьшение размеров загружаемых текстур высокого разрешения до 1К, что тоже повлияло на уменьшение потребления памяти
Уменьшен шанс появления черных треугольников при недостаточном значении Pixel per meter
Добавлено отключение стрипификации и прогрессивов у высоколигональных мешей для пропуска вылетов "iNumVerts < 65535" и "OGF::Stripify"
Добавлен ключ -noimpl для пропуска стадии LIGHT: Implicit
Добавлен ключ -noresize для отключения уменьшения размеров загружаемых текстур высокого разрешения
Исправлено возможное подвисание окна приложения
Исправлено некорректное запекание освещения для некоторых террейнов
Исправлено не добавление ключа формата при старте компиляции из меню
Исправлена оригинальная ошибка распараллеливания на стадиях запекания освещения
Исправлен вылет при отсутствии implicit текстур
Спойлер-
2
-
2
-
2
-
-
Файл stalker_smart_cover_animation.omf, серия анимаций, начинающаяся с loophope_9_...
-
1
-
1
-
1
-
2
-
-
Проблема с запеканием террейна действительно есть, но проявляется она далеко не на всех террейнах. Будет исправлено в следующей версии.
-
1
-
-
DarkSnowder, сдк от Yara? Подобные проблемы были при использовании его сдк, потому что в нём был добавлен экспорт групп сглаживания. Можно попробовать экспортировать уровень другим сдк.
-
1
-
-
9 часов назад, macron сказал:Потестировал на "Liberty City". Вылетает на стадии "Converting to OGFs".
Судя по логу, причина кроется в меше с 36к вершин и 71к фейсов - это много. Оригинальный компилятор тоже должен падать на таких объектах. По хорошему, такие большие меши надо разбивать в 3д редакторе, но можно пропустить этот вылет, используя ключ -nostrip
П.С. Хотел написать про огромное количество инвалидов в логе, и что, возможно, много геометрии будет пожрано с ключом -removeinvalid, но ты уже написал про -skipinvalid
ЦитатаНе ведутся работы по использованию просчетов на видеокарте в xrLC и xrDO?
Некоторые наработки есть, но пока не до этого
-
1
-
1
-
-

Универсальные 64-х битные компиляторы уровней
Оригинальные компиляторы разработаны: GSC Game world
Правки компиляторов и сборка: SkyLoader
Благодарности: Abramcumner, K.D., vTurbineТекущая версия: 1.6b
Состав компиляторов:
- Компилятор геометрии [ТЧ, ЧН, ЗП]
- Компилятор травы [ТЧ, ЧН, ЗП]
- Компилятор АИ-сетки [ТЧ, ЧН, ЗП]
- Сборщик спавна [ТЧ, ЧН, ЗП]
Основные изменения:
- Поддержка x64
- Поддержка основных игр серии
- Все компиляторы объединены в одно приложение
- Часть алгоритмов компиляторов была переписана под многопоточное использование и вычисление на видеокарте с помощью CUDA
- Для ускорения рейтрейсинга подключена библиотека Intel Embree с полноценной поддержкой прозрачных поверхностей и инстансов
- Полностью изменен интерфейс
- Добавлено меню компилятора, в котором можно выбрать проект уровня, выставить определенные настройки и запустить компиляцию
- Добавлена система сохранения и загрузки настроек последних проектов
- Произведен переход на библиотеку DirectXTex на замену устаревшим FreeImage и nvDXT
- Отключен просчет RGB и Sun компонентов статического освещения и опционально оставлен только Hemi
- Проведена работа по распоточиванию некоторых фаз компиляции и распоточиванию кода сторонних библиотек
- Интегрирован Discord Rich Presence для возможности следить за статусом компиляции на удаленном ПК
- Добавлена возможность автоматически выключить ПК после компиляции
- Реализован прогресс бар на панели задач для отображения состояния текущей фазы компиляции при свернутом приложении
- Добавлены ключи для ускоренной компиляции уровней в целях тестирования
- Добавлены экспериментальные ключи для отключения некоторых фаз компиляции и установки параметров в обход параметров СДК
- Расширен вывод информации по некоторым ошибкам
- Исправлены некоторые вылеты оригинальных компиляторов
Минимальные требования для использования Embree:
- Процессор с поддержкой SSE2 инструкций. Для достижения лучшей производительности рекомендуется процессор Intel с поддержкой AVX, AVX2 и AVX-512 инструкций
Минимальные требования для ускорения вычислений на CUDA:
- Операционная система: Windows 10
- Видеокарта Nvidia с поддержкой CUDA
- Видеодрайвер версии 452.39 и старше
Для работы требуется установленный Microsoft Visual C++ 2019 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Спойлер-static – запекать статическое освещение (не работает с ключом -nohemi)
-nohemi – отключить запекание освещения. Значительно ускоряет компиляцию. Предназначен для тестирования геометрии
-skipthm – не прерывать компиляцию при отсутствующих текстурах
-skipinvalid – не прерывать компиляцию при найденных invalid faces и пропускать их
-removeinvalid – не прерывать компиляцию при найденных invalid faces и удалять их
-noimpl - пропуск стадии LIGHT: Implicit (запекание освещения для террейна)
-nocform - пропуск создания level.cform
-noresize - отключить уменьшение размеров загружаемых текстур высокого разрешения
-tex_rgba – не использовать сжатие для сохраняемых текстур
-tex_bc7 – использовать BC7 сжатие для сохраняемых текстур (формат поддерживается только на DX11)
-silent – автоматически закрыть приложение после завершения компиляции
-sleep – выключить компьютер после завершения компиляции
-underground – компилировать уровень как подземный. Ускоряет компиляцию
-cform – экспортировать только коллизию уровня
-noise – отключить создание Progressive геометрии. Ускоряет компиляцию, но не создает упрощенную геометрию для уровня и Multiple Usage объектов
-nosmg – не использовать группы сглаживания. В зависимости от конкретной геометрии помогает избежать ломаных фейсов/теней, или наоборот добавит их
-notess – не тесселировать геометрию. В некоторых случаях может повышать fps в зависимости от конкретной локации. Проверять на практике
-noweld – отключить сшивание маленьких треугольников. В некоторых случаях помогает избежать глюков на некоторых типах геометрии
-nomerge – пропустить стадию Merging geometry
-nostrip – отключить оптимизацию и стрипификацию геометрии
-dx_opt – включить оптимизацию геометрии средствами D3DX optimizer вместо NvTriStrip
-old_bcform - создавать build.cform в старом формате
-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 имя_файла – создать файл лога с данным именем. Полезно для компиляции локаций очередью
-log_count число – установить максимальное количество множественных логов. По умолчанию, 30. Работает только через прописывание в .bat файл запуска
-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 -noisestart bin\compilers_sky_x64\xrCompiler.exe -details -f zaton -nohemistart 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.6b:
СпойлерГеометрия:
- Часть алгоритмов компиляторов была переписана под многопоточное использование и вычисление на видеокарте
- Для ускорения рейтрейсинга подключена библиотека Embree с полноценной поддержкой прозрачных поверхностей и инстансов
- Оптимизированы фазы запекания освещения и расчетов укрытий АИ-сетки
- Оптимизированы фазы Building UV и Merging geometry
- Исправлен пересвет хеми у MU объектов в аутдоре. Данная проблема имелась даже на оригинальных локациях, и сейчас все объекты (для исключением объектов в зданиях) более менее выровнены по значению хеми
- При запекании хеми освещения реализована небольшая рандомизация направления лучей, что улучшило плавность запекания
- Лайтмап текстуры теперь автоматически расширяются до 4К разрешения. Благодаря этому на этапе сшивания геометрии больше вершин будут объединены за счет схожих текстур. Также данное разрешение было выбрано, так как оно поддерживается более-менее старыми видеокартами
- Изменена последовательность условий при распределении лайтмапов по холстам
- Изменено условие тесселяции треугольников. Теперь тесселяция производится только при большой площади текстурных координат у треугольников
- Добавлена подфаза оптимизации текстурных координат, которая нацелена на исправление потяжек текстур
- Исправлена проблема потенциальных потяжек текстур на геометрии с наложенными текстурами большого разрешения
- Убрана фаза Building tangent-basis, теперь действия этой фазы выполняются в процессе Converting to OGFs
- Экспериментальный отказ от использования THM файлов. Данные файлы используются компилятором для определения наличия прозрачности у текстур, чтобы в дальнейшем использовать текстуры при запекании освещения. Теперь проверка прозрачности происходит через чтение игровых шейдеров (shaders.xr). Производится поиск материалов с шейдером, который поддерживает полупрозрачность, и подгружаются только нужные текстуры. Также в подгружаемых текстурах дополнительно проверяется наличие альфа канала. Если его не обнаруживается, то текстура выгружается, а поверхность становится непрозрачной. Данный переход на использование shaders.xr поможет избавиться от проблемы с обработкой сломанных и некорректно настроенных THM файлов
- Фаза Radiosity (ключ -gi) автоматически отключается с использованием Embree, поскольку фаза стала deprecated. На первых версиях компилятора она уже работала не так как надо, поэтому в планах совсем её вырезать
- Уменьшен размер структуры треугольников, что уменьшило потребление памяти
- Новый формат build.cform, имеющий меньший вес файла
- Добавлена возможность встроить кэш коллизии в level.cform через опцию -cache_cform. Требует модифицированный игровой движок с поддержкой встроенного кэша. Исходный код чтения обновленного формата представлен здесь: https://github.com/OpenXRay/xray-16/commit/8debe4df30070dcf4ed76afee2d93b3c55add757
- Исправлены потенциальные проблемы с появлением "фейковых" теней
- Добавлено больше информации о вылете "g_sectors"
Спавн:
- Оптимизация в фазе сборки графов
- Добавлена поддержка ТЧ 1.0000 версии спавна
- Добавлена поддержка серверных классов W_MOUNTD и Z_AMEBA
- Экспериментальный отказ от необходимости заполнения секции [levels]. Теперь список формируется из добавленных пользователем спавнов, и идентификаторы уровней идут по возрастанию. Для возвращения чтения секции добавлен ключ -use_levels_section
- Добавлен ключ -spawn_version <значение> для принудительного выставления версии спавна
- При ошибке "Can't find any graphs! Check log" могут дополнительно выводиться количество уровней без АИ-сетки и количество АИ-сеток с расхождением версий, если таковые имеются
Интерфейс:
- В меню добавлена опция перезагрузки меню после успешной компиляции
- В случае успешной компиляции при наличии опции выключения ПК теперь появляется окно с полуминутным таймером и возможностью отменить выключение
- Сообщения об инвалид фейсах и split faces больше не выводятся в окне, выводится только их количество. В лог всё пишется как раньше
- Добавлены новые опции ускорения вычислений
- Исправлено сохранение дополнительных ключей для компилятора АИ-сетки
- Добавлено поле дополнительных ключей в сборку спавна
- При завершенной компиляции приложение просигнализирует об этом на панели задач
Остальное:
- Произведено объединение библиотек компилятора в монолитный вид, в результате чего некоторый код был соптимизирован
- Добавлены множественные логи. По умолчанию, создается до 30 логов, заменяя собой более старые файлы
- Добавлен ключ -log_count, устанавливающий максимальное количество множественных логов. Работает только через прописывание в .bat файл запуска
Версия 1.5:
Спойлер- Добавлена возможность форсировать использование групп сглаживания на определенной геометрии даже при наличии ключа -nosmg. Для использования групп сглаживания на модели необходимо назначить на его материалы компил шейдер, имеющий в названии _smg. Например, def_vertex\def_vertex_smg. Сам компил шейдер достаточно склонировать с оригинального и переименовать с этим постфиксом
- Добавлена возможность отключить тесселяцию на определенной геометрии (например, на носан коробках). Для этого необходимо назначить на материал компил шейдер, имеющий _no_tess в названии. Однако следует помнить, что отключение тесселяции может порождать потяжки текстур, поскольку не создаются дополнительные вершины, необходимые для оптимизированной развертки
- Добавлена возможность отключить запекание теней от определенных MU моделей. Компил шейдеры MU моделей должны иметь _no_mu_shadow в названии. Отличие данного решения от обычного отключения галки Cast shadow заключается в том, что в данном случае будет применяться самозатенение MU модели, и модель не будет высветлена
- Отключены некоторые фазы компиляции в режиме -nohemi. Также теперь в этом режиме создается только одна пара лайтмап текстур на весь уровень
- При выключенном запекании статического освещения текстура лайтмапы террейна сохраняется с разрешением 32x32
- Исправлен экспорт левел ченджеров в ЧН и ЗП
- Добавлен новый алгоритм выполнения фазы "Merging geometry". Потребляет чуть больше памяти, но выполняется быстрее
- Фаза создания коллизии уровня перемещена перед фазой тесселяции для уменьшения полигонажа
- Добавлена опция отображения максимального потребления памяти при компиляции:

- Новые ключи для компилятора геометрии:
-no_bcform - пропустить фазы "Building rcast-CFORM model", "Building rcast-CFORM-mu model" и отключить создание файла build.cform, необходимого компиляторам для запекания освещения детейлов и расчета укрытий АИ-сетки. Работает только с ключом -nohemi и предназначен для ускорения компиляции без расчетов освещения
-old_merge - вернуть использование старого алгоритма фазы "Merging geometry"
-lmap_size число - разрешение лайтмап текстур. По умолчанию 1024
-border число - изменить значение переменной BORDER в коде компиляторов. По умолчанию 1
-subdiv_size число - изменить максимальный размер участков (в метрах), на которые разбивается большая геометрия. По умолчанию 32
-bparams_ext - поддержка расширенных настроек уровней, экспортированных SDK от Yara- Новый ключ для компилятора АИ-сетки:
-force_large_aimap - форсировать открытие АИ-сетки оригинального формата с большим количеством АИ-нод (более 8 млн). Ключ экспериментальный, корректность АИ-сетки не гарантируется. Для корректного экспорта необходима АИ-сетка нового формата.
- Новые ключи для сборщика спавна:
-actor_level имя_уровня - выбрать уровень для спавна актора. Позволяет избежать рутинного удаления актора вручную с каждого уровня. Будет заспавнен только актор с выбранного уровня, остальные проигнорированы. Если же его нет на уровне, то он автоматически создастся в нулевых координатах
-no_levels_section - игнорировать список уровней из секции [levels]. Позволяет не прописывать каждый уровень в эту секцию. В этом случае общий спавн будет собран из списка уровней, прописанных в батнике
-skip_invalid_class - пропускать вылет "Can't create entity". Все объекты с некорректными и неизвестными классами будут проигнорированы и не попадут в общий спавнВерсия 1.4b:
Спойлер- Добавлена поддержка формата расширенной АИ-сетки. Сетка будет автоматически экспортироваться в новый формат при обнаружении нового формата в файле проекта из СДК. Для данного формата также необходим измененный игровой движок и СДК
- Для сборки спавна добавлен ключ -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 для возвращения загрузки текстур по обоим путям
- Отключен вылет iFloor((source_position.z - header().box().min.z)/header().cell_size() + .5f) при нахождении объекта за пределами АИ-сетки. Добавлен вывод в лог некорректной позиции и производится попытка сместить позицию на крайнюю аи-ноду
- Убрано изменение level файла при ключе -cform
- Добавлено завершение записи level файла перед сообщением об успешной компиляции
- При ключе -saveobj_cform разделен экспорт геометрии на два файла: raycast геометрию и коллизию
- Не используемые при запекании выходные текстуры сохраняются с разрешением 32х32
- Добавлена возможность прописать абсолютный путь к выходному спавну. Такой путь должен быть указан в кавычках и не содержать кириллицы. Например: -out "e:\Games\STALKER - COP\gamedata\spawns\all.spawn" -no_separator_check
- Добавлен вывод ключей в лог при старте компилятора через батник
Версия 1.3a:
Спойлер- Добавлена поддержка сборки ТЧ спавна
- Для ТЧ спавна добавлен ключ -insert_graph, который осуществляет сборку спавна со вшитыми в спавн графами
- Мультивыбор уровней в списке на добавление в спавн
- Добавлена поддержка чтения файлов больше 2 Гб
Версия 1.2:
Спойлер- Добавлена поддержка сборки ЧН спавна
- Добавлена поддержка групп сглаживания для ТЧ локаций
- При ключе -removeinvalid больше не удаляются полигоны с нулевой площадью текстурных координат. Координаты заменяются на константное значение
- Улучшено взаимодействие потоков расчетов лайтмапов и обработки MU моделей между собой
- Добавлен ключ -nocform для пропуска создания level.cform
- В создаваемый компилятором compiler.ini добавлены параметры проектов по умолчанию (секция [compiler_pref]). К примеру, чтобы включить автоматическую установку флага -static для новых проектов, следует выставить параметр gm_static в on.
- Добавлено больше информации о фазах сборки спавна
Версия 1.1:
Спойлер- Изменено хранение загружаемых текстур, что уменьшило потребление оперативной памяти
- Добавлено автоматическое уменьшение размеров загружаемых текстур высокого разрешения до 1К, что тоже повлияло на уменьшение потребления памяти
- Уменьшен шанс появления черных треугольников при недостаточном значении Pixel per meter
- Добавлено отключение стрипификации и прогрессивов у высоколигональных мешей для пропуска вылетов "iNumVerts < 65535" и "OGF::Stripify"
- Добавлен ключ -noimpl для пропуска стадии LIGHT: Implicit
- Добавлен ключ -noresize для отключения уменьшения размеров загружаемых текстур высокого разрешения
- Исправлено возможное подвисание окна приложения
- Исправлено некорректное запекание освещения для некоторых террейнов
- Исправлено не добавление ключа формата при старте компиляции из меню
- Исправлена оригинальная ошибка распараллеливания на стадиях запекания освещения
- Исправлен вылет при отсутствии implicit текстур
Версия 1.0:
СпойлерЕсть возможность выставить настройки по умолчанию для загружаемых уровней. После первого запуска компилятора создаётся файл compiler.ini в корневой папке СДК. В секции [compiler_default_pref] этого файла можно поменять опции различных ключей, которые присутствуют в меню. Например, если ваш движок требует запекание статического освещения, то в данной секции нужно поменять опции gm_static и dt_static с off на on. После этого для всех новых проектов будет автоматически выставляться галка "Запекать статическое освещение".
Для уровней, собранных ТЧ СДК, будет автоматически применяться ТЧ сглаживание, а значит нет необходимости использовать ключ -nosmg. Исключение составляют модифицированные ТЧ СДК, добавляющие группы сглаживания (например, SDK от Yara).
При активном ключе -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 может помочь в ручном редактировании лайтмап текстур, если на них были обнаружены проблемы.
-
21
-
17
-
1
-
1
-
4
-
3
-
12
-
5
-
2 часа назад, Overf1rst сказал:Я бы сделал более надёжный вариант:
Для больше надёжности лучше получать предмет из слота фонаря, поскольку в инвентаре может быть несколько фонарей и можно получить не тот фонарь, что нужен)
-
2
-











Универсальные компиляторы уровней х64
в Работа с SDK
Опубликовано
По поводу этого момента:
Поступило предложение сделать зависимость поиска thm файлов от версии проекта уровня. Для ТЧ версии оставить только $textures$ (rawdata\textures), а для ЧН, ЗП только $game_textures$ (gamedata\textures). Чтобы не было непоняток, почему у текстуры и thm файла пошли различия. Изначально моя идея с поиском по двум путям заключалась в облегчении переноса контента с ЗП в ТЧ сдк, чтобы не надо было заново настраивать все текстуры, а настройки текстур сразу брались из геймдаты. Но, по итогу, это несет больше путаницы, чем пользы. Поэтому если это действительно излишняя фича, то в следующей версии могу убрать поиск по двум путям.