Загрузка Pointfile (файл имя карты.lin)
Иногда утечка(leaked) не столь очевидна, как в примере выше. Она могут составлять всего лишь одну единицу ширины и соответственно по-прежнему будет вызывать ошибку. Для этого необходимо использовать инструменты компиляции, в нашем случае это pointfile. Pointfile это файл, созданный vbsp, типа имя карты.lin. После возникновения ошибки об утечки, vbsp сгенерирует файл имя карты.lin, который будет создан в той же директории, где находится ваш .vmf файл.
Поиск утечки(leaks) на карте
свойства компилятора(Run map).
При компиляции карты зачастую будут возникать ошибки об утечки (leaked) (а если учесть то сколько времени Вы можете потратить на полную компиляцию карты, лишь для того чтобы узнать что ваша карта не работает (есть ошибка leaked)), поэтому перед полной компиляцией карты, всегда делайте быструю. Это позволит Вам быстро отловить ошибки на карте и в конечном итоге сэкономит время. Для этого: нажмите F9 (File->Run Map), в открывшемся диалоге установите для VIS и RAD свойство NO, а также отметьте пункт Don't run game after compiling (не запускать игру после компиляции) и Wait for keypress when done compiling (закрывать окно компиляции после нажатия клавиши):
Быстрый способ проверки на утечку (leaked)
Наиболее частой проблемой на сегодняшний день является то, что vvis не запустится пока на карте есть утечка. Это в свою очередь, при запуске уровня, приведет к тому, что Source движок не будет знать как следует визуализировать уровень и какие ограничения накладывать на этот процесс, поэтому движок попытается отрисовать весь уровень. Это безусловно приведет к необходимости рендерить большое количество полигонов и неправильной или не полной отрисовки некоторых частей карты.
Утечка на уровне имеет ряд негативных эффектов. Во первых, vbsp будет сообщать о наличии утечки, и не создаст portal файл (mapname.prt). portal файл используется для вычислений визуализации. Без portal файла vvis вообще не запустится. Соответственно vvis не создаст файлы необходимые для работы , рассчитывающим сложное освещение. По этой причине vrad рассчитает только прямое освещение - никакой трассировки и сложных эффектов со светом.
Note:Если ваша карта не содержит ни одной энтити, может сообщит об утечке, поскольку нет способа определить какая часть является интерьером уровня, а какая экстерьером.
Note:Часто энтити выводимая компилятором в лог не является причиной утечки. Удаление привет к появлению ошибки, в которой будет указана другая энтити, удаление не решает проблемы! Однако существует ситуация когда удаление энтити устраняет утечку: это когда энтити находится за границам уровня. Этот случай будет описан ниже в этой статье.
Этим сообщением об ошибке, vbsp сообщает Вам о присутствует утечки на карте, а так же название первой попавшейся ему энтити связанной с пустотой ( в нашем случае, это свет ). Vbsp так же выводит мировые координаты X, Y и Z утечки вызванной этой энтити.
Entity light (-1607.69 -1094.12 -183.00) leaked!
ProcessBlock_Thread: 0...1...2...3...4...5...6...7...8...9...10 (0)
Когда карта компилируется с такой дырой, выводит сообщение об ошибке в лог компиляции:
Дыра в геометрии уровня приводящая к утечки.
Этот пример показывает карту с неправильно геометрией соединяющий пространство уровня и пустоту. При компиляции будет выдана ошибка утечки:
Уровни, созданные для Source Engine должны быть полностью изолированными. Это означает, что пространство вашего уровня не должно соприкасаться с внешним миром, с " ", говоря проще ваш уровень не должен содержать "дырок". Таким образом небо должно реализовываться с помощью браша с нанесенной на него tools/toolsskybox текстурой. Когда пространство уровня "соприкасается" с пустотой, при компиляции карты генерируется leak . Когда происходит утечка, компилятор не знает какая часть уровня находится внутри, а какая снаружи и не может быть запущен. Если vvis не запускать, то множество эффектов может не работать или работать неправильно, включая воду и некоторые поверхности будут выглядеть как клубы пыли.
Что такое утечка (leak)?
From Valve Developer Community
Leak:ru - Valve Developer Community
Комментариев нет:
Отправить комментарий