Stage 2: Отрисовка секторов
Порталы 2D: многоугольник
Обрезка в виде трапеции хорошо работает для одного портала, однако цепочка порталов может образовать область сложнее одной трапеции. Чтобы корректно сохранить пересечение всех пройденных окон, потребуется представлять область видимости произвольным многоугольником.
Для пересечения выпуклых многоугольников используем алгоритм Сазерленда—Ходжмана. Он по очереди обрезает исходный многоугольник каждой стороной окна и передает получившиеся вершины на следующий шаг. В результате каждый сектор рисуется только через реально видимую часть всей цепочки порталов, включая наклонные границы и окна более сложной формы.
2.5D Renderer
2D Renderer
Управление камерой WASD