Digs - Персональная территория

Авторский проект Артема Глазкова
? 
        Версия для печати (цвет)  





Создание своих уровней, моделей и прочего

    Создание своих уровней достаточно сложная работа и требует не мало опыта. В данном разделе я не собираюсь описывать подробно каждый шаг. Вместо этого я опишу базовые понятия (чтобы было от чего оттолкнуться), а также проблемы, с которыми сам столкнулся в процессе обучения

    Редакторов уровней существует несколько. Одним из лучших считается Qoole. Им мы и будем пользоваться. Я привык к Qoole v2.07. Хотя на самом деле они все (я имею в виду версии) мало, чем отличаются. Долгое время я пользовался Qoole. Хотя он и содержит большое количество глюков, я все же при описании буду ссылаться на него.

    Что понимается под уровнем? На самом деле, уровень строится немного не так, как мы его видим в готовом виде. Уровень состоит из брашей, к которым могут быть применены некоторые функции и объектов. Под брашем понимает выпуклый многогранник с натянутой на него текстурой (текстурами); при этом текстуры натянуты на внешнюю сторону многогранника. Т.е. для создания простой квадратной комнаты с полом и потолком нам потребуется шесть брашей: пол, потолок и по одному на каждую стену. В конечном же варианте, когда уровень будет собран, останутся только те грани, которые могут быть реально видны из этой комнаты. Остальные будут отсечены компилятором.

    Для сборки уровня предназначены три программы: qbsp.exe, light.exe и vis.exe.

    QBSP.EXE: на вход программе подается файл проекта с расширением map. Создается bsp-дерево и помещается в файл с расширением bsp. Туда же помещается информация об объектах. В отчете могут быть возвращены ошибки.

    LIGHT.EXE производит расчет освещения на уровне. На вход подается только имя .bsp файла. Просчет освещения бывает обычный и улучшенный. В последнем случае нужно в командной строке добавить ключ -extra.

    VIS.EXE производит расчет PVS-структуры. При построении BSP-дерева, карта разбивается на секторы, и вся отрисовка производится секторами. PVS это такая структура, которая для каждого сектора определяет список потенциально видимых из него секторов. Это позволяет намного быстрее отрисовывать сцену, отбрасывая секторы, которые не находятся в PVS-списке сектора наблюдателя, а также оптимизирует вывод сущностей, ускоряет функцию проверки видимости предметов (например, проверить видит ли монстр игрока). Еще одной функцией PVS-структуры является правильный расчет слышимости звуков. К примеру, в текущем секторе будет слышан звук ветра в том случае, если текущий сектор содержит одну из граней с текстурой неба, либо такая грань имеется в секторе, находящемся в PVS-списке секторов для текущего сектора.

    Первый этап компиляция. Здесь строится bsp-дерево уровня, а также в файле сохраняется информация об объектах. О том, что такое bsp поговорим отдельно. Компиляция. Для начала нужно знать, что такое MAP-файл. Данный файл содержит описание уровня ввиде специальных структур. Сам Qoole работает с собственным форматом файлов (qle). При компиляции уровня файл .qle конвертируется в .map и компилируется именно последний. После компиляции мы получаем файл с расширением .bsp. Оставшиеся две утилиты работают непосредственно с последним файлом, просто изменяя его содержимое. Конечно, Qoole может работать и с map файлами, но они не удобны, хотя бы потому, что не имеют возможности группировать объекты.

© 2005-16, Powered By Digs (Написать письмо, vk)