Я учусь в магистратуре по графическому программированию, поэтому могу пролить свет на эту тему.
Во-первых, если вас интересует программирование на движке и графике, я настоятельно рекомендую прочитать 2 книги:
- Архитектура игрового движка Джейсона Грегори
- Рендеринг в реальном времени. Томас Акенин-Меллер (и др.)
Эти книги в значительной степени расскажут вам все, что вам нужно знать, чтобы понять, как работают игровые движки, хотя научиться программировать их немного сложнее!
Было бы эссе, чтобы попытаться обобщить весь игровой движок, поэтому вместо этого я дам вам полезные темы, которые вы можете изучить.
- Фиксированные и программируемые конвейеры
- Шейдеры (в основном вершинные и фрагментные шейдеры, большая часть освещения и постобработка выполняется в шейдерах)
- Растеризация (барицентрическая система координат, глубина и Z-буфер)
- Геометрия (точки, векторы, нормали и матрицы)
- Больше математики! (Однородные координаты, кватернионы, метод Эйлера)
Дополнительный совет: исчисление является корнем всей низкоуровневой графики, вам нужно знать, как сделать 5-кратные вложенные интегралы для моделирования освещения в реальном времени (хорошо, только если вы хотите моделировать каждый фотон!)
Этот материал поможет вам начать рендеринг. Книга «Архитектура игрового движка» познакомит вас с большей частью этого, а также со всем остальным (аудио движки, физика и т. Д.). Удачи!