Загрузил lerkajudo

Лекция 1: Введение в компьютерную графику

Лекция 1. Введение в мир компьютерной графики.
20.02.25
Пиксель - минимальная единица изображения, крошечная точка с
определенным цветом, определяемым комбинацией RGB.
Разрешение экрана - количество ячеек по вертикали и горизонтали.
Чем выше разрешение, тем больше пикселей на экране и тем выше качество
изображения.
Растровая графика
Это способ представления изображений в виде прямоугольной сетки
пикселей (точек), каждая из которых имеет определённый цвет. Этот тип
графики широко используется для фотографий и сложных изображений с
множеством цветовых оттенков и деталей.
Плюсы и минусы





Высокая детализация
Реалистичность
Проблемы с масштабированием
Большой размер файла
Сложность редактирования
Векторная графика
Векторы - математический объект, описывающий не просто точку в
пространстве, а направление и величину.
Векторы обладают динамическими свойствами, что делает их
незаменимыми при работе с трехмерными сценами.
Векторная графика - изображения, сформированные множеством
точек, объединенных математическими соотношениями. Каждый объект визуализация математической функции.
Векторная графика - тип компьютерной графики, где изображения
создаются с использованием математических формул и геометрических
примитивов, таких как точки, линии, кривые и многоугольники. Векторная
графика не зависит от разрешения.
Особенности графики

Математические формулы - изображения описываются с
помощью формул, что позволяет сохранять их качество при любом
изменении размера

Бесконечное масштабирование - изображения можно
увеличить или уменьшить без потери качества, так как не из пикселей
состоят

Малый размер файла - векторные файлы занимают
меньше места, так как содержат только информацию о формах и их
расположении
Плюсы и минусы
 Гибкость масштабирования
 Легкость редактирования
 Малый размер файла
 Ограниченная детализация
 Сложность создания
 Совместимость
Области применения

Игровая индустрия

Киноиндустрия

Виртуальная и дополненная реальность

Наука и инженерия

Медицина

Графический и веб-дизайн
Графический конвейер
Графический конвейер - последовательность этапов, через которые
проходят данные при рендеринге 3д-графики на экране. Превращает
трехмерные модели в двумерное изображение.
Обработка вершин - тесселяция - обработка геометрии - растеризация
- обработка фрагментов – смешивание
Этапы создания изображения
1. Обработка вершин - координаты вершин преобразуются из локальной
системы в мировую, затем в систему камеры и в экранную систему
координат
2. Тесселяция - сложные поверхности разбиваются на более мелкие
примитивы для повышения уровня детализации и улучшения
качества изображения
3. Обработка геометрии - обработка примитивов, таких как
треугольники и линии, с возможностью добавления или удаления
вершин для изменения геометрии
4. Растеризация - геометрические примитивы преобразуются в
фрагменты, или пиксели, с определением того, какие пиксели экрана
покрываются этими примитивами
5. Обработка фрагментов - вычисляется цвет каждого фрагмента,
применяются текстуры, освещение и другие эффекты, проводятся
тесты глубины и альфа-прозрачности.
6. Смешивание - фрагменты комбинируются с уже существующими
пикселями в буфере кадра для учета прозрачности и создания
финального изображения
ЛЕКЦИЯ 2. Координатные системы. Матричные
преобразования. Уровень детализации 20.03.25
Виды координатных систем:

локальная - объект определяется относительно своей
собственной оси. Оси могут быть произвольно ориентированы,
используется для описания формы и поведения объекта,
преобразования применяются к объекту.

мировая - все объекты сцены располагаются
относительно общего пространства. Глобальная ориентация для всех
объектов, объекты могут быть перемещены и размещены в сцене,
преобразования проводятся с помощью матриц трансформации.

видовая - для определения того, как сцена будет
отображаться на экране. Определяет положение и ориентацию
камеры. Поле зрения и соотношение сторон.

координаты отсечения - определяют, какие объекты или
части объектов видны в сцене и должны быть отрисованы.
Оптимизируют производительность. Определяет объем видимости.
Объекты за пределами объема не отображаются, что повышает
производительность.

