Реализация движка рейкастинга
Raycasting Engine Programming
pikumaЭтот курс научит вас создавать полноценный движок лучевого трассирования с нуля. Мы будем использовать алгоритм, похожий на тот, который использовался в Wolfenstein 3D. Итоговый проект будет написан на JavaScript и C. В нем будут реализованы движение игрока, вид карты в 2D, проекция стен в 3D, текстурированные стены, спрайты и другие техники оптимизации.
Этот курс будет разделен на две важные части:
- Первая часть курса использует JavaScript для изучения теории и математики, лежащих в основе алгоритма лучевого трассирования. JavaScript — это простой высокоуровневый скриптовый язык, который помогает нам не отвлекаться на детали реализации.
- Вторая часть курса использует язык программирования C для реализации скомпилированной версии нашего лучевого трассировщика, включая текстурированные стены и спрайты. Также на языке C мы обсудим важные аспекты оптимизации и производительности нашего кода.
Инструменты, которые вам понадобятся: Вам потребуется веб-браузер, поддерживающий JavaScript, и небольшой компилятор для C. Все эти инструменты кросс-платформенные, так что вы сможете следовать инструкциям на Windows, macOS или Linux!
Алгоритм лучевого трассирования Wolfenstein 3D, который мы будем изучать, в значительной степени основан на тригонометрии, поэтому убедитесь, что у вас под рукой есть ручка и бумага для лекций. Я постараюсь, чтобы мы рассмотрели и поняли каждую формулу, которую встретим на нашем пути!Материал на английском языке
https://pikuma.com/courses/raycasting-engine-tutorial-algorithm-javascript