Roadmap курса по графике
БАЗА: Компьютерная графика
Как работают пиксели, цвета и экраны (ссылка)
Что такое буферы (ссылка)
Координатные системы (ссылка)
- Мировая (World), локальная (Local), камера (View), экран (Clip, NDC, Screen)
- Матричные преобразования: Model, View, Projection
3D ГРАФИКА
Меши и геометрия
• Вершины, индексы, треугольники
• Атрибуты: позиция, нормали, UV-координаты, цвет
• Вершинные буферы, индексы, топологии
Нормали и тангенты
• Понятие нормали, зачем нужна
• Пер-вершинные, пер-пиксельные
• Tangent space — для нормал-маппинга
UV-развёртки
• Разворачивание моделей (UV mapping)
ТЕКСТУРЫ И МАТЕРИАЛЫ
Типы текстур
• Albedo, Normal Map, Roughness, Metallic, Emission
• Текстурные форматы: PNG, DDS, ETC, ASTC и т.д.
Сэмплинг
• Filtering: Point, Bilinear, Trilinear, Anisotropic
Материалы
• Lambert, Blinn-Phong, Cook-Torrance, PBR (Physically Based Rendering)
• Как материалы сочетаются с шейдерами
РЕНДЕРИНГ
Конвейер графики (Graphics Pipeline)
• Вершинный → растеризация → фрагментный шейдер → output
• Depth test, blending, culling, clipping
Шейдеры
• Vertex/Fragment/Geometry/Compute
• Передача uniforms, attributes, varyings
Deferred vs Forward Rendering
• Lighting pass, MRT (Multiple Render Targets)
Пост-обработка
• Bloom, HDR, Tone Mapping, SSAO, DoF
• Использование рендер-таргетов, Blit
НИЗКОУРОВНЕВЫЕ АПИ
OpenGL
• Даёт доступ к низкоуровневым операциям рендеринга
• Позволяет вручную контролировать весь pipeline
• Учишься работать с буферами, шейдерами, текстурами, камерами
DirectX / Vulkan
• позже, если захочешь понять ещё глубже
ДОПОЛНИТЕЛЬНО
GPU и драйверы
• Как команды поступают в GPU и обрабатываются
Ray Tracing и Path Tracing
• Базовые концепции трассировки лучей
Форматы 3D моделей
• Как хранятся вершины, материалы, анимация
Рекомендации по старту
• OpenGL (через C++ или Python/PyOpenGL) — научишься руками задавать всё, что Unity и движки скрывают.
• Шейдеры через GLSL или ShaderToy
• Рендеринг через LearnOpenGL.com — золотой ресурс
Книги
• Fundamentals of Computer Graphics
• Physically Based Rendering: From Theory to Implementation.