экранная - сцена отображается на экране. Использует
пиксели для определения положения объектов. Преобразования
осуществляются через проекцию. Оси могут быть инвертированы.
Локальные координаты в мировые:
Pworld = Mworld * Plocal
P - координаты точки
M - матрица преобразования
Мировые координаты в вдовые:
Pview = Mview * Pworld
Учитывает положение и ориентацию камеры в сцене
Основные задачи видовой матрицы:

перемещение камеры

ориентация камеры

отношение объектов к камере
Координаты отсечения
Координаты отсечения - процесс, при котором определенные части
объектов, выходящие за пределы видимой области, отсекаются.
Объем отсечения:

левая плоскость

правая

нижняя

верхняя

ближняя

дальняя
Гомогенные (однородные) координаты - расширение обычных
координат (декартовых) для удобства работы с преобразованиями,
включая трансляцию, вращение, масштабирование.
Однородная координата - матрица-строка размерности 1х4.
[x y z] - декартовы координаты
w - действительное число, не равное 0
[wx wy wz w] - однородные координаты
[x y z 1] - декартовы координаты, точка
[x y z 0] - вектор
Обратный перевод вершин из однородных координат в декартовы
координаты осуществляется делением на последнюю компоненту.
Матричные преобразования - позволяют изменять положение,
масштаб и ориентацию объектов в трехмерном пространстве.
Матрица преобразований - математический инструмент, который
используется для преобразования координат точек в пространстве.
Позволяет выполнять трансляцию, масштабирование и вращение.
Типы матриц преобразования:

трансляции

масштабирования

вращения
Трансляция - процесс перемещения объекта в пространстве. Сдвиг
объекта на определенное значение по осям.
Чтобы применить трансляцию к точке, надо умножить матрицу
трансляции на вектор, представляющий точку в гомогенных координатах.
Масштабирование - изменяет размеры объекта. Равномерное или
неравномерное.
Чтобы применить масштабирование, надо умножить матрицу
масштабирования на вектор точки.
Вращение - изменяет ориентацию объекта вокруг заданной оси.
Вращение осуществляется с помощью угла и сои вращения.
Уровень детализации - метод, используемый в компьютерной
графике для управления сложностью моделей в зависимости от их
расстояния до камеры. Позволяет оптимизировать производительность игр,
снижая нагрузку на графический процессор.
Объекты, расположенные дальше от камеры, отображаются с
меньшей детализацией. А когда приближается к камере, игра
переключается на более детализированную версию модели. Достигается
путем создания нескольких версий одной и той же модели с разным
количеством полигонов.
Уровни детализации:

высокий - близко к камере, большое количество
полигонов и текстур, высокое разрешение

средний - среднее расстояние, меньше полигонов,
текстуры среднего разрешения

низкий - низкое качество отображения
Преимущества:

оптимизация производительности

экономия ресурсов

улучшение качества изображения

снижение времени загрузки
ЛЕКЦИЯ 3. Полигональное моделирование. Топология.
Графический конвейер. Шейдеры.
03.04.25
Полигон - плоскость, состоящая из нескольких точек в пространстве,
соединенных ребрами.
Полигон состоит из вершин (точек), ребер (линий, соединяющих
вершины), граней (плоских поверхностей, ограниченных ребрами).
Вершина - базовый элемент модели, представляющий собой точку в
пространстве. Объединяются между собой для формирования граней и
полигонов.
Ребро - линия, соединяющая две вершины. Формируют каркас модели
и определяют ее форму.
Грань - плоская поверхность, ограниченная несколькими ребрами.
Определяют видимую поверхность модели.
Меш - сетка, состоящая из вершин, ребер и граней, формирующая
трехмерный объект. Используются для создания различных типов
объектов.
Полигональное моделирование - позволяет смоделировать любой
объект и за счет соединения полигонов создает их них группы и формирует
нужный облик модели.
Low-poly - трехмерная модель с малым количеством полигонов.
Когда не требуется высокая детализация, нужна оперативность
High-poly - детализированные модели с большим количеством
полигонов. Высокая детализация и реалистичность.
Моделирование из бокса - по габаритам объекта создается бокс с
ребрами, перетаскивание вершин формируется основной облик, нарезаются
ребра и уточняется форма.
Сплайновое моделирование - наносятся слайны (линии) по основным
линиям объекта относительно чертежей с привязкой к точкам в
пространства.
Полигон за полигоном - создается полигон, из ребра которого с
зажатой клавишей shift вытягивается еще один полигон и тд.
Топология - раздел математики, который изучает непрерывность
форм. Расположение полигонов, создающее некоторый путь по
поверхности полигональной сетки.
Чем чище и правильная топология модели, тем легче контролировать
и предсказывать финальный результат.
Графический конвейер - последовательность этапов обработки
графики, которые выполняет видеокарта для превращения трехмерной
сцены в двухмерное изображение на экране.
В основе лежит идея поточного выполнения - данные передаются от
одного этапа к другому, последовательно обрабатываются и в конечном
итоге преобразуются в пиксели, отображаемые на экране.
Этапы конвейера:

