Растровая графика представлена в виде сетки пикселей. Каждый пиксель имеет определённый цвет, который кодируется числом.
Преимущества: Высокая детализация
Недостатки: Потеря качества при масштабировании, большие размеры файлов
Применение: фото, вебдизайн, цифровое искусство

Векторная графика описывается математическими формулами: линиями, кривыми, фигурами и их свойствами (цвет, толщина, заливка). Она не зависит от разрешения.

Недостатки: сложно создавать реалистичные изображения, ограниченность работы с градиентами и полутонами
Преимущества: масштабируемость без потери качества, комактность - малый размер файла.
Применение: логотипы, чертежи и схемы, инфографика

Трёхмерная графика представляет объекты в трёх измерениях. Объекты создаются как модели, состоящие из вершин, рёбер и граней, которые могут быть текстурированы и освещены.
Преимущества: возможность создания сложных сцен и реалистичных эффектов
Недостатки: Высокие требования к вычислительным ресурсам, сложность разработки.
Применение: компьютерные игры и симуляторы, архитектурная визуализация, фильмы и анимация, научная визуализация.


### Области применения компьютерной графики

1. Игры. Основа игровой индустрии.
2. CAD Computer-Aided Design. Используются для проектирования зданий, машин...
3. Визуализация данных
4. VR/AR
5. Медицина
6. Научная визуализация

### Понятие графического конвейера (pipeline)

Графический конвейер - последовательность этапов, через которые проходит графическая информация для её отображения на экране. Этот процесс начинается с загрузки данных и заканчивается выводом готового изображения на экран. Графический конвейер реализуется на уровне GPU, что позволяет обрабатывать миллионы операций в секунду.

Основные этапы:
1. Ввод данных. На этом этапе загружаются исходные данные, необходимые для создания изображения: вершины, текстуры, шейдеры.
2. Геометрические преобразования. Выполняются математические операции для изменения положения, размера или ориентации объектов.
3. Проекция. 3Д координаты объектов преобразуются в 2Д координаты экрана. (Параллельная, перспективная проекции)
4. Растеризация. Геометрические примитивы преобразуются в пиксели. Каждый пиксель получает начальные атрибуты, такие как цвет, глубина и текстурные координаты.
5. Затенение. Вычисляется окончательный цвет каждого пикселя с учётом освещения, текстур и других эффектов. (шейдеры, вершинные шейдеры, фрагметные шейдеры).
6. Вывод на экран.

# Матешка
## Операции с векторами

Скалярное произведение векторов применяется для вычисления углов между объектами и определения видимости объектов (например, освещение)

Векторное произведение применяется для нахождения нормалей к поверхностям

Нормализация (приведение длины вектора к единице) используется для работы с направлениями.

## Матрицы

Матрица это таблица чисел, которая используется для выполнения линейных преобразований. В компьютерной графике матрицы применяются для преобразования координат объектов (перенос, масштабирование, поворот).

Для 2д графики применяется матрица 3x3, для 3д - 4х4.

### Операции с матрицами

Умножение матриц применяется для оптимизации вычислений в графическом конвейере.

Поворот - операция вращения объекта вокруг одной из осей координат. Угол поворота измеряется в радианах. Поворот объекта в пространстве осуществляется с помощью матриц, которые зависят от оси вращения и угла поворота

Объединение преобразований - умножение матриц последовательно: перемещение, масштабирование, поворот.

### Аффинные преобразования

Аффинные преобразования - это класс геометрических преобразований, которые сохраняют прямолинейность и параллельность. Однако расстояния и углы могут изменяться.

## Проекции: параллельная и перспективная

Параллельная проекция не деформирует объекты и параллельные линии остаются параллельными даже при проекции.

Перспективная проекция демонстрирует объекты в виде, соответствующем реальному зрению, объекты находящиеся ближе масштабируются чтобы казаться больше, дальше - меньше.

## Системы координат: локальная, мировая, экранная

Локальная система координат. Каждый объект имеет свою собственную систему координат, которая называется локальной. Она используется для описания геометрии объекта относительно его центра или начала координат. *Все вершины объекта хранятся в этой системе координат.*

Мировая система координат. Является промежуточным этапом перед проекцией.

Экранная система координат. Используется для отображения объектов на экране. Это двумерная система координат, в которой каждая точка соответствует пикселю на экране.