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

Функция прорисовки сегмента вызывается только в том случае, если хотя-бы малая часть сегмента попадает в область обзора. Для проверки граничных условий используется глобальная переменная LimitVisualAngle, которая определяет максимальный угол для границы объема просмотра, и зависит от размера объема просмотра, т.е. от размера экрана (изменяется клавишами ‘+’ и Угол обзора сегмента п - это угол, противолежащий стороне сегмента. Если угол одной из вершин сегмента относительно вектора просмотра игрока превышает по абсолютному значению граничный угол LimitVisualAngle, то данная вершина должна отсекаться. Прорисовка сегментов стен осуществляется одной из двух функций:

-    DrawMonolitWall - для монолитных (цельных стен);

-    DrawOtherWall - для других случаев.

Отличаются эти две функции прежде всего принципом организации алгоритма удаления скрытых поверхностей. В функции DrawMonolitWall прорисовывается сегмент стены, который может представлять препятствие для других, выводимых позднее сегментов. Это цельные, монолитные стены. Функция DrawOtherWall выводит чаще всего сегменты стен, имеющих нижние и/или верхние текстуры, т.е. представляют собой определенное взаимное повышение/понижение уровня полов/потолков соседних секторов. С конструктивной стороны эти две функции отличаются тем, что функция DrawMonolitWall обновляет таблицу AlreadyOnScreenWallPosX и сдвигает указатель на эту таблицу OffsPrqjAlreadyX, а функция DrawOtherWall таблицу не обновляет, а просто использует ее.

Для примера рассмотрим работу функции DrawOtherWall.

Новости
Авторы Hellblade: Senua’s Sacrifice удивлены количеству игроков на ПК
В октябре прошлого года студия Ninja Theory рассказала, что продажи Hellblade: Senua's Sacrifice оказались выше, чем ожидали сами разработчики, а уже через месяц они достигли полумиллиона копий.
Хождение по Аду в Agony отнимет у игроков 12 часов
Напомним, что Agony поступит в продажу на PC, PS4 и Xbox One 29 мая. После релиза игры авторы намерены заняться VR-режимом.