Графический конвейер Преобразования геометрии Александр Шубин.

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



Advertisements
Похожие презентации
Аффинные преобразования Графический конвейер Астана. Лекция 7.
Advertisements

Компьютерная графика Александр Бобков Семинар 2 Преобразование вершин.
GPU vs. CPU 681 млн. транзисторов Тактовая частота 575Mhz * 768MB 1.8 Ghz памяти DDR4 ~650 млн. транзисторов Тактовая частота ~700Mhz 1GB 1.1 Ghz памяти.
OpenGL Лекция 3. Построение тени Проективные тени Объемные тени Карты теней Мягкие тени.
Прямые. Кривые. Поверхности Лекция 12. Алексей Игнатенко.
Компьютерная графика. Технологии 3D графики. DirectX, OpenGL, Glide, PhysX.
P 1 (x 1,y 1,z 1 ) P 2 (x 2,y 2,z 2 ) P 1 (X 1,Y 1 ) P 2 (X 2, Y 2 ) O (x,y,z) 0(X,Y) E.
Оптимизация графического движка на библиотеке OpenGL.
Кривые и поверхности высших порядков Астана 2004 Лекция 12.
OpenGL. Графический конвейер. Геометрические преобразования.
Компьютерная графика. Лекция 4 Алгоритмы формирования изображений. Основы OpenGL.
Вычисления Общего Назначения на Графическом Ускорителе.
Компьютерная геометрия и графика. Лекция 10. План занятия: Алгоритм Робертса.
Текстуры. Композиты Лекция 11 Алексей Игнатенко. На прошлой лекции Удаление невидимых поверхностей Удаление нелицевых граней Алгоритм художника Двоичное.
OpenGL API Алексей Игнатенко (MSU Graphics & Media Lab) Алексей Игнатенко (MSU Graphics & Media Lab)
1 Растровые изображения на экране монитора. Компьютерная графика область деятельности, в которой компьютеры используются как инструмент для создания изображений,
ПРОЕКТ СРЕДЫ РАЗРАБОТКИ СПЕЦИАЛИЗИРОВАННЫХ СИСТЕМ ВИЗУАЛИЗАЦИИ П.А. Васёв ИММ УрО РАН, Екатеринбург XII Международный семинар «Супервычисления и математическое.
Алгоритмы трёхмерной графики Алгоритмы трёхмерного отсечения, алгоритм плавающего горизонта.
ASSIGNMENT Assignment 3.1 Растеризация на CUDA – Загрузить 3d модель (stanford bunny, dragon или buddha)stanford bunny, dragon или buddha – Преобразовать.
Основы синтеза фотореалистических изображений: трассировка лучей Боголепов Д.К. Кафедра МОЭВМ ВМК ННГУ Введение в методы визуализации.
Транксрипт:

Графический конвейер Преобразования геометрии Александр Шубин

Введение в проблему Графическая программа Вершинный конвейер Цель: преобразоватъ трёхмерные описания объектов в двухмерную картинку Цель: преобразоватъ трёхмерные описания объектов в двухмерную картинку Средство: задать строгий порядок преобразований Средство: задать строгий порядок преобразований Растеризация Фрагментный конвейер Буфер экрана

Вершинный конвейер Вершинные Операции (Transformation and Lighting) Сборка примитивов Отсечение Перспектива Окно Отбраковка Вершинный конвейер работает с вершинами переходим от трёхмерных предметных координат к двухмерным экранным

Вершинные операции координаты вершин преобразуются координаты вершин преобразуются по видовым матрицам и по видовым матрицам и матрицам проекции матрицам проекции преобразуются нормали и преобразуются нормали и текстурные координаты текстурные координаты накладывается вычисление накладывается вычисление освещения освещения

Сборка примитивов формирование примитивов формирование примитивов (точки, линии, (точки, линии, многоугольники) многоугольники) необходимый этап, необходимый этап, т.к. дальше идёт работа т.к. дальше идёт работа уже с наборами точек уже с наборами точек

Обработка примитивов отсечение по плоскостям отсечение по плоскостям отсечения и отсечения и отображаемому объёму отображаемому объёму расчёт перспективы расчёт перспективы с перспективой без перспективы

