Введение в 3D графику. (C) NSTLab Нижний Новгород, 1999.

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



Advertisements
Похожие презентации
Излучательность. Трассировка лучей. Лекция 13. Алексей Игнатенко.
Advertisements

ТРЕХМЕРНАЯ ГРАФИКА Компьютерная графика. Геометрические примитивы.
Излучательность. Трассировка лучей. Фотонные карты. Андрей Татаринов Глобальные модели освещения.
ГЛАВА 3 ЭЛЕМЕНТЫ АНАЛИТИЧЕСКОЙ ГЕОМЕТРИИ. §1. Прямая на плоскости. Различные виды уравнений прямой на плоскости. Пусть имеется прямоугольная система координат.
Параметрическое представление плоских и пространственных кривых При параметрическом задании кривая представляется векторной функцией r 1, r 2, r 3 - радиус.
Графический конвейер Преобразования геометрии Александр Шубин.
Поверхностные модели построенные по кинематическому принципу Поверхность вращения Поверхность соединения – линейчатая поверхность Поверхность перемещения.
Лекция 13 Метод трассировки лучей Астана Трассировка лучей через сферическую каплю воды Луч 7 -- луч Декарта [1637]
Математические модели Динамические системы. Модели Математическое моделирование процессов отбора2.
Достоинства и недостатки рендеринга, используемого в OpenGL OpenGL изначально создавался для интерактивной визуализации трехмерных сцен Обеспечивает достаточно.
Аналитическая геометрия Аналитическая геометрия – раздел геометрии, в котором простейшие линии и поверхности (прямые, плоскости, кривые и поверхности второго.
Лекция 12 Взаимные пересечения поверхностей. Пересечение поверхностей Из линейной алгебры (многомерной геометрии) хорошо известно, что в расширенном евклидовом.
Лекция 2 СЛУЧАЙНЫЕ ВЕЛИЧИНЫ И ИХ ЗАКОНЫ РАСПРЕДЕЛЕНИЯ.
Локальные и глобальные модели освещения. Фролов Владимир. 25 сентября 2006г.
Основные сведения из математики, необходимые для понимания геометрических моделей Три главных формы математического представления кривых и поверхностей.
Наумова Ирина Михайловна1 Функция y = cos x Ее свойства и график.
Геометрическое моделирование трехмерных объектов..
Поверхности второго порядка Поверхностью второго порядка S называется геометрическое место точек, декартовы прямоугольные координаты которых удовлетворяют.
Ребята, с построением графиков функций мы с вами уже встречались и не раз. Мы с вами строили множества линейных функций и парабол. В общем виде любую.
Лекции по физике. Оптика Геометрическая оптикаЛекции по физике. Оптика Геометрическая оптика.
Транксрипт:

Введение в 3D графику. (C) NSTLab Нижний Новгород, 1999

Предмет 3D графики. I = M I- изображение трехмерного мира M- математическое описание (модель) мира - оператор преобразования математического описания мира в его изображение

Моделирование объектов геометрию (форму) объекта оптические свойства материала, из которого сделан объект Модель объекта должна описывать

Модели объектов Понятие материала Сколько весят эти шары? Не важно! Главное то, как взаимодействует свет с этими объектами. Следовательно, для визуализации данной сцены нам не понадобится знать плотность материала, его прочность и т. д. …а понадобятся: коэффициент отражения, коэффициент поглощения, коэффициент преломления и т. п., причем, все это (возможно) в зависимости от длины волны! Материалом называют совокупность свойств, определяющих то, как взаимодействует свет с объектом.

Модели объектов Существует несколько подходов к моделированию геометрической формы объекта, каждый из которых обладает своими преимуществами и недостатками.

Модели объектов Аналитические модели Аналогия с двумерной кривой (x - x 0 ) 2 + (y - y 0 ) 2 = R 2 y = ax 2 + bx + c R x 0, y 0 F(x, y) = 0 Если нам надо описать какую либо кривую на плоскости, то во многих случаях сделать это возможно подобрав подходящее аналитическое выражение.

Модели объектов Аналитические модели Аналогично дело обстоит и в трехмерном случае. Аналитически можно задать трехмерную поверхность.

Модели объектов Аналитические модели При аналитическом моделировании объектов часто используют поверхности второго порядка: Ax 2 + By 2 + Cz 2 + Dxy + Exz + Fyz + Gx + Hy + Jz + K = 0

Модели объектов Аналитические модели Не надо думать, что с помощью аналитических моделей можно строить только графики функций.

Модели объектов Аналитические модели Особой разновидностью аналитических моделей являются модели на основе бикубических поверхностей с помощью которых можно описать гладкую поверхность произвольной формы. x = X(s,t); y = Y(s,t); z = Z(s,t) X(s,t) = x 11 s 3 t 3 + x 12 s 3 t 2 + x 13 s 3 t + x 14 s 3 t + x 21 s 2 t 3 + x 22 s 2 t 2 + x 23 s 2 t + x 14 s 2 t + x 31 st 3 + x 32 st 2 + x 33 st + x 44 st + x 41 t 3 + x 42 t 2 + x 43 t + x 44 t

Модели объектов Аналитические модели Поверхность произвольной формы разделяется на куски (patch), каждый из которых аппроксимируется бикубической поверхностью таким образом, что бы в месте стыка совпадали не только координаты точек, но и первые производные

Модели объектов Аналитические модели Каждый участок бикубической поверхности задается шестнадцатью точками. Тогда бикубическая поверхность в форме Безье задается в следующем виде: X(s,t) = SM B P X M B T T T Y(s,t) = SM B P Y M B T T T Z(s,t) = SM B P Z M B T T T или в форме B-сплайна X(s,t) = SM S P X M S T T T Y(s,t) = SM S P Y M S T T T Z(s,t) = SM S P Z M S T T T

Модели объектов Аналитические модели S = [ s 3 s 2 s 1 ] T = [ t 3 t 2 t 1 ] M B = X 11 X 12 X 13 X 14 X 21 X 22 X 23 X 24 X 31 X 32 X 33 X 34 X 41 X 42 X 43 X 44 P X = Y 11 Y 12 Y 13 Y 14 Y 21 Y 22 Y 23 Y 24 Y 31 Y 32 Y 33 Y 34 Y 41 Y 42 Y 43 Y 44 P Y = Z 11 Z 12 Z 13 Z 14 Z 21 Z 22 Z 23 Z 24 Z 31 Z 32 Z 33 Z 34 Z 41 Z 42 Z 43 Z 44 P Z = M S = (1/6)

Модели объектов Аналитические модели Для сшивки двух кусков необходимо: совпадение смежных точек отсутствие излома в поперечном направлении

Модели объектов Полигональные модели Очень широкое распространение получили полигональные модели

Модели объектов Полигональные модели Аналогия с двумерной кривой Эта кривая может быть аппроксимирована с помощью набора отрезков

Модели объектов Полигональные модели Аналогия с двумерной кривой Теперь вместо кривой мы имеем набор отрезков, каждый из которых определяется двумя точками - начала и конца p1 p2 p3 p4 p5 p6 p7 p8 p9 p10

Модели объектов Полигональные модели Двумерный случай распространим на трехмерный В этом случае поверхность аппроксимируется плоскими полигонами.

Модели объектов Полигональные модели Для моделирования трехмерных объектом чаще всего применяются выпуклые плоские многоугольники с количеством вершин не более четырех.

Модели объектов Полигональные модели Полигоны описывается набором вершин - точек, заданных в трехмерном пространстве. 1: v1, v2, v4 2: v2, v3, v4... v v1 v2 v3 v4 v5 v6 v8 v9 v10 12: v3, v9, v10

Модели объектов Полигональные модели Полигоны описывается набором вершин - точек, заданных в трехмерном пространстве. 1: v1, v2, v4 2: v2, v3, v4... v v1 v2 v3 v4 v5 v6 v8 v9 v10 12: v3, v9, v10 3D-координаты нормаль к поверхности цвет... и, возможно, много что еще Вершина содержит

Аппроксимировать трехмерную плоскость можно с разной точностью. Количество вершин в модели зависит от требуемого качества картинки и от ожидаемой скорости рендеринга - чем больше вершин, тем выше качество и тем медленнее рендеринг. Модели объектов Полигональные модели

Системы координат Важнейшую роль в машинной графике играют системы координат.

Системы координат Объектная система координат При создании (моделировании) объекта используется т. н. объектная (или локальная) система координат.

Системы координат Объектная система координат Использование объектных координат сильно облегчает жизнь при создании моделей объектов. Разные модели никак не зависят друг от друга - можно использовать разные масштабы, разные точки отсчета и т. п.

Системы координат Мировая система координат Для того, что бы составить из нескольких объектов сцену, необходимо расположить и ориентировать объекты друг относительно друга определенным образом.

x y z Системы координат Мировая система координат Расположение и ориентация объектов сводится к переносу модели из объектной системы координат в мировую. Мировой называют систему координат, используемую как единую систему отсчета для всей сцены.

Системы координат Система координат камеры После того, как объекты помещены на сцену (в мировую систему координат!), самое время подумать о том, где и как установить камеру.

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

Системы координат Система координат камеры Система координат, в которой точка отсчета привязана к камере, используется в процессе отображения объектов на экран. «Поместить камеру на сцену» означает ввести новую систему координат и поместить в нее объекты сцены. Один и тот же объект в разных «камерных» системах координат

Системы координат Система координат камеры y x z z x y В библиотеках Direct3D и OpenGL оси системы координат камеры ориентированы следующим образом: Ox - слева на право, Oy - с низу вверх, Oz - вглубь экрана для D3D и наоборот для OpenGL. Плоскость Oxy совпадает с плоскостью экрана.

Освещение При компоновке сцены надо подумать об источниках света. Сколько? Какие? Где?

Освещение Типы источников света Spot Light Point Light Directional

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

Виды проекций Перспективная проекция Перспектива - это способ передачи глубины при отображении трехмерного мира на плоскость. Чем дальше от наблюдателя находится предмет, тем он кажется меньше.

Виды проекций Перспективная проекция наблюдатель плоскость проекции Для перспективной проекции характерна т. н. точка схода. Перспектива - открытие в изобразительном искусстве эпохи Ренессанса.

Виды проекций Перспективная проекция Near Clipping Plane Far Clipping Plane Viewing Frustum Viewing frustum - видимый объем

Виды проекций Перспективная проекция Camera position fov/2 Z Y D z near z far Frustum определяется через задание положения ближний и дальней секущих плоскостей ( z near и z far ), и через угол обзора fov.

Виды проекций Перспективная проекция X Y (-1,-1,0) Z (1,1,1) X Y Z Camera position Viewing frustum Перспективное преобразование переводит сцену в новую систему координат, в которой viewing frustum принимает форму кубоида. При этом объекты находившиеся ближе к камере увеличиваются за счет того, что ближняя секущая поверхность меньше дальней. Изменение пропорции объектов при перспективном преобразовании.

Geometry Pipeline World Transformation View Transformation Projection Transformation Clipping Vertices Lighting? Lighting Module No Rasterizer TnL Vertices

Geometry Pipeline World Transformation View Transformation Projection Transformation Clipping Vertices Lighting? Lighting Module No Rasterizer TnL Vertices Пересчет в мировую систему координат

Geometry Pipeline World Transformation View Transformation Projection Transformation Clipping Vertices Lighting? Lighting Module No Rasterizer TnL Vertices Пересчет в систему координат камеры.

Geometry Pipeline World Transformation View Transformation Projection Transformation Clipping Vertices Lighting? Lighting Module No Rasterizer TnL Vertices Расчет освещенности

Geometry Pipeline World Transformation View Transformation Projection Transformation Clipping Vertices Lighting? Lighting Module No Rasterizer TnL Vertices Проекция на плоскость экрана

Geometry Pipeline World Transformation View Transformation Projection Transformation Clipping Vertices Lighting? Lighting Module No Rasterizer TnL Vertices Clipping Clipping - процесс отсечения невидимых и/или частично видимых полигонов.

Geometry Pipeline World Transformation View Transformation Projection Transformation Clipping Vertices Lighting? Lighting Module No Rasterizer TnL Vertices Clipping Clipping - процесс отсечения невидимых и/или частично видимых полигонов.

Geometry Pipeline World Transformation View Transformation Projection Transformation Clipping Vertices Lighting? Lighting Module No Rasterizer TnL Vertices Clipping Clipping - процесс отсечения невидимых и/или частично видимых полигонов.

Geometry Pipeline World Transformation View Transformation Projection Transformation Clipping Vertices Lighting? Lighting Module No Rasterizer TnL Vertices Clipping Clipping - процесс отсечения невидимых и/или частично видимых полигонов.

Geometry Pipeline World Transformation View Transformation Projection Transformation Clipping Vertices Lighting? Lighting Module No Rasterizer TnL Vertices

Удаление невидимых поверхностей Удаление заведомо невидимых поверхностей заметно сокращает нагрузку на рендерер и, следовательно, повышает общую производительность системы.

Удаление невидимых поверхностей Culling n1n1 1 n2n2 2 Если поверхность видима иначе поверхность невидима Процесс удаления «отвернутых» от наблюдателя поверхностей называется culling (отбраковка).

Удаление невидимых поверхностей z-Буфер С помощью алгоритма z-буфера проводят визуализацию перекрывающихся поверхностей

Удаление невидимых поверхностей z-Буфер z1 23 z-буфер буфер кадра 2 Принцип работы алгоритма z-буфера. z-Буфер содержит z- координату растеризуемого примитива в соответствующей точке. В буфер кадра отбирается точка с минимальным значением z-координаты.

Удаление невидимых поверхностей z-Буфер z1 23 z-буфер буфер кадра Как это работает

Удаление невидимых поверхностей Существует «облегченный» вариант алгоритма z- буферизации - предварительная сортировка примитивов по глубине с последующей растеризацией в порядке возрастания z-координаты. В некоторых случаях применение z-сортировки дает выигрыш в скорости, но качество получаемого изображения может быть заметно хуже. Это ноги монстра, стоящего над нами и видеть которые мы не должны

Это еще не все Рассмотренные алгоритмы лежат в основе работы библиотек Direct3D и OpenGL. В большинстве случаев они обеспечивают приемлемое качество и высокую скорость рендеринга. Но для создания фотореалистичных изображений применяются принципиально другие подходы.

Трассировка лучей Трассировка лучей (ray tracing) это метод рендеринга, при котором отслеживается «судьбы» всех лучей, попавших в объектив камеры. При этом учитываются явления отражения, преломления, поглощение в материале и т. п.

Трассировка лучей С помощью RT можно получать очень реалистичные и удивительно красивые картинки...

Трассировка лучей Essentials Когда-то все происходило таким образом...

Трассировка лучей Essentials p1 Для расчета освещенности в точке p1 необходимо определить, какие из источников света являются видимыми из места пересечения. Для этого из p1 проведем т. н. теневые зонды в каждый источник света. Если зонд достиг источника и при этом не пересекся ни с какой поверхностью, то данный источник является полностью видимым и будет вносить свой вклад в освещение точки p1. L1 L2

Трассировка лучей Essentials p1 p2 После расчета освещенности в точке p1, опираясь на фундаментальный закон геометрической оптики о том, что угол отражения равен углу падения, сгенерируем отраженный луч. Описанным выше способом определяем вклады источников света и проводим расчет освещенности в точке p2. L1 L2 Обратите внимание! Точка p2 находится в области собственной тени относительно источника L1. То, как учитывается в таком случае вклад этого источника определяется принятой моделью освещения. Можно просто проигнорировать источник L1, а можно учесть прозрачность материала.

Трассировка лучей Essentials p1 p2 p3 p4 Из точки p2 выходят уже два луча - отраженный и преломленный. Причем надо будет учесть то, что луч p2p4 движется внутри объекта и при этом взаимодействуя с материалом может затухать. Обычным образом рассчитываем освещенность в точках p3 и p4...

Трассировка лучей Essentials p1 p2 p3 p4 p6 p5 … и повторяем описанную процедуру до тех пор, пока луч не покинет сцену, или его не «поймает» неотражающий материал.

Трассировка лучей Плюсы и минусы Что умеет ray tracing: учитывать отражение и преломление строить тени изображать прозрачные объекты Метод трассировки лучей считается одним из методов построения фотореалистичных изображений Что не умеет ray tracing: изображать диффузное отражение учитывать распределен- ные источники света Метод трассировка лучей не является (пока еще) средством построения изображений в реальном времени. зеркальное отражение диффузное отражение, при котором отражение падающего луча происходит во всех направлениях

Radiosity Метод Radiosity базируется на законе сохранения энергии. В закрытой системе, в которой все поверхности (включая источники света) являются Lambertian diffuse emitters, теоретически возможно предсказать поглощение и эмиссию энергии в пространство. Для этого необходимо знать энергии источников света (в единицу площади на единицу времени) и коэффициент диффузного отражения каждой поверхности на сцене.

Radiosity Постановка задачи В методе radiosity расчитывается обмен энергии между всеми поверхностями сцены. Для понимания основных принципов radiosity можно воспользоваться аналогией с экономикой. Пусть существуют n стран (C i, они же - поверхности), которые обмениваются между собой производимыми товарами (энергией). С1С1 С3С3 С2С2

Radiosity Постановка задачи импортирует долю F ij экспорта j-й страны производит и экспортирует e i собственного товара экспортирует так же долю общего импорта i С1С1 С3С3 С2С2 Если каждая i-я страна: тогда общий экспорт i-й страны b i составит nj jijiii bFeb 1

Radiosity Постановка задачи С1С1 С3С3 С2С2 После преобразования и приведения к матричной форме данное выражение принимает следующий вид:преобразования (1 - D( )F) B = E или A B = E, где A = (1 - D( )F) Последнее является системой линейных алгебраических уравнений, позволяющая при известных E, и F получить значение B (b i - общий экспорт или светимость для каждой i-й поверхности).

F ij Radiosity Форм-фактор В полученной системе уравнений присутствует компонент F, который определяет то, какая часть из всей покинувшей одну поверхность энергии достигает другой поверхности. Данный компонент в radiosity называется форм-фактор.

Radiosity Форм-фактор Форм-фактор учитывает видимость и взаимное расположение поверхностей относительно друг друга. AiAi AjAj AiAi AjAj

Radiosity Форм-фактор AiAi AjAj AiAi AjAj Очевидно, что в первом случае большая часть энергии эммитированной поверхностью A j достигнет поверхности A i AjAj AiAi

Форм-фактор учитывает видимость и взаимное расположение поверхностей относительно друг друга. Radiosity Форм-фактор AiAi AjAj AiAi AjAj Во втором случае лишь минимальное количество энергии A j достигнет поверхности A i AjAj AiAi

Форм-фактор учитывает видимость и взаимное расположение поверхностей относительно друг друга. Radiosity Форм-фактор AiAi AjAj AiAi AjAj Так же форм-фактор учитывает взаимную видимость двух поверхностей i j k Форм-фактор для поверхностей i и j (F ij ) будет равен нулю из-за перекрытия поверхностью k.

Radiosity Форм-фактор Математически форм-фактор выражается как отношение площади проекции видимой части поверхности A j на сферу, центр которой находится на поверхности A i к площади всей полусферы F ij = s/S. AjAj AiAi s jiij AA ji i dA H rA F ij 2 cos 1 i j Естественно, существуют методы приближенного вычисления данного интеграла.методы

Radiosity Решение системы уравнений Полученную систему уравнений A B = E можно решать любым известным способом, но на практике чаще всего применяется метод последовательных приближений

Radiosity Схема реализации Дискретизация геометрии Вычисление форм-фактора Решение системы уравнений Геометрическая модель Освещенные примитивы «Стандартный» рендерер Изменение освещенности Изменение вида Исходно заданная геометрия «делится» на множество участков (patches)

Radiosity Схема реализации Дискретизация геометрии Вычисление форм-фактора Решение системы уравнений Геометрическая модель Освещенные примитивы «Стандартный» рендерер Изменение освещенности Изменение вида

The end.

b (F 11 b 1 + F 12 b 2 + F 13 b ) = e 1 [(1 - 1 F 11 ) - 1 F F 13 … ] b 1 b 2 b 3... = e 1 (1 - 1 F 11 ) - 1 F F 13 … - 2 F 21 (1 - 2 F 22 ) - 2 F 23 … - 3 F F 32 (1 - 3 F 33 ) …... b 1 b 2 b 3... = e 1 e 2 e 3... b 1 b 2 b 3... = F 11 F 12 F 13 … F 21 F 22 F 23 … F 31 F 32 F 33 …... e 1 e 2 e

Приближенное вычисление форм-фактора AjAj i j Вместо проекции на сферу вычисляют проекцию на куб центр которого совпалает с центром участка поверхности, а верхняя грань которого перпендикулярна нормали. q ji AdA FA r F ji 2 cos A - площадь сегмента поверхности куба q qij FF