Stage 2: Отрисовка секторов
Порталы 1D: соединяем сектора
Чтобы реализовать идею о порталах, начнем с самого простого ограничения области видимости портала — одномерного интервала по оси X экрана. Когда отрисовщик встречает портал, он запоминает его левую и правую границы, переходит в соседний сектор и рисует его только внутри этого интервала.
2.5D Renderer
2D Renderer
Управление камерой WASD
Первая демонстрация показывает рекурсивный обход целиком по секторам: за один шаг подготавливаются и рисуются стены, пол и потолок очередного сектора.
2.5D Renderer
2D Renderer
Во второй демонстрации тот же алгоритм разбит на более мелкие шаги.
Отдельно рисуется каждый фрагмент пола, потолка и стены, поэтому порядок заполнения экрана виден подробнее.
2.5D Renderer
2D Renderer
Такое отсечение уже не позволяет соседнему сектору выйти за боковые границы портала, но пока не учитывает его верхнюю и нижнюю границы. Поэтому геометрия за порталами с разной высотой все еще может перекрывать область портала.
Реализация шага на github: Анимация 1 ; Анимация 2