Лекция 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 Множество Мандельброта - множество точек с на комплексной плоскости. Бесконечное увеличение Генеративная музыка Генеративная музыка - музыкальная последовательность, которая теоретически должна играть очень долго, без участия человека, но на основе заранее созданных или запрограммированных правил. Принципы: композиция должна постоянно меняться не должна повторяться должна длиться вечно