Чему вы научитесь на курсе
Академия Вектозавров – это школа математики для программистов и разработчиков игр. Вы получите основы линейной алгебры и изучите стандартные алгоритмы трёхмерной графики.
Инновационный подход подачи материала
Из-за объёма и особенностей материала мы пересмотрели подход к обучению. Мы использовали язык, понятный каждому — анимация.
3D графика с нуля
Вы реализуете все фундаментальные кирпичики: проекция 3D-фигур на двумерную плоскость, управление камерой, физический движок и анимации.
Вы напишете свой Minecraft
Мы уверены: изучение математики должно сопровождаться пояснениями, зачем нужна каждая тема. Поэтому в самом начале мы поставим перед собой цель – написать свой трёхмерный движок и реализовать на нём игру Minecraft (используя C++ и SFML).
Смотрите промо-ролик:
Программа обучения:
Векторы и базис
- Векторы, линейные комбинации, базис
- Переход к новому базису
- Линейные преобразования, масштабирования и повороты
- Скалярное произведение
- Векторное произведение
Основы линейной алгебры
- Определение матрицы
- Операции с матрицами
- Матрица как линейное преобразование
- Реализация классов «Вектор» и «Матрица»
Основы 3D графики
- Как устроена 3D графика
- Проекция 3D фигур на плоскость
- Матрица проекции
- Матрица экранного пространства
- Мировая система координат
- Матрицы вращения, перемещения, масштабирования
- Реализация 3D графики
Нормали и освещение
- Вектор нормали и простое освещение
- Как хранятся 3D объекты, загрузка .obj файлов
- Аналог Z-буфера – алгоритм художника и его проблемы
- Реализация загрузки .obj файлов и алгоритма художника
Камера и клиппинг
- Переход в систему координат камеры
- Плоскости отсечения, клиппинг
- Ray casting
- Вращение и перемещение камеры
Физика движка
- Скорость и ускорение
- Реализация скорости и ускорения
- Обнаружение коллизий, алгоритм GJK
- Реализация алгоритма GJK
- Обработка коллизий, алгоритм EPA
- Реализация алгоритма EPA
Анимация
- Линейная анимация
- Безье и bounce анимация
- Анимация перемещения, поворота, масштабирования
Реализация Minecraft
- Кубический мир
- Управление персонажем
- Механика: ломать и ставить блоки
Как работает Multiplayer в играх
- Сетевая модель OSI
- Основные принципы сетевого взаимодействия
- UDP соединение и UDP сокет
- Сервер и клиент
- Реализация мультиплеера