Эта статья документации для всего, что использует платформу Source. Нажмите для получения дополнительной информации.

Компилятор геометрии VBSP

From Valve Developer Community
< Ru
Jump to navigation Jump to search

English (en)Español (es)Русский (ru)中文 (zh)Translate (Translate)

VBSP ▶ VVIS ▶ VRAD ▶ BSPZIP

Info content.png
This page has not been fully translated.
You can help by finishing the translation.
If this page cannot be translated for some reason, or is left untranslated for an extended period of time after this notice is posted, the page should be requested to be deleted.
Also, please make sure the article complies with the alternate languages guide.(en)

VBSP VBSP — это инструмент, преобразовывающий исходный VMF(en)-файл карты в файл бинарного разделения пространства(en) формата Source 1's BSP(en). После этого обычно используются VVIS(en) и VRAD(en).

Что делает VBSP:

Несмотря на то что результирующий BSP(en) файл уже может быть использован в игре, он не содержит данных о контроле видимости (низкая производительность) и освещении.

Icon-Bug.pngБаг:В не относящихся к Версия платформы Left 4 Dead играх, MDL(en)-файлы имеющие заголовок IDST1 не будут загружаться VBSP, смотри ошибки VRAD(en).
Icon-Bug.pngБаг:Группы сглаживания(en) неправильно прописаны для граней объекта элементов детализации(en). Код исправления можно найти в предлагаемом решении №391.
Исправлено в Slammin' Source Map Tools, Garry's Mod, Mapbase и VBSP++(en).  (подтверждено в: Source 2013)
Icon-Bug.pngБаг:Исходная версия VBSP не распознает сторонние оттенения с картами освещения, поэтому VRAD(en) не создаёт для них карты освещения.
Исправлено в модифицированных версиях, таких как Slammin' Source Map Tools, Mapbase и VBSP++(en).  (подтверждено в: Source 2013)

Синтаксис

vbsp.exe [параметры] <имя_карты>.vmf
Note.pngПримечание: Файл commandline.cfg(en) можно использовать для подстановки параметров командной строки компиляции конкретной карты.

Пример

"..\Half-Life 2\bin\vbsp.exe" -onlyents "sdk_trainstation_01.vmf"

Это повторно создаст блок объектов без влияния на остальной мир карты.

Параметры командной строки

Основные параметры

Note.pngПримечание: -onlyents и -keepstalezip пометит карту как "устаревшую" встроив файл stale.txt в её BSP-файл. При загрузке "устаревших" карт в терминале управления появится предупреждение "This map is not final!!".
-v
-verbose
Включает подробный вывод (также показывает больше параметров командной строки(en)). Используется без каких-либо других параметров.
-onlyents
Импортирует из VMF только объекты(en). Элементы карты и внутренние объекты карты не изменяются. Геометрия объёмных объектов не изменяется, но заменяются значения ключ-параметров(en). Сохраняет имеющиеся данные освещения и видимости.
-onlyprops
Обновляет только статичные и мелкие реквизит-объекты (например, внутренние объекты). Не создаёт .prt файл (making VVIS fail).
-glview
Записывает данные областей видимости для glview(en) в директорию VMF. При использовании -tmpout, файлы будут записаны в директорию \tmp.
nodetail
Убирает объекты элементов детализации(en). Остаются только элементы геометрии карты, влияющие на видимость.
nowater
Избавляется от объёмов элементов воды.
Подтвердить:Учитывается ли CONTENTS_SLIME или только CONTENTS_WATER?
-low
Запускает компилятор как процесс с низким приоритетом.
-vproject <directory>
Переопределяет переменную среды VPROJECT(en).
-game <directory>
Определяет директорию размещения файла gameinfo.txt
-insert_search_path <directory(en)>
Добавляет путь к директории для поиска дополнительного содержимого (как записи в Gameinfo.txt(en)). Полезно, если по какой-либо причине необходимо хранить некоторые ресурсы отдельно от основной модификации.
-embed <directory>
Сохраняет содержимое директории <directory> в упаковочный блок файла карты (Во всех играх начиная с Source 2013 Multiplayer)
-instancepath <directory(en)> (только в Portal 2: Community Edition)
Переопределяет ключ InstancePath в файле gameinfo.txt.

Расширенные параметры

