Содержание курса
1. Прежде чем появится первый пиксель
5 уроков
30
11
1м
0
Закрытый
1.1
Включаем компьютер: от POST до рабочего стола
↗
18
3
1м 36с
0
Закрытый
1.2
Драйвер видеокарты: невидимый переводчик
↗
3
2
-
0
Закрытый
1.3
Графические API: WebGPU, OpenGL, DirectX, Vulkan, Metal
↗
3
2
-
0
Закрытый
1.4
CPU и GPU: два игрока, одна команда
↗
3
2
-
0
Закрытый
1.5
Командный буфер и очередь команд: как CPU разговаривает с GPU
↗
3
2
-
0
2. GPU изнутри - знакомство с машиной
5 уроков
14
11
0м
0
Закрытый
2.1
Почему GPU не просто "мощная видеокарта"
↗
3
3
-
0
Закрытый
2.2
Шейдерные ядра: тысячи маленьких против десятков больших
↗
3
3
-
0
Закрытый
2.3
VRAM: память видеокарты и как данные в неё попадают
↗
3
2
-
0
Закрытый
2.4
Терафлопсы, bandwidth, latency: что реально важно
↗
3
2
-
0
Закрытый
2.5
Варп, волна, поток: как GPU выполняет задачи параллельно
↗
2
1
-
0
3. Данные на старте - буферы и ресурсы
5 уроков
9
4
0м
0
Закрытый
3.1
Что такое буфер и зачем он нужен
↗
2
1
-
0
Закрытый
3.2
Vertex Buffer и Index Buffer: геометрия в памяти GPU
↗
2
2
-
0
Закрытый
3.3
Uniform Buffer и Constant Buffer: данные для шейдеров
↗
2
1
-
0
Закрытый
3.4
Текстуры как ресурс: форматы, мипмапы, загрузка
↗
2
0
-
0
Закрытый
3.5
Binding и дескрипторы: как шейдер находит свои данные
↗
1
0
-
0
4. Вход в пайплайн - Input Assembler
4 урока
4
0
0м
0
Закрытый
4.1
Input Assembler: первая остановка конвейера
↗
1
0
-
0
Закрытый
4.2
Примитивы: точки, линии и почему треугольник король
↗
1
0
-
0
Закрытый
4.3
Индексированная геометрия: зачем дублировать вершины
↗
1
0
-
0
Закрытый
4.4
Instancing: тысячи объектов за один вызов
↗
1
0
-
0
5. Пространства и системы координат
6 уроков
6
0
0м
0
Закрытый
5.1
Зачем вообще нужны разные пространства
↗
1
0
-
0
Закрытый
5.2
Object Space и World Space: объект и мир
↗
1
0
-
0
Закрытый
5.3
View Space и Clip Space: камера и усечённая пирамида
↗
1
0
-
0
Закрытый
5.4
NDC и Screen Space: финальное приземление
↗
1
0
-
0
Закрытый
5.5
MVP: три матрицы, один смысл
↗
1
0
-
0
Закрытый
5.6
Tangent Space: пространство поверхности
↗
1
0
-
0
6. Vertex Shader
5 уроков
5
0
0м
0
Закрытый
6.1
Что такое шейдер и что значит "программируемая стадия"
↗
1
0
-
0
Закрытый
6.2
Атрибуты вершины: position, normal, UV, tangent, color
↗
1
0
-
0
Закрытый
6.3
Что Vertex Shader получает и что обязан вернуть
↗
1
0
-
0
Закрытый
6.4
Skinning: анимация скелета на GPU
↗
1
0
-
0
Закрытый
6.5
Vertex Animation и Displacement: двигаем геометрию в шейдере
↗
1
0
-
0
7. Между вершинами - фиксированные и опциональные стадии
6 уроков
6
0
0м
0
Закрытый
7.1
Tessellation: зачем делить геометрию на GPU
↗
1
0
-
0
Закрытый
7.2
Hull Shader и Tessellator: контроль над разбиением
↗
1
0
-
0
Закрытый
7.3
Domain Shader: новые вершины в деле
↗
1
0
-
0
Закрытый
7.4
Geometry Shader: что умеет и почему медленный
↗
1
0
-
0
Закрытый
7.5
Clipping: отсечение за пределами видимости
↗
1
0
-
0
Закрытый
7.6
Perspective Divide: последний шаг перед растеризацией
↗
1
0
-
0
8. Растеризация
4 урока
4
0
0м
0
Закрытый
8.1
Растеризация: фиксированная стадия которую нельзя программироват
↗
1
0
-
0
Закрытый
8.2
Rasterization Rules: почему пиксель на краю считается именно так
↗
1
0
-
0
Закрытый
8.3
Интерполяция атрибутов: как данные вершин размазываются по треуг
↗
1
0
-
0
Закрытый
8.4
Multisampling и MSAA: сглаживание на стадии растеризации
↗
1
0
-
0
9. Fragment и Pixel Shader
5 уроков
5
0
0м
0
Закрытый
9.1
Фрагмент против пикселя: важное различие
↗
1
0
-
0
Закрытый
9.2
Что фрагментный шейдер получает и что возвращает
↗
1
0
-
0
Закрытый
9.3
Семплирование текстур: как шейдер читает картинку
↗
1
0
-
0
Закрытый
9.4
Освещение в шейдере: Phong, PBR - что где считается
↗
1
0
-
0
Закрытый
9.5
Discard: выбрасываем фрагмент и почему это дорого
↗
1
0
-
0
10. Тесты и слияние - Output Merger
5 уроков
5
0
0м
0
Закрытый
10.1
Output Merger: последний контроль перед кадром
↗
1
0
-
0
Закрытый
10.2
Depth Test и Z-buffer: кто ближе тот и виден
↗
1
0
-
0
Закрытый
10.3
Stencil Test: маска для пикселей
↗
1
0
-
0
Закрытый
10.4
Alpha Blending: прозрачность и порядок рисования
↗
1
0
-
0
Закрытый
10.5
Early-Z: когда GPU оптимизирует тесты до шейдера
↗
1
0
-
0
11. Артефакты и проблемы
6 уроков
6
0
0м
0
Закрытый
11.1
Z-fighting: когда поверхности не могут договориться
↗
1
0
-
0
Закрытый
11.2
Aliasing и его виды: лесенки везде
↗
1
0
-
0
Закрытый
11.3
Texture Bleeding и Moire: артефакты текстур
↗
1
0
-
0
Закрытый
11.4
Shadow Acne и Peter Panning: проблемы теней
↗
1
0
-
0
Закрытый
11.5
Overdraw: невидимая работа которая всё тормозит
↗
1
0
-
0
Закрытый
11.6
Pop-in и LOD артефакты: когда детализация переключается заметно
↗
1
0
-
0
12. Техники и алгоритмы - словарь графики
11 уроков
11
0
0м
0
Закрытый
12.1
Frustum Culling: отбрасываем то что не в камере
↗
1
0
-
0
Закрытый
12.2
Backface Culling: обратная сторона не нужна
↗
1
0
-
0
Закрытый
12.3
Occlusion Culling: скрытое не рисуем
↗
1
0
-
0
Закрытый
12.4
LOD: уровни детализации и как они переключаются
↗
1
0
-
0
Закрытый
12.5
Shadow Mapping: как рождаются тени
↗
1
0
-
0
Закрытый
12.6
Normal Mapping, Parallax, POM: имитация объёма без геометрии
↗
1
0
-
0
Закрытый
12.7
Forward Rendering: классический подход
↗
1
0
-
0
Закрытый
12.8
Deferred Rendering: откладываем освещение
↗
1
0
-
0
Закрытый
12.9
Post-processing стек: что происходит после основного рендера
↗
1
0
-
0
Закрытый
12.10
Compute Shader: отдельный пайплайн вне растеризации
↗
1
0
-
0
Закрытый
12.11
Ray Tracing Pipeline: другой способ думать о свете
↗
1
0
-
0
13. Кадр собран - от буфера до фотона
4 урока
4
0
0м
0
Закрытый
13.1
Framebuffer и Render Target: куда рисует GPU
↗
1
0
-
0
Закрытый
13.2
MRT: несколько render target одновременно
↗
1
0
-
0
Закрытый
13.3
Swap Chain: очередь готовых кадров
↗
1
0
-
0
Закрытый
13.4
Весь путь целиком: от draw call до фотона из монитора
↗
1
0
-
0