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