Что такое компиляция: различия между версиями

Материал из CSM Wiki
Перейти к навигации Перейти к поиску
 
(не показаны 2 промежуточные версии 2 участников)
Строка 1: Строка 1:
'''Компиляция''' - это процесс перевода карты из формата .vmf в формат .bsp, который уже может запускать сама игра. Но зачем нужно компилировать карты, когда другие игры позволяют запускать карты без компиляции? Ответ таков: компиляторы, использующие технологию BSP, просчитывают не только освещение (которое может занять очень долгое время, особенно при неправильных настройках), но и сильно оптимизируют карту, повышая количетво выводимх кадров в секунду, делают карту приспособленной для сетевой игры и многое другое. Вот словесный алгоритм основнах операций:
+
'''Компиляция''' это процесс конвертации карты из формата .vmf в формат .bsp, который уже распознается самой игрой. Но зачем нужно компилировать карту? Движок Source использует такие технологии как BSP (Binary space partitioning) для построения геометрии и Radiosity для реалистичного освещения. Компиляторы нужны чтобы создать bsp дерево и заранее просчитать освещение. Вот словесный алгоритм основных операций:
  
 
*Читается .vmf файл.  
 
*Читается .vmf файл.  
*Выполняется копилятор BSP для .vmf файла.  
+
*Выполняется копилятор BSP, создается .bsp файл.  
*Выполняется VIS для создания нового .bsp файла.  
+
*Выполняется VIS, в готовый .bsp файл записывается новая информация (visdata).  
*Выполняется компилятор RAD, который добавляет информацию о свете в .bsp файл.  
+
*Выполняется компилятор RAD, который добавляет информацию об освещении в .bsp файл.  
*Ваш скомпилированный .bsp добавляет в вашу папку с картами или папку мода.  
+
*Готовый .bsp файл копируется в директорию мода maps/.  
 
*Запускается игра с параметрами для запуска карты.  
 
*Запускается игра с параметрами для запуска карты.  
  
Тут встречаются напонятные названия BSP, VIS, RAD. Это и есть программы для компиляции vbsp.exe, vvis.exe, vrad.exe. Рассмотрим, для чего они предназначены:
+
Рассмотрим, для чего предназначены компиляторы vbsp.exe, vvis.exe, vrad.exe:
  
*BSP. Конвертирует информацию из .vmf в используемый для загрузки в игре .bsp файл. Только BSP делает карту играбельной, за исключением того, что она не будет иметь матрици видимости и освещённости. Эти важные параметры добавляются следующими двумя интсрументами VIS and RAD.  
+
'''BSP'''. Основная его задача состоит из конвертирования "сырой" геометрии VMF в понятный движку формат Binary Space Partition.  
*VIS Этот инструмент создаёт матрицу видимости для геометрии карты. Эта матрица определяет полигоны, которые может видеть игрок, мог бы увидеть, и не может увидеть из любой точки зрения карты. Этот инструмент имеет важное значение при каждой компиляции. Если по каккой-либо причине на запуститься VIS, то весь уровень будет виден для движка и карта станет неиграбельной из-зи глюков и лагов.  
+
 
*RAD Просчитывает световые эффекты на карте. При компиляции тестовых карт RAD можно не использовать, так как он отнимает много времени, которое вы могли бы использовать на что-то более полезное.
+
Что делает VBSP:
 +
 
 +
* Конвертирует браши в полигоны
 +
* Генерирует [[Leafs|visleaves]]
 +
* Генерирует [[detail props]]
 +
* Обрабатывает большинство внутренних энтитей и превращает их в часть мира
 +
* Присваивает каждой отражающей поверхности ($envmap) ближайший cubemap
 +
* Запекает в карту entity block (блок с данными об энтитях)
 +
 
 +
Полученный в результате VBSP-компиляции .bsp файл может быть загружен в игре, но в нем будет отсутствовать информация о контроле видимости (низкая производительность) и освещении.
 +
 
 +
'''VIS'''. Этот инструмент анализирует готовый .bsp файл и записывает в него информацию о видимости. VVIS проверяет каждый [[Leafs|лист]] на предмет его обнаружения из другого листа. Операция проводится со всеми [[Leafs|листьями]].  
 +
 
 +
Что делает VVIS:
 +
 
 +
* Тестирует видимость между [[Leafs|листьями]]
 +
* Устанавливает максимальную дистанцию видимости (опция)
 +
 
 +
'''RAD''' анализирует готовый .bsp файл и "запекает" в него информацию об освещении. Заранее просчитанное Radiosity освещение избавляет движок от необходимости просчитывать свет в режиме реального времени.  
 +
 
 +
Что делает VRAD:
 +
 
 +
* Генерирует [[lightmap]]'ы (карты освещения)
 +
* Генерирует ambient samples (отраженный от поверхности свет)
 +
* Генерирует для каждого [[prop_static]] и [[detail prop]] объекта или вертекса освещение
 +
 
 +
VRAD как правило самый медленный из этих трех компиляторов из-за очень большого числа расчетов, которые он должен выполнить.  
  
 
[[Категория:Маппинг Source]]
 
[[Категория:Маппинг Source]]
{{Категория:Учебник Source}}
+
[[Категория:Учебник Source]]

Текущая версия на 02:49, 27 мая 2010

Компиляция — это процесс конвертации карты из формата .vmf в формат .bsp, который уже распознается самой игрой. Но зачем нужно компилировать карту? Движок Source использует такие технологии как BSP (Binary space partitioning) для построения геометрии и Radiosity для реалистичного освещения. Компиляторы нужны чтобы создать bsp дерево и заранее просчитать освещение. Вот словесный алгоритм основных операций:

  • Читается .vmf файл.
  • Выполняется копилятор BSP, создается .bsp файл.
  • Выполняется VIS, в готовый .bsp файл записывается новая информация (visdata).
  • Выполняется компилятор RAD, который добавляет информацию об освещении в .bsp файл.
  • Готовый .bsp файл копируется в директорию мода maps/.
  • Запускается игра с параметрами для запуска карты.

Рассмотрим, для чего предназначены компиляторы vbsp.exe, vvis.exe, vrad.exe:

BSP. Основная его задача состоит из конвертирования "сырой" геометрии VMF в понятный движку формат Binary Space Partition.

Что делает VBSP:

  • Конвертирует браши в полигоны
  • Генерирует visleaves
  • Генерирует detail props
  • Обрабатывает большинство внутренних энтитей и превращает их в часть мира
  • Присваивает каждой отражающей поверхности ($envmap) ближайший cubemap
  • Запекает в карту entity block (блок с данными об энтитях)

Полученный в результате VBSP-компиляции .bsp файл может быть загружен в игре, но в нем будет отсутствовать информация о контроле видимости (низкая производительность) и освещении.

VIS. Этот инструмент анализирует готовый .bsp файл и записывает в него информацию о видимости. VVIS проверяет каждый лист на предмет его обнаружения из другого листа. Операция проводится со всеми листьями.

Что делает VVIS:

  • Тестирует видимость между листьями
  • Устанавливает максимальную дистанцию видимости (опция)

RAD анализирует готовый .bsp файл и "запекает" в него информацию об освещении. Заранее просчитанное Radiosity освещение избавляет движок от необходимости просчитывать свет в режиме реального времени.

Что делает VRAD:

  • Генерирует lightmap'ы (карты освещения)
  • Генерирует ambient samples (отраженный от поверхности свет)
  • Генерирует для каждого prop_static и detail prop объекта или вертекса освещение

VRAD как правило самый медленный из этих трех компиляторов из-за очень большого числа расчетов, которые он должен выполнить.