Что такое компиляция: различия между версиями
Kogemyaka (обсуждение | вклад) (Новая страница: «'''Компиляция''' - это процесс перевода карты из формата .vmf в формат .bsp, который уже может зап…») |
|||
(не показаны 4 промежуточные версии 2 участников) | |||
Строка 1: | Строка 1: | ||
− | '''Компиляция''' | + | '''Компиляция''' — это процесс конвертации карты из формата .vmf в формат .bsp, который уже распознается самой игрой. Но зачем нужно компилировать карту? Движок Source использует такие технологии как BSP (Binary space partitioning) для построения геометрии и Radiosity для реалистичного освещения. Компиляторы нужны чтобы создать bsp дерево и заранее просчитать освещение. Вот словесный алгоритм основных операций: |
*Читается .vmf файл. | *Читается .vmf файл. | ||
− | *Выполняется копилятор BSP | + | *Выполняется копилятор BSP, создается .bsp файл. |
− | *Выполняется VIS | + | *Выполняется VIS, в готовый .bsp файл записывается новая информация (visdata). |
− | *Выполняется компилятор RAD, который добавляет информацию | + | *Выполняется компилятор RAD, который добавляет информацию об освещении в .bsp файл. |
− | * | + | *Готовый .bsp файл копируется в директорию мода maps/. |
*Запускается игра с параметрами для запуска карты. | *Запускается игра с параметрами для запуска карты. | ||
− | + | Рассмотрим, для чего предназначены компиляторы vbsp.exe, vvis.exe, vrad.exe: | |
− | + | '''BSP'''. Основная его задача состоит из конвертирования "сырой" геометрии VMF в понятный движку формат Binary Space Partition. | |
− | + | ||
− | *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]] |
Текущая версия на 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 как правило самый медленный из этих трех компиляторов из-за очень большого числа расчетов, которые он должен выполнить.