РастеризацияТекстурыКомпозиты презентация

Содержание

На лекции 4-е задание Задача растеризации Текстурирование Определение Текстурные отображения для сферы, тора, цилиндра Рельефное текстурирование (bump-mapping) Текстурирование в OpenGL Композиты Определение Алгебра композитов Композиты в OpenGL

Слайд 1 Растеризация Текстуры Композиты


Слайд 2На лекции
4-е задание
Задача растеризации
Текстурирование
Определение
Текстурные отображения для сферы, тора, цилиндра
Рельефное текстурирование (bump-mapping)
Текстурирование

в OpenGL
Композиты
Определение
Алгебра композитов
Композиты в OpenGL


Слайд 34-е задание: визуализация односторонних поверхностей
Лист Мёбиуса
Бутылка Клейна


Слайд 4Конвейер
Обработка вершин и сборка примитивов
Вершина любого объекта в момент определения немедленно

передается в конвейер, и проходит все его ступени
3D координаты -> экранные



Слайд 5Растеризация


Слайд 6Генерация изображения

P1
P2
P3
P4
Растеризовать примитив
Вычислить цвет каждого пикселя
Скомбинировать с цветом фона


Слайд 7Растеризация

P1
P2
P3
P4
















Линия развертки (scanline)


Слайд 8Вычисление цвета пикселя

P1
P2
P3
P4
















Цвет материала Cm
Цвет текстуры Ct
Цвет фона Cb


Слайд 9Вычисление цвета пикселя: цвет материала

P1
P2
P3
P4
















Цвет материала Cm
Цвет текстуры Ct
Цвет фона Cb


Слайд 10Вычисление цвета пикселя: закраска Фонга (1/2)


Слайд 11Вычисление цвета пикселя: закраска Фонга (2/2)


Слайд 12Вычисление цвета пикселя: цвет текстуры

P1
P2
P3
P4
















Цвет материала Cm
Цвет текстуры Ct
Цвет фона Cb


Слайд 13Отображение текстуры (Texture mapping)
Общее отображение текстуры
Узор, определенный в 2D области, «наклеивается» на

объект как кусок обоев и, фактически становится частью объектной базы данных.
Когда объект перемещается, текстурный узор перемещается вместе с ним.
Разнообразие технологий
View-dependent mapping techniques.
Bump mapping techniques.
Displacement mapping techniques

(с) http://en.wikipedia.org/wiki/Texture_mapping


Слайд 14Текстурирование: постановка задачи
Текстура – часть модели освещения и часть геометрической модели

Какой

атрибут или параметр модулируется, чтобы получить желаемый эффект?

Как осуществляется отображение?
Если текстура определена в 2D области, а объект существует в 3D пространстве, нам необходимо определить отображение между этими областями.

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


Слайд 16Атрибуты (параметры)
Ir = ka*Ia + Ii (kd*(N.L) + ks*(R.V)α)

отражение от поверхности

- surface color texture
вектор нормали N - bump mapping
коэффициенты kd, ks, α - specularity mapping
падающий свет Ii - environment mapping
геометрия - displacement mapping
прозрачность - transparency mapping

Слайд 17Отображение текстуры
Задать соответствие между координатами изображения текстуры и точками объекта
Для полигонального

предсталения используется соответствие на вершинах

Слайд 18Пример отображение текстуры: Цилиндр


Слайд 19Пример отображение текстуры: Цилиндр (2)
P - точка нанесения текстуры
Перевести P в

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


Слайд 20Пример отображение текстуры: Цилиндр (3)


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


Слайд 22Bump mapping


Слайд 23Bump mapping (2)


Слайд 24Закраска Фонга и рельефное текстурирование


Слайд 25Виды рельефных текстур


Слайд 26Визуализация текстуры
P1 (s1, t1)
P4 (s4, t4)

P2 (s2, t2)
P3 (s3, t3)

















Слайд 27Фильтрация текстур


Magnification
Minification


Слайд 28Фильтрация текстур: метод ближайшего соседа
Выбирается цвет ближайшего соответствующего пикселя текстуры
Быстрый

метод
Низкое качество

Слайд 29Фильтрация текстур: Билинейная фильтрация


Слайд 30Фильтрация текстур: MIP – mapping (multum in parvo)
Выбирается подходящий уровень мипмапа
чем

больше размер "образа" пикселя в текстуре, тем меньший мипмап берется
Далее значения в мипмапе могут усредняться билинейно или методом ближайшего соседа (как описано выше)
Дополнительно происходит фильтрация между соседними уровнями мипмапа (трилинейная фильтрация)

