Текстуры. Композиты Лекция 11 Алексей Игнатенко. На прошлой лекции Удаление невидимых поверхностей Удаление нелицевых граней Алгоритм художника Двоичное.

Презентация:



Advertisements
Похожие презентации
Растеризация Текстуры Композиты. На лекции 4-е задание Задача растеризации Текстурирование Определение Текстурные отображения для сферы, тора, цилиндра.
Advertisements

Текстуры. Композиты Чепурнова Екатерина Graphics & Media Lab.
Прямые. Кривые. Поверхности Лекция 12. Алексей Игнатенко.
Фильтрация текстур. Пиксельные операции. Астана 2004 Лекция 11.
Освещение и текстурирование в OpenGL Астана 2004 Лекция 10.
OpenGL API Алексей Игнатенко (MSU Graphics & Media Lab) Алексей Игнатенко (MSU Graphics & Media Lab)
Графический конвейер Преобразования геометрии Александр Шубин.
{ OpenGL Лекция 3 ( ). float ambient[4] = {0.0, 0.0, 0.0, 1.0}; glLightModelfv(GL_LIGHT_MODEL_AMBIENT, ambient); // RGBA интенсивность всей сцены.
OpenGL Лекция 2.. Преобразование координат Преобразования координат.
Лекция 13 Метод трассировки лучей Астана Трассировка лучей через сферическую каплю воды Луч 7 -- луч Декарта [1637]
Лекция 8 25февраля 2003 г. (Астана) Видовые преобразования Закраска Гуро и Фонга Удаление невидимых линий и поверхностей.
OpenGL Лекция 3. Построение тени Проективные тени Объемные тени Карты теней Мягкие тени.
Излучательность. Трассировка лучей. Лекция 13. Алексей Игнатенко.
GPU vs. CPU 681 млн. транзисторов Тактовая частота 575Mhz * 768MB 1.8 Ghz памяти DDR4 ~650 млн. транзисторов Тактовая частота ~700Mhz 1GB 1.1 Ghz памяти.
Лекция 8 2 апреля 2002 г. Закраска Гуро и Фонга Удаление невидимых линий и поверхностей.
Геометрическое моделирование трехмерных объектов..
Текстура растровое изображение, накладываемое на поверхность полигона, из которых состоят 3D- модели, для придания ей цвета, окраски или иллюзии рельефа.
ТРЕХМЕРНАЯ ГРАФИКА Компьютерная графика. Геометрические примитивы.
Аффинные преобразования Графический конвейер Астана. Лекция 7.
GPU vs. CPU 302 млн. транзисторов Тактовая частота 550Mhz 1GB 850x2 MHz памяти 380 млн. транзисторов Тактовая частота 650Mhz 1GB 775x2 MHz памяти Тактовая.
Транксрипт:

Текстуры. Композиты Лекция 11 Алексей Игнатенко

На прошлой лекции Удаление невидимых поверхностей Удаление нелицевых граней Алгоритм художника Двоичное разбиение пространства Буфер глубины Модели освещения и отражения Локальные и глобальные модели Диффузное и зеркальное отражение Модель освещенности Фонга Интерполяционная закраска (при растеризации) Поддержка в OpenGL –glMaterial, glLight

На лекции Текстурирование Определение Виды текстурирования Отображение текстуры Фильтрация текстуры Композирование Определение Альфа-канал Операции композирования Ассоциативность Примеры

Текстурирование

Использование изображений для моделирования (отражающих) свойств поверхности

Отображение текстуры (Texture mapping) Способ сопоставления пикселя текстуры (текселя) пикселю примитива Фиксированное отображение Узор, определенный в 2D области, «наклеивается» на объект как кусок обоев и, фактически становится частью объектной базы данных. Т.е., когда объект перемещается, текстурный узор перемещается вместе с ним. View-dependent mapping Bump mapping...

Задачи текстурирования I Какой атрибут или параметр модулируется, чтобы получить желаемый эффект? II Как осуществляется отображение? Если текстура определена в 2D области, а объект существует в 3D пространстве, нам необходимо определить отображение между этими областями

Типы функций отражения Диффузное отражение матовый пластик, дерево и т.п. модель Ламберта Идеально зеркальное отражение зеркало модель отражения Зеркальное отражение блики на объекте модели Фонга и Блинна

Зеркальное отражение (модель Фонга)

Атрибуты (параметры) I r = k a *I a + I i (k d *(N.L) + k s *(R.V) α ) отражение от поверхности - surface color texture вектор нормали N - bump mapping коэффициенты k d, k s, - specular mapping падающий свет I i - environment mapping геометрия - displacement mapping прозрачность - transparency mapping

Цилиндр (1)

Цилиндр (2) P - точка нанесения текстуры Перевести P в параметрические координаты (s,t) s - угловая координата в радианах от оси Х t - координата высоты

Параметрическое уравнение для цилиндра

Параметрическое уравнение для сферы

Параметрическое уравнение для тора

Другие поверхности Параметрические (В-сплайн) поверхности Полигональные поверхности Неявно заданные поверхности

Бамп-мэппинг Бамп-мэппинг (bump mapping) призван создавать впечатление "шершавых" или бугристых поверхностей за счет модуляции попиксельных нормалей к поверхности Demo

Место в графическом процессе для каждого многоугольника модели { спроецировать на картинную плоскость для каждого пикселя проекции { вычислить цвет пикселя вычислить глубину (z) пикселя сравнить с хранимой в z-буфере если ближе, вывести в буфер кадра } z-буфер

Фильтрация текстур

Метод ближайшего соседа Билинейная фильтрация Мип-мэппинг Трилинейная фильтрация Анизотропная фильтрация

Ближайший сосед и билинейная фильтрация Ближайший соседБилинейная

Ближайший сосед и билинейная фильтрация(2) Выборка ближайшего текселя GL_NEAREST: Линейная комбинация 4-x соседних пикселей GL_LINEAR:

Фильтрация текстур: mip-mapping (1)

Фильтрация текстур: мипмэппинг (2) увеличение текстуры масштаб 1:1 уменьшение текстуры увеличение текстуры масштаб 1:1 уменьшение текстуры в 2 раз

Фильтрация текстур: мипмэппинг (3) 256x x64 216x16 4 Трилинейная фильтрация GL_LINEAR_MIPMAP_LINEAR

Анизотропная фильтрация Экран

Сравнение методов фильтрации Ближайший соседБилинейная ТрилинейнаяАнизотропная

Поддержка в OpenGL Стандарт OpenGL поддерживает диффузные текстуры и зеркальные текстуры (environment mapping) С помощью использования дополнительных расширений можно организовать бамп- мэппинг и др. Текстурная координата – атрибут вершины Текущая текстура – атрибут состояния

Композирование

Композирование: Определение Compositing n. : The combining of two or more separately prepared images into one, usually through pixel-by-pixel transparency (or alpha) computation, and sometimes with z comparison. Also, composit v.t. : to perform compositing; adj. : being composited; n. : the result of compositing. Смешение, Монтаж : Объединение двух или более независимо подготовленных изображений в одно изображение, обычно с помощью попиксельного вычисления полупрозрачности (альфа-канал), иногда с учетом глубины (z-координаты)

Пример 1

Пример 2

Простейший вариант композитинга Фон Передний план Фигуры переднего плана перекрывают фон Что происходит при растеризации?

Проблемный пиксель Наложение красного и синего треугольников. Каким будет цвет пиксела на границе?

Композитная операция Для каждого пикселя изображение определяем площадь, занимаемую растеризованной фигурой Часть площади обозначается как B new = (1- )B old + F B new = B old + F- B old ) Пиксель Фон Передний план

Альфа-канал Для выполнения композирования RGB изображений дополняется альфа-каналом RGB -> RGBA

Использование альфа- канала Варианты использования альфа-канала Площадь покрытия пикселя Прозрачность Затемнение...

Ассоциативность B new = (1- )B old + F B newnew = (1- )B new + G Формула позволяет получать изображение БЕЗ альфа-канала Фигуры накладываются на фон Что если мы хотим получить композиции двух изображений с альфа-каналом ?

Ассоциативность (2) B newnew = (1- )B new + G (B&F)&G = B&(F&G) H = F & G, H – RGB (1- )((1- B+ F)+ G = (1- )B+ H

Ассоциативность (3) (1- )(1- B+( 1- F+ G) = (1- )B+ H H F G H F G

Пример 1 Композируем G поверх матового изображения F ( = 1) H F G => H F G Т.е. получили обычную операцию композирования

Пример 2 Композируем полностью матовое изображение G ( поверх F H F G => H G Результирующее изображение не зависит от

Композирование и буфер кадра. Пример. Последовательность операций: Загрузить непрозрачный фон в буфер кадра ( = 1 во всех точках) Графический конвейер создает рисует фигуру поверх фона. Пиксели внутри фигуры имеют = 1. Пиксели на границах могут иметь 1 Аналогично для других фигур. Объекты могут частично перекрываться. Программа визуализации не должна знать, что находится под растеризованной фигурой. Операция композирования все обрабатывает корректно

Композирование и буфер кадра. Пример 2. Последовательность операций: Загрузить прозрачный фон в буфер кадра ( = 0 во всех точках) Рисовать фигуры аналогично примеру 1 В результирующем изображении пиксели с = 0 не были «задеты» ни разу

Композирование и буфер кадра. Пример 3. Последовательность операций: Загрузить прозрачный фон в буфер кадра ( = 0 во всех точках) Рисовать результирующее изображение из примера 2 поверх фона Только пиксели с 0 будут изменять фон

Поддержка в OpenGL OpenGL поддерживает различные композитные операции. Альфа-канал для изображения примитива может задаваться через RGBA-цвет вершин или RGBA-цвет текстур Пример: glEnable(GL_ENABLE); glDisable(GL_DISABLE); glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA)

Итоги Текстурирование Использование изображений для моделирования (отражающих) свойств поверхности Виды текстурирования –bump mapping, specular mapping, environment mapping, displacement mapping, transparency mapping Отображение текстуры Фильтрация текстуры –Метод ближайшего соседа, Билинейная фильтрация, Мип-мэппинг, Трилинейная фильтрация, Анизотропная фильтрация Композирование Объединение двух или более независимо подготовленных изображений в одно изображение, обычно с помощью попиксельного вычисления полупрозрачности