Теория компиляции карт

From Valve Developer Community
< Ru
Jump to navigation Jump to search
English (en)Français (fr)Русский (ru)中文 (zh)Translate (Translate)

Использована статья Source.

Введение

В этой статье объяснён процесс преобразования файла карты из редактора в работающий BSP-файл карты. Имейте в виду, что это не руководство по компиляции карты. Статья поможет разобраться, что должно произойти и почему важны некоторые моменты (например, предотвращение утечек).

Процесс создания работающей карты для Source начинается с создания в редакторе .vmf(en) файла. Этот файл содержит данные о всех полигональных элементах (так называемых brush(en)), данные объектов(en) и текстур(en), которые будут определять внешний вид и функциональность готовой карты. Все редакторы фактически служат одной цели - определить, как будет выглядеть карта. В файле VMF хранится информация об объектах и объёмах, которая будет использоваться при компиляции.

Компиляция преобразует VMF-файл карты, используемый в редакторах, таких как Hammer(en), в работающий BSP(en)-файл карты с помощью описанной ниже последовательности:

  1. Чтение файла .vmf(en)
  2. Запуск программы BSP(en) для файла .vmf
  3. Запуск программы VIS(en) для созданного файла .bsp
  4. Запуск программы RAD(en) для обновлённого файла .bsp, чтобы добавить информацию об освещении
  5. Перемещение готового файла .bsp в соответствующую директорию карт игры
  6. Запуск игры с параметрами для загрузки карты

(Большинство редакторов/компиляторов поставляются с пакетным сценарием командной строки (.bat) для выполнения всех операций)

Обзор процесса компиляции

На следующей схеме показан общий процесс, необходимый для создания работающего файла карты (.bsp).

Файл .vmf > VBSP > промежуточный файл .bsp > VVIS > VRAD > готовый файл .bsp

Source Mapping Pipeline.png

Инструменты компиляции

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

Инструмент Назначение
VBSP(en) Преобразовывает данные файла .vmf в удобный формат .bsp, пригодный для загрузки в игровой движок. После его запуска, карта становится практически готовой к игре за исключением того, что в ней будут отсутствовать матрица видимости и освещение. Эти важнейшие функции создаются следующими двумя инструментами: VIS и RAD.
VVIS(en) Создаёт матрицу видимости на основе геометрии карты. Эта матрица определяет, какие полигоны игрок видит, а какие сможет или не сможет увидеть ни с какой точки уровня. Очень важно, чтобы этот инструмент запускался каждый раз при создании .bsp. Если он не запустится, карта будет постоянно отрисовываться целиком со всеми моделями(en) и объектами реквизита(en), что понизит частоту кадров и сделает карту неиграбельной. Больше информации о VIS можно найти в оптимизации видимости(en).
VRAD(en) RAD, или Radiosity (диффузия света), отвечает за создание и применение всех световых эффектов на карте. Всё, от подсветки объектов и "неба" до слабоосвещённых текстур, обрабатывается этим инструментом. Карта, файла .bsp которой не обрабатывался RAD, будет выглядеть абсолютно тёмной или ярко освещённой, в зависимости от видеорежима и параметров терминала управления. Обычно работа этого инструмент занимает наибольшее время компиляции, поскольку ему приходится обрабатывать огромный массив данных. Больше информации о RAD можно найти в RAD (technical)(en).

Оболочки компиляции

  • Batch Compiler(en) - Поддерживает Quake, Valve, Zoners, и CSTTools
  • VBCT(en) – Оболочка компиляции для Source.
  • Compile Pal(en) - Альтернативная оболочка компиляции для Source

Какие инструменты компиляции использовать?

Hammer имеет собственные инструменты компиляции от Valve. Они обозначаются буквой 'v' в начале имени инструмента (например, vbsp.exe(en), vvis.exe(en), vrad.exe(en)).

Note.pngПримечание: By far the best option is to use Slammin' Source Map Tools(en)'s updated VBSP and VRAD. For Slammin' VVIS, use ficool2's VVIS++ instead as Slammin' VVIS provided no improvements to compile times.
Icon-Important.pngВажно: Slammin' Source Map Tools updated VBSP, VVIS and VRAD may not work or not designed for later games (such as Left 4 Dead engine branch(en) or above, or certain Source 2013(en) games, such as Team Fortress 2(en) which has its own branch(en) (also used by Counter-Strike: Source, Half-Life 2: Deathmatch and all previous Valve games formerly using Source 2013 MP), incompatible with Slammin's VBSP, but Slammin's VVIS and VRAD will continue to work on Team Fortress 2 branch(en)). Using ficool2's compilers is recommended instead for TF2 branch. Also for Mapbase(en), it is recommended to use Mapbase's VBSP instead of Slammin Tools VBSP for Parallax Corrected Cubemaps(en).
Note.pngПримечание: A good option are ficool2's VBSP++(en), VVIS++(en) and VRAD++(en). They are extremely fast compared to stock, bypassing dreaded limits (like t-junctions), on top of providing a unified list of parameters, including those from Slammin' and modern engine branches. See respective pages for compatibility info.
Warning.pngПредупреждение: Набор инструментов компиляции для Source от Адама Маккерна (CSTBSP(en), CSTVIS(en), CSTRAD(en) - известных под общим названием CST) устарел, поскольку в нем отсутствуют современные функции, такие как поддержка HDR(en).

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

  • Формат BSP-файла(en) – взгляд на инструменты компиляции с технической точки зрения (от автора VMEX и других инструментов Source).