Raycasting («бросание лучей») — техника, которая используется в видеоиграх для рендеринга трёхмерных сцен на двухмерный экран. ru.wikipedia.org vk.com В основе системы лежит идея испускать лучи из «глаз» наблюдателя (один луч на пиксель) и находить самый близкий объект, который блокирует путь распространения этого луча. ru.wikipedia.org
Процесс работы системы raycasting: lodev.org
- Карта представляет собой двухмерную квадратную сетку, каждый квадрат может быть либо 0 (нет стены), либо положительным значением (стена с определённым цветом или текстурой). lodev.org
- Для каждого столбца экрана (вертикальной полосы) отправляется луч, который начинается в месте расположения игрока и имеет направление, зависящее от направления взгляда игрока и координаты по оси X экрана. lodev.org
- Луч движется вперёд по двухмерной карте, пока не столкнётся с квадратом карты, который является стеной. lodev.org
- Если луч столкнулся со стеной, вычисляется расстояние от точки столкновения до игрока, и с помощью этого расстояния рассчитывается, какой высоты должна быть стена на экране: чем дальше стена, тем меньше она на экране, и чем ближе, тем выше она кажется. lodev.org
Raycasting чаще всего используется в шутерах от первого лица, где основная камера (персонаж) является источником луча, а луч отбрасывается для взаимодействия с другими объектами в игре, которые могут соприкасаться с лучом. blog.udemy.com