Глава IX. Небо.
§ 9.2 Правильное небо
В данной статье мы рассмотрим способ создания правильного и наиболее грамотного неба для Half-Life (CS) карт. Сложное (правильное) небо обладает рядом преимуществ перед простым небом, построенным коробкой вокруг карты. Главные из них - это меньшее время компиляции и более высокий FPS на карте.
Для создания правильного неба используется все те же
SKY-браши, т.е. обычные браши, окрашенные со всех сторон текстурой неба
SKY. Давайте рассмотрим создание правильного неба для карты, чья форма немного более сложная, нежели простой прямоугольник (см. рис. ниже).
Небо начнем создавать с боковых сторон. Будем строить SKY-браши по периметру карты (см. рис. ниже).
Готово (см. рис. ниже). Высота SKY-брашей выбирается произвольно. Она может быть и 384, и 512, и больше юнитов, но для нашего же удобства она должна быть одинакова для всех боковых SKY-брашей. Также желательно, чтобы игроки не бились об небо головами :)
Обратите внимание, что отверстие в центре карты также необходимо закрыть SKY-брашем СНИЗУ (см. рис. ниже), который по длине и ширине точно соответствует отверстию. Мы же помним, что небо должно полностью ограждать карту от "внешнего вакуума". Вспомните наши разговоры про плотно прилегающую к краям крышку сковородки в прошлой статье :) Дырок и щелей быть не должно, иначе возникнет ошибка
LEAK.
Отверстие в центре закрыли. Теперь необходимо закрыть верх карты. Делаем это при помощи двух довольно больших SKY-брашей (см. рис. ниже).
На этом можно было бы остановиться, т.к. небо само по себе уже готово, но давайте еще ограничим передвижение игрока, чтобы он не мог упасть в центральное отверстие. Для этого на месте отверстия построим
CLIP-браш, т.е. обычный браш, окрашенный со всех сторон спец. текстурой
CLIP. Такие браши в игре невидимы, однако игрок сквозь них пройти не может и соответственно не может упасть в дыру (см. рис. ниже).
CLIP-браш по размерам равен отверстию, он начинается от верхних сторон бортиков и продолжается до самого неба, но не "входит" в него.
Теперь остается разместить источник света
light_environment внутри карты, т.е. под колпаком из SKY-брашей, а также указать название картинки неба в меню "
Map\Map properties..." в параметре
environment map. Как правильно указывать название неба, мы рассказали в прошлой статье про простое небо коробкой.
И вот результат (см. рис. ниже). Как видите, картинки неба накладываются не на изготовленные SKY-браши, а на некий большой удаленный (воображаемый) куб, который для всех карт одинаков.
Преимущества сложного неба над простым
Мы провели простой эксперимент: создали на этой же карте вместо правильного неба - простое (коробкой) и затем сравнили log-файлы, в которые записывается ход выполнения компиляции, а также подробная статистика BSP-файла (если использовать параметр -chart). Вот какие результаты мы получили (см. рис. ниже).
Кратко поясним, что означают эти параметры.
Время компиляции - тут все ясно, компиляция карты с правильным небом проходит в два раза быстрее .... внушаитъ :)
Просчет освещения - на карте с небом-коробкой дополнительно просчитываются все поверхности снаружи карты, что приводит к существенному увеличению времени компиляции даже на небольших картах.
Clipnodes - количество плоскостей, ограничивающих перемещение игрока. Не стоит путать их с помещенным CLIP-брашем, это не совсем тоже самое, хотя CLIP-браши также добавляют clipnodes в карту. По количеству clipnodes можно судить о проделанной компилятором HLVIS работы. Чем меньше clipnodes, тем меньше работы было у HLVIS.
Faces - количество поверхностей. Чем их меньше, тем меньше работы компилятору HLRAD, просчитывающему освещение.
Patches - количество патчей. При компиляции карты все видимые поверхности объектов разбиваются на патчи определенного размера. По умолчанию размер патча составляет 64x64 юнита, однако его можно изменить параметром -chop. Чем меньше патчей, тем лучше. Если патчей слишком много (более 65535), то возникнет ошибка MAX_PATCHES. Поэтому необходимо следить за количеством патчей и, если потребуется, уменьшить их.
Lightdata - параметр, показывающий суммарный объем информации об освещении карты.
Visdata - параметр, показывающий суммарный объем визуальной информации карты.
Как видите, время сэкономленное на построении простого неба, вместо сложного, расходуется при компиляции. Отсюда правило :) - для больших карт стройте всегда правильное небо, а для маленьких можно обойтись небом-коробкой, но только не забудьте оптимизировать карту, как это написано в прошлой статье.
sky_advanced.zip [29Кб] - в архиве карта-пример в форматах BSP и RMF.
Глава IX. Небо.
К оглавлению Учебника
©
http://cs-mapper.by.ru/