13.8. Quake

Продолжением линии Wolfensetin3d - DOOM является игра Quake, основными отличительными особенностями которой является полная трехмерность, 6 степеней свободы, великолепно сделанное освещение (освещенность плавно изменяется, около факелов светлее, в углах темнее, т. е. освещенность непрерывно распределена вдоль поверхностей).

Еще одной отличительной особенностью Quake является использование вместо спрайтов трехмерных объектов (Alias models).

Ряд идей, использованных в Quake, очень напоминает то, что было в игре DOOM, но вместе с тем появились и принципиально новые подходы.

Рассмотрим в общих чертах работу графического ядра Quake.

Все разделено на две группы:

статический (неподвижный) мир;

все остальное (движущиеся объекты, включая игроков, противников, двери, платформы, оружие, боеприпасы и т. д.).

Статический мир построен из большого (до 10 Кбайт) количества текстурируе-мых граней с произвольным количеством источников света. На основе данного набора граней строится единое BSP-дерево, разбивающее все пространство на набор выпуклых многогранников, являющихся листьями этого дерева (полная аналогия с разбиением плоского мира в игре DOOM на набор выпуклых SubSector, только здесь все происходит в пространстве). Построенное дерево можно легко обходить в любом порядке. При этом для каждого листа дерева задаются ограничивающий его параллелепипед и набор поверхностей (под поверхностью - surface - понимается текстурированная грань с наложенной на нее освещенностью).

Принципиально новым является использование PVS - для каждого листа дерева на этапе препроцессирования строится список всех тех листьев, которые могут быть видны из данного листа.

13. Элементы виртуальной реальности Таким образом, обходя дерево в порядке iront-to-back, мы сперва попадаем в лист, содержащий наблюдателя внутри себя, получаем список всех видимых листьев и сортируем их при помощи BSP-дерева.

Структура PVS не только сильно ускоряет рендеринг, но и выполняет еще функции структуры BLOCKMAP в игре DOOM, определяя объекты, которые могут видеть игрока и которые может видеть игрок.


⇐ Предыдущая| |Следующая ⇒