-autoviscluster <целое число(en)> (Во всех играх начиная с Counter-Strike: Global Offensive)
Нужно сделать: Used on dz_sirocco, found in scripts/mapautocompile.txt.
-novconfig
Не открывать графический интерфейс при ошибках vproject.
-threads <целое число(en)>
Определяет количество используемых компилятором потоков (по умолчанию — количество процессоров/ядер (x2 для процессоров с Hypertreading/SMT) на вашем компьютере).
-verboseentities
Если использован параметр -v, то подробный вывод для подмоделей отключается.
-noweld
Не объединять близкие вершины граней.
-nocsg
Не вырезать пересекающиеся объёмы элементов карты.
-noshare
Создавать новые рёбра граней вместо совместного использования.
-notjunc
Не исправлять Т-стыки геометрии.
-allowdetailcracks
Не исправлять Т-стыки геометрии на объектах элементов детализации(en).
-nodrawtriggers
Компилирует все переключатели с применением неотрисовываемой Nodraw текстуры. Влияет только на переключатели, использующие текстуру с %CompileTrigger(en).
-noopt
По умолчанию, VBSP удаляет "внешние оболочки" карты, которая состоит из граней, которые невозможно увидеть в игре, потому что персонаж не может выбраться за границы карты. -noopt отключает такое поведение.
-noprune
Don't prune neighboring solid nodes.
-nomerge
Don't merge together chopped faces on nodes.
-nomergewater
Don't merge together chopped faces on water.
-nosubdiv
Не разделять грани для создания карты освещения.
-micro <число с плавающей запятой(en)>
Компилятор предупредит, о наличии элементов меньше указанного объема (по умолчанию: 1.0 единица).
-fulldetail
Обработать все элементы детализации как обычные элементы геометрии карты (чтобы все элементы детализации влияли на видимость).
-alldetail  (только в Alien Swarm Dota 2 Alien Swarm: Reactive Drop)
Обработать все обычные элементы геометрии картыуву элементы детализации, за исключением объектов func_brush(en), имена которых начинаются на structure_.
-leaktest
Остановит процесс, если будет найдена утечка. Файл утечки будет создан и записан в <имя_карты>.lin, вне зависимости от использования этого флага.
-noleaktest  (только в Slammin' Source Map Tools Mapbase)
Отключает проверку утечек, так как она включена по умолчанию.
-bumpall
Принудительно расчитывать все поверхности как имеющие маски реьефа(en).
-snapaxial
Snap axial planes to integer coordinates.
-block <X_index> <Y_index>
-blocks <minX_index> <minY_index> <maxX_index> <maxY_index>
Ограничивает компиляцию карты в пределах указанных блоков координатной сетки. Параметр использует номера блоков, а не единицы измерения Hammer. Для размера блока по умолчанию 1024x1024: диапазон от -16 до 15, при параметре -block 0 0, будет соответствовать координатам между 0 0 -16384 и 1024 1024 16384. Использование этих параметров почти всегда создаёт утечки, так как карта буквально обрезается по границе мира. В этом случае компилируйте карту только с помощью VBSP.
-blocksize <целое число(en)> (Во всех играх начиная с Counter-Strike: Global Offensive)(также в Slammin' Source Map Tools)(также в Garry's Mod)
Задаёт размер каждого блока координатной сетки, на которые VBSP разделяет карту. По умолчанию 1024. Directly affects the grid calculation for -block and -blocks. Changing this value scales the size of each sector, requiring you to recalculate block indices based on the new size.
-dumpstaticprops
Перечисляет все объекты статичного реквизита в файл staticprop*.txt
Icon-Bug.pngБаг:The VBSP help lists this parameter in the plural (-dumpstaticprops), but the code only handles the version without the "s".
-dumpcollide
Записывает файлы с информацией о столкновениях.
-forceskyvis
Включает расчёт видимости в областях трёхмерного неба(en).}}
Tip.pngСовет: Используйте если в области трёхмерного неба можно попасть без команды noclip(en).
-luxelscale #
Устанавливает указанный масштаб для всех карт освещения (по умолчанию: 1.0).
-minluxelscale <число с плавающей запятой(en)>
Позволяет ограничить минимальный масштаб люкселов(en) на карте.
-maxluxelscale  (только в Slammin' Source Map Tools)
Позволяет ограничить максимальный масштаб люкселов на карте.
-lightifmissing
Принудительно создавать карты освещения для всех поверхностей, даже если они не требуются.
-localphysx
Нужно сделать: Неизвестно
-keepstalezip
Keep the BSP's zip files intact but regenerate everything else.
-visgranularity <вектор данных3(en)> (Во всех играх начиная с Counter-Strike: Global Offensive)(также в Slammin' Source Map Tools)
Force visibility splits # of units along X, Y, Z.
-replacematerials
Подменяет материалы в соответствии с файлом cfg/materialsub.cfg(en)
-FullMinidumps
Записывает полные кадры памяти при сбое компиляции.
-novirtualmesh
Исправить проваливание объектов физики в деформированные поверхности для старых версий Source(en) ценою большего размера BSP-файла.
-xbox
Обрабатывать поверхности переключателей %CompileTrigger(en) как неотрисовываемые, а поверхности воды %CompileWater(en) (но не слизи %CompileSlime(en)) - как имеющие признак %CompileNoLight(en). Подразумевает использование параметра -nodrawtriggers.
-nodefaultcubemap  (только в Slammin' Source Map Tools)
Отключает автоматическое создание карты окружения из небосвода.
-defaultcubemap  (только в Mapbase)
By default in Mapbase "dummy" cubemaps are not generated during map compilation but can be forced to generate again by this parameter.
-allowdynamicpropsasstatic  (только в Garry's Mod)
Разрешает использовать для prop_static(en) все модели помеченные признаком 'static' в просмотре моделей, даже если в данных модели отсутствует 'allowstatic'.

Объединение статичных реквизит-объектов

(Во всех играх начиная с Counter-Strike: Global Offensive)

-StaticPropCombine
Merges static props together according to the rules defined in scripts/hammer/spcombinerules/spcombinerules.txt. This lowers the number of draw calls, increasing performance. It can also be used to lower the number of static props present in a map. See Static Prop Combine(en).
-StaticPropCombine_AutoCombine
Automatically generate static prop combine rules for props that VBSP deems should be combined.
Note.pngПримечание: This does not write to spcombinerules.txt.
-StaticPropCombine_ConsiderVis
Instead of using the distance limit, combine all props in the group that share visclusters.
-StaticPropCombine_SuggestRules
Lists models sharing the same material that should be added to spcombinerules.txt.
-StaticPropCombine_MinInstances <целое число(en)>
Определяет минимальное количество объектов реквизита для объединения в группу, необходимое для создания единого объекта.
Tip.pngСовет: Valve установила значение 3 для нового Dust 2.
-StaticPropCombine_PrintCombineRules
Подтвердить:Prints the combine rules? Hasn't been working for me.
-StaticPropCombine_ColorInstances
Подтвердить:Does this color the instances?
-KeepSources
Не удалять автоматически созданные QC-файлы и распакованные файлы моделей после завершения работы.
-CombineIgnore_FastReflection
Объединять даже при различных значениях Render in Fast Reflections.
-CombineIgnore_Normals
Объединять даже при различных значениях Ignore Normals.
-CombineIgnore_NoShadow
Объединять даже при различных значениях Disable Shadows.
-CombineIgnore_NoVertexLighting
Объединять даже при различных значениях Disable Vertex lighting.
-CombineIgnore_NoFlashlight
Объединять даже при различных значениях Disable flashlight.
-CombineIgnore_NoSelfShadowing
Объединять даже при различных значениях Disable Self-Shadowing.
-CombineIgnore_DisableShadowDepth
Объединять даже при различных значениях Disable ShadowDepth.

Нефункциональные параметры

-linuxdata
Force it to write physics data for Linux multiplayer servers. (It will automatically write this data if it finds certain entities like info_player_terrorist, info_player_deathmatch, info_player_teamspawn, info_player_axis, or info_player_coop.)
Obsolete-notext.pngУстарело:(удалено начиная с Source 2007) All modern branches of Source use the same physics data on all platforms.
-nolinuxdata
Force it to not write physics data for Linux multiplayer servers, even if there are multiplayer entities in the map.
-virtualdispphysics
Use virtual (not precomputed) displacement collision models

Скрытые параметры

The following options have been commented out with #if 0 in the VBSP source code, but still function if VBSP is recompiled with these uncommented.

Both options are restored in VBSP++(en) and Garry's Mod Garry's Mod's VBSP.

-maxlightmapdim <число с плавающей запятой(en)>
Default 32. Set the maximum size a brush face's lightmap can be. VBSP will subdivide faces each time a brush face exceeds one minus this many luxels. Displacements do not get subdivided, but are still limited to this minus one times four(en).
Warning.pngПредупреждение: Going above the default of 32 will result in the lightmap not loading in engine versions other than Military Conflict: VietnamStrata Source.
-defaultluxelsize <число с плавающей запятой(en)>
Default 16. Set the default luxel scale that is used if a brush face's lightmapscale is set to 0 or is missing.
Icon-Important.pngВажно: Editing the face attributes of a face with a luxel scale of zero in Hammer(en) or Hammer++(en) will result in the luxel scale being rounded up to 1!

Вывод информации в терминал

Нужно сделать: Add descriptions for other VBSP outputs (WriteBSP, PruneNodes, ProcessBlock_Thread, etc).

VBSP печатает различную информацию о процессе компиляции в окне командной строки. Обратите внимание, что выводимая информация в более старых версиях компилятора может отличаться.

-Patching WVT material: material path to patched WVT material
Если карта содержит материалы WorldVertexTransition, применённые к граням не являющимся деформированными поверхностями, то VBSP замещает эти материалы с использованием другого оттенения (например, LightmappedGeneric) для правильного отображения таких граней.
-FixTjuncs...
Т-стыки создаются, когда объёмы элементов детализации(en) пересекаются с элементами геометрии карты. Для предотвращения визуальных дефектов VBSP исправляет Т-стыки.
-Placing detail props : 0...1...2...3...4...5...6...7...8...9...10
Размещение мелких реквизит-объектов(en) на карте.

Смотреть также

Тематический указатель