Хонич А.
Как самому создать трехмерную игру
стр. 124

являются узлы рекурсивного дерева.

В этом пункте я попытаюсь популярно объяснить, что из себя представляет ресурс NODES и как с его помощью строится трехмерный лабиринт. Я не буду' приводить принцип формирования узлов по следующим причинам: во-первых - это очень сложный алгоритм, и тяжело прокомментированный код был бы трудно читаемым. Во-вторых - имеется очень много программ, которые это делают: программа “bsp.exe” формирует ресурсы NODES,SEGS и SSECTORS из набора LINEDEFS, SIDEDEFS и VERTEXES. (Параметром программы “bsp.exe” является wad файл со сформированной картой уровня. Карту уровня можно сформировать в любом редакторе уровня для DOOM’a, например, в DOOMCAD или в DCK. Выходом программы “bsp.exe” является новый файл “temp.wad” с вычисленными структурами NODES, SEGS и SSECTORS). Отличный редактор уровней для DOOM’a “vvaded.exe” умеет сам формировать ресурсы узлов.

Узлы представляют собой отделения в двоичном делении пространства (bi-naiy space partition, или BSP), которые делят уровень; они необходимы для определения, какие стены находятся на переднем плане, а какие являются невидимыми. Этот процесс известен как удаление скрытых поверхностей. Субсектора и сегменты - необходимые части структуры узлов. BSP дерево обычно используется в трехмерном пространстве, но в DOOM’e используется упрощенная, 2-мерная версия схемы.

Основной принцип состоит в том, чтобы делить карту уровня иа малые части до тех пор, пока каждая из этих малых частей не будет содержать только сегменты стены, которые не могут служить преградой (блокировать вид других стен) в этом месте. Эти малые неделимые части называются субсекторами. Каждый сегмент стены, относящийся к конкретному субсектору, представляет собой LINEDEF или ее часть. Этот сегмент относится к ресурсу SEGS. Это деление используется в алгоритме двоичного дерева в DOOM’e для быстрой прорисовки трехмерного лабиринта (рисование видимых поверхностей)

Деление на су бсектора производится в пределах сектора Одни субсектор не может принадлежать к двум и более секторам. Части уровня, которые находятся за пределами секторов, игнорируются.

Сегментами могут быть только LINEDEF или ее часть. Стороны созданного субсекгора, которые не являн’тся частью linedef, сегментами не будут (мнимые или воображаемые линии в пределах сектора).

Некоторые сектора ие требуют никакого деления. Для примера рассмотрим квадратный сектор, все стены которого строго ортогональны к полу. Таким образом, в любой точке зрения данного квадрата ни одна из четырех стен ие может блокировать вид любой другой стены. Таким образом, этот квадратный сектор целиком является субсектором.


Новости
Выход Fear the Wolves в раннем доступе в Steam отложили
Чернобыльская королевская битва Fear the Wolves от бывших авторов "Сталкера" должна была уже сегодня выйти в раннем доступе в Steam, но игра задержится - участники закрытого бета-теста выявили множество проблем, так что релиз решили отложить.
Похоже, авторы God of War уже приступили к работе над продолжением
В начале июня старший художник Sony Santa Monica Нейт Стивенс рассказал, что следующая часть God of War станет «масштабнее, лучше и продолжительнее», а команде предстоит поломать голову над тем, как бы превзойти самих себя в сиквеле.