обработка вершин - обработка каждой вершины, которые
хранят информацию о своей позиции в пространстве, нормали, цвете,
текстурных координатах и тд.
o
Операции: преобразование координат, перевод из
систем координат, интерполяция значений.
o
Подготавливает объект для рендеринга, переводя
его в нужную систему координат и обеспечивая корректное
отображение.

создание графических примитивов с помощью
ассемблера - сборка в примитивы (основные графические фигуры)
(треугольник, линии, точки)
o
Компьютеры работают с треугольниками, потому
что они удобны для обработки и позволяют строить сложные
формы.

отсечение - определяется, какие части объекта находятся
в пределах экра, а какие за его пределами и не должны
обрабатываться.
o
Операции: отбрасываются полигоны, которые за
камерой; обрезаются части, выходящие за границы
o
Ускоряет
рендеринг,
исключая
ненужные
вычисления для невидимых частей объекта.

растеризация - преобразование треугольников в пиксели
на экране.
o
Операции: определение, какие пиксели на экране
покрываются
треугольниками;
интерполяция
цветов,
текстурных координат и тд для каждого пикселя
o
Компьютеры работают с пикселями, а не с
треугольниками, поэтому нужно превратить примитивы в
конечное изображение.

обработка фрагментов - обработка каждого пикселя,
который прошел через растеризацию
o
Операции: наложение текстур, освещение,
применение шейдеров, тест глубины
o
Этап добавляет реалистичность изображению за
счет света, теней, текстур и др эффектов

вывод
изображения
обработанные
пиксели
записываются в фреймбуфер (хранится изображение перед выводом
на экран)
o
Операции: смешивание пикселей, финальный
рендеринг
o
Этап отвечает за финальную картинку, которую
увидит пользователь.
Шейдер - программа, предназначенная для использования
процессорами видеокарт. Используются для определения параметров
геометрических объектов или изображений, для изменения изображения.
Типы:
 вершинные - работают с вершинами. Определяют
положение в пространстве, применяют трансформацию. После
обработки, вершины отправляются на следующий этап
рендеринга.
 фрагментные - обработка каждого пикселя изображения.
Определяют цвет пикселей, их прозрачность. Наложение текстур,
моделирование освещение, теней. Принимает данные от
вершинного шейдера, применяет к ним цветовые вычисления
перед выводом на экран.
GLSL - специально разработанные язык для работы с шейдерами.
Типы данных: скалярные, векторные, матрицы, текстуры и сэмплеры
(для работы с текстурами в графическом рендеринге).
ЛЕКЦИЯ 4. Текстуры. Работа с тенями и освещением.
Сглаживание.
17.04.25
Текстуры - изображения или паттерны, которые накладываются на
поверхность 3д-объектов для придания им реалистичного внешнего вида.
Имитация материалов.
Чтобы добавить рельеф, то есть больше полигонов, можно
воспользоваться картой высот, или картой рельефа для реалистичного
рельефа.
Виды карт высот:
 bump map - иллюзия рельефа, без изменения геометрии
