2.5D Renderer

Stage 1: Отрисовка стен

Проблема fish eye

Если построить несколько линий в ряд и использовать формулу из прошлой заметки, то можно обнаружить, что изображение будто проходит через линзу — получается немного выпуклым. Этот эффект называется эффектом рыбьего глаза.

2.5D Renderer

2D Renderer

Управление камерой WASD

Дело в том, что вычисление высоты не зависело от угла относительно камеры. Благо, решается эта проблема очень просто:

Исправленная проекция

Как это рассчитать

Рассчитаем относительный угол между направлением камеры и направлением на вершину:

Проекционное расстояние (с учётом угла обзора):

Реализация шага на github