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

Обратите вниимание, что если в оставшемся месте невозможно более найти сегмент, который может служить линией раздела, то дальнейшее деление ие требуется, и это оставшееся место является субсектором ( или “листом” на рекурсивном дереве).

Если линия раздела пересекает любую линию (LINEDEF)_ не через вершины этой линии, то она делит эту линию на два сегмента (или на четыре, если линия двухсторонняя).

После того, как выбраны линии раздела и созданы узлы, необходимо их строго упорядочить, т.е. присвоить им строго определенные номера. “Дерево” создается от верху шки вниз таким образом:

- после первого деления осуществляется деление левой ветви, затем ее левой ветви и так далее до тех пор, пока самая последняя левая ветвь в делении нуждаться не будет (она является субсектором). Потом необходимо подняться на одну ветвь “вверх” и поделить правую ветвь, затем его левую до тех пор, пока не останется ни одной неподеленной ветвн. Таким образом, всегда в первую очередь обрабатываются левые ветвн дерева, а затем правые.

Заранее никогда нельзя знать, сколько получится узлов и субсекгоров. Их подсчет ведется в процессе деления, после чего “верху шке” дерева дается максимальный номер. Таким образом, в процессе “роста” дерева узлы и суб-сектора считаются or 0 и выше, а после того, как все создано (дерево достигло своего максимума), эти номера реверсируются. Например, если получиилось 725 узлов, то 725 узел станет 0-ым, а 0-ой станет 725.

А теперь, как бы подводя итог, рассмотрим на простом примере, как можно создать рекурсивное дерево:

1.    Создаем сегменты (SEGS) из всех линий (LINEDEFS). Здесь мы имеем 5 двухсторонних линий.

2.    Выбираем точку 0 и идем на запад (налево). Это первая линия раздела. Обратите внимание - пунктирной линией обозначено продолжение линии


Новости
Авторы проекта «1917» выпустили онлайн-игру об истории СССР
Разработчики рассказали о том, что пользователи их игры смогут принять участие в главных исторических событиях советского периода.
В God of War не будет сезонного пропуска
Креативный директор студии SIE Santa Monica Studio Кори Барлог заявил, что в новой части God of War не будет сезонного пропуска.