Слайд 31Фильтрация текстур: анизотропная фильтрация
Вместо квадратного фильтра, используется вытянутый
Позволяет более качественно выбрать

нужный цвет для экранного пикселя

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


Слайд 33GLuint texture;
glGenTextures(1,&texture);
Создаем текстуру - прямоугольный массив с цветами пикселов. Высота

и ширина должны быть степенями двойки.

RGBNM


RGB1M

RGB0M





RGBN1


RGB11

RGB01

RGBN0


RGB10

RGB00

Получаем номер текстурного объекта

Активизируем текстурный объект

glBindTexture(texture);

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


Слайд 34glTexParameteri(GL_TEXTURE_2D,
GL_TEXTURE_WRAP_S, GL_REPEAT);
glTexParameteri(GL_TEXTURE_2D,


GL_TEXTURE_WRAP_T, GL_REPEAT);
glTexParameteri(GL_TEXTURE_2D,
GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D,
GL_TEXTURE_MIN_FILTER, GL_LINEAR);

Загружаем текстуру

Устанавливаем режимы текстурирования

glPixelStorei(GL_UNPACK_ALIGNMENT,1);
glTexImage2D(GL_TEXTURE_2D,
0, // Mip-level
GL_RGB, // Формат текстуры
tex_width,tex_height, 0, // Ширина границы
GL_RGB, // Формат исходных данных
GL_UNSIGNED_BYTE, // Тип данных
tex_bits); // Исходные данные

Текстурирование в OpenGL (2)


Слайд 35 Разрешаем текстурирования
Задаем текстурные координаты
glEnable(GL_TEXTURE_2D);
glTexCoord2d(u,v);
Возможно, потребуется включить режим

перспективного текстурирования

glHint(GL_PERSPECTIVE_CORRECTION_HINT,GL_NICEST);

Возвращаем номер текстурного объекта в список свободных

glDeleteTextures(1,&texture);

Текстурирование в OpenGL (3)


Слайд 36Генерация текстурных координат
Автоматическая генерация текстурных координат
glTexGen{ifd}[v]()
Режимы генерации координат:
GL_OBJECT_LINEAR
GL_EYE_LINEAR
GL_SPHERE_MAP
Координаты считаются как расстояние

от заданной плоскости Ax+By+Cz+D=0

Слайд 37Композиты


Слайд 38Композирование
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.

Слайд 39Композирование: Определение
Композирование
Объединение двух или более независимо подготовленных изображений в одно

изображение, обычно с помощью попиксельного вычисления полупрозрачности (альфа-канал), иногда с учетом глубины (z-координаты)
Смешение, Монтаж (Compositing)

Слайд 40Альфа-канал
Кодирует информацию о покрытии пикселя:
α = 0 : нет покрытия (прозрачный)
α

= 1 : полное покрытие (непрозрачный)
0 < α < 1 : частичное покрытие (полупрозрачный)
Пример: α = 0.3




Слайд 41Композирование с альфа-каналом
Альфа-канал управляет линейной интерполяцией фоновых и передних пикселей при

композировании

Слайд 42Полупрозрачные объекты
Предложим, мы рисуем изображение А поверх B поверх фона G
Насколько

A блокирует B ?
αA
Насколько B видно через A?
1-αA
Насколько G видно через A и B ?
(1-αA) (1-αb)


Слайд 43Непрозрачные объекты
Как мы можем комбинировать два частично перекрытых пикселя?
3 возможных цвета

(0, A, B)
4 региона (0, А, B, AB)

Слайд 44Композитная алгебра Портера-Даффа
12 возможных комбинаций


Слайд 45Оператор Over


Слайд 46Композирование в OpenGL
Включить режим композирования
glEnable(GL_BLEND)

Задать функции источника и приемника
glBlendFunc(source_function, dest_function)

Пример: оператор

A over B
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA)

Задать альфа-канал в вершинах или в текстуре
glColor(R,G,B,A);

Выключить режим композирования
glDisable(GL_BLEND);

Слайд 47Итоги
Задача растеризации
Найти пиксели (фрагменты), соответствующие примитиву и вычислить их цвет в

соответствии с моделью освещения, текстурой, операцией композирования
Текстурирование
Отображение изображения на поверхность модели
Различные виды текстурирования
Композирование
Способ комбинации пикселей растеризуемого примитива и фона
Композитная алгебра


Обратная связь

Если не удалось найти и скачать презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое ThePresentation.ru?

Это сайт презентаций, докладов, проектов, шаблонов в формате PowerPoint. Мы помогаем школьникам, студентам, учителям, преподавателям хранить и обмениваться учебными материалами с другими пользователями.


Для правообладателей

Яндекс.Метрика