Обработка примитивов приведение к оконным приведение к оконным (экранным) координатам (экранным) координатам проверка расположен ли проверка расположен ли примитив на переднем примитив на переднем плане (отбраковка) плане (отбраковка)

Растеризация Растеризация примитивов Растеризованные примитивы (фрагменты) Обработанные вершины на входе: обработанные вершины (после вершинного конвейера) на входе: обработанные вершины (после вершинного конвейера) на выходе: фрагменты, на которые разбиваются примитивы на выходе: фрагменты, на которые разбиваются примитивы

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

Программируемый конвейер Позволяет заменить фиксированную часть обработки вершин и фрагментов программируемой Позволяет заменить фиксированную часть обработки вершин и фрагментов программируемой Графическая программа Вершинный конвейер Растеризация Фрагментный конвейер Буфер экрана Фрагментный шейдер Вершинный шейдер

Вершинный процессор позволяет программировать этап обработки вершин позволяет программировать этап обработки вершин работает по отдельности с каждой вершиной работает по отдельности с каждой вершиной должен полностью заменять фиксированную функциональность должен полностью заменять фиксированную функциональность Сборка примитивов Отсечение Перспектива Окно Отбраковка Вершинный конвейер Вершинный процессор

Фрагментный процессор позволяет программировать этап обработки фрагментов позволяет программировать этап обработки фрагментов работает по отдельности с каждым фрагментом работает по отдельности с каждым фрагментом должен полностью заменять фиксированную функциональность должен полностью заменять фиксированную функциональность Операции над фрагментами Фрагментный конвейер Фрагментный процессор

Преобразования координат каждое пространство координат имеет свои свойства каждое пространство координат имеет свои свойства большая гибкость большая гибкость Нормализованное пространство Предметное пространство Глобальное пространство Пространство обзора Пространство отсечения Оконное пространство

Преобразования координат переходим от одного предмета к нескольким переходим от одного предмета к нескольким необходимы общие единицы измерения необходимы общие единицы измерения расположение начала координат должно быть удобно для всей сцены расположение начала координат должно быть удобно для всей сцены Предметное пространство Глобальное пространство

Преобразования координат учитываем параметры обзора (точка обзора, точка фокуса, направление верха) учитываем параметры обзора (точка обзора, точка фокуса, направление верха) начало координат теперь в точек обзора начало координат теперь в точек обзора в OpenGL сразу идёт переход из предметного пространства в пространство обзора (модельновидовая матрица) в OpenGL сразу идёт переход из предметного пространства в пространство обзора (модельновидовая матрица) Глобальное пространство Пространство обзора

Преобразования координат исключаем примитивы, не входящие в область обзора исключаем примитивы, не входящие в область обзора область обзора определяют видимый объём и пользовательские плоскости отсечения область обзора определяют видимый объём и пользовательские плоскости отсечения в OpenGL видимый объём задаётся матрицей проекции в OpenGL видимый объём задаётся матрицей проекции Пространство обзора Пространство отсечения

Преобразования координат проводится расчёт перспективы проводится расчёт перспективы все графические примитивы помещаюься в пространство между (-1, -1, -1) и (1, 1, 1) все графические примитивы помещаюься в пространство между (-1, -1, -1) и (1, 1, 1) промежуточное пространство на пути к окну промежуточное пространство на пути к окну Пространство отсечения Нормализованное пространство

Преобразования координат переходим в оконные переходим в оконные координаты координаты растеризация происходит растеризация происходит в оконных координатах в оконных координатах Нормализованное пространство Оконное пространство

Другие конвейеры разработана Lusacfilm и Pixar для высококачественного рендеринга сложных сцен разработана Lusacfilm и Pixar для высококачественного рендеринга сложных сцен имеет четыре стадии имеет четыре стадии Конвейер Reyes Деление примитивов Определение видимости/ фильтрация ЗатенениеРастеризация

Другие конвейеры Отличия Reyes от OpenGL операция текстурирования не нуждается в дополнительной фильтрации операция текстурирования не нуждается в дополнительной фильтрации основной примитив – микрополигон (однородно закрашенный четырёхугольник) основной примитив – микрополигон (однородно закрашенный четырёхугольник) одна стадия затенения одна стадия затенения

Спасибо за внимание!