объекта
 parallax map - меняет положение отдельных участков
текстуры при отрисовке (параллакс - иллюзия движения объекта
относительно фона, которая видна при движении)
 displacement map - меняет геометрию объекта (смещение)
Виды текстур:

диффузные - цветовые текстуры, которые определяют
внешний вид поверхности объекта

спекулярные - определяют, как свет отражается от
поверхности объекта (блики, отражения)

карты нормалей - для создания иллюзий деталей и
рельефа на поверхности объекта (трещины, выпуклости)
o
цель нормали - контролировать, куда указывает
поверхность, чтобы когда свет отразится от поверхности, она
могла использовать нормаль
o
Сглаживание нормалей двух переходов. Программа
запекания.
o
Пиксель карты нормалей - вектор нормали,
указывающий направление, в которое смотрит поверхность в
этой точке. Компоненты от -1 до +1

бамп-мапы - добавляют мелкие детали и неровности на
поверхность объекта. Менее точны по сравнению с картами
нормалей. Для мелких текстурных деталей.

альфа-текстуры - для создания прозрачных и
полупрозрачных областей на объекте. Стекло, вода, дым
Карты освещения - позволяют управлять светом и тенями, создавая
атмосферу и глубину сцены.
 карты теней - способ моделирования теней в трехмерной
компьютерной графике.
 карты нормалей
 карты глобального освещения - учитывают прямое
освещение от источников, отражения света от поверхностей.
Реалистичное освещение сцен.
Сглаживание - технология, используемая для устранения эффектов
зубчатости и мерцания, возникающего на границах выводимых на экран
отдельных изображений.
Принцип сглаживания - использование возможности устройства
вывода для показа оттенков цвета, которым нарисована кривая.
Варианты:
 общее сглаживание отрисовкой излишне крупного не
сглаженного изображения с последующим уменьшением
разрешения
 специализированные
алгоритмы
сглаживания,
работающие на изображениях определенного типа.
Виды алиасинга:

геометрический - наклонные линии

подпиксельный - узкие объекты

субпиксельный - сближение узких объектов друг к другу

прозрачности - отображение множества мелких объектов

текстурный - рассмотрение текстур под углом

шейдерный - контрастное освещение
Виды сглаживаний:

SSAA

CSAA

TAA

FXAA

MLAA

SMAA

DLSS

MSAA
ЛЕКЦИЯ 5. Генеративное искусство.
15.05.25
Генеративное искусство
Генеративное искусство - это направление цифрового искусства, при
котором художественное произведение создается с использованием
автономных систем, способных самостоятельно принимать решения в
рамках заданных автором правил или алгоритмов
Особенность - художник не вручную создает детали, а разрабатывает
алгоритм, по которому автономно создается уникальный результат.
20 век - Раймон кено - комбинаторная поэзия.
Методы создания:

Фракталы
геометрические
фигуры,
которые
повторяются на разных масштабах и служат основой для создания
сложных изображений

L-систему - формальные грамматики, используемые для
моделирования роста растений

Компьютерная графика - использование математических
функций и алгоритмов для создания двухмерных и трехмерных
изображений
Алгоритм создания:

формулировка художественной идеи - концепция,
настроение, ограничения

разработка системы правил - набор правил, степень
случайности, контролируемости

подготовка пространства генерации - сцена, параметры
среды

инициализация переменных и условий - переменные,
начальные значения, диапазоны

генерация объектов по заданным правилам - итерации,
рекурсии, автоматов

финализация и визуализация - сохранение и настройка
результата

рефлексия и корректировка - оценка результата
Инструменты разработки:

processing

javascript, p5

DevArt

Glitch

p5 demos

Slack
Множество Мандельброта - множество точек с на комплексной
плоскости. Бесконечное увеличение
Генеративная музыка
Генеративная музыка - музыкальная последовательность, которая
теоретически должна играть очень долго, без участия человека, но на
основе заранее созданных или запрограммированных правил.
Принципы:

композиция должна постоянно меняться

не должна повторяться

должна длиться вечно