Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Федорков Е.Д., Кольцов А.С. Геометрическое моделирование.doc
Скачиваний:
95
Добавлен:
02.05.2014
Размер:
2.73 Mб
Скачать

6.3. Синтез изображений методом обратной трассировки лучей

Трассировка лучей связана с моделированием геометрического пути каждого светового луча, участвующего в построении изображения. Трассировка лучей - моделирование лучевой оптики применительно к задачам компьютерной графики.

Основная идея метода

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

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

При прямой трассировке за исходную позицию берется вычисляемая на изображаемой поверхности точка 1, из нее моделируется путь луча на источник света 2 и на приемник изображения - точка 3.

При обратной трассировке берется центр рецептора 1 на приемнике изображения и моделируется путь луча на объект 2 и далее на источник света - точка 3.

Система координат, применяемая в методе обратной трассировки лучей

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

Система координат сцены- правая прямоугольная система координат, общая для всей сценыXcYcZc.

Объект- совокупность точек пространства, объединенных функциональной общностью с точки зрения конкретно-целевой задачи.

Соответственно для каждого объекта вводится своя правая прямоугольная система координат XYZ.

Экранная система координат- система координатX1Y1Zнаблюдательной системы. Данная система координат выбирается левой.

По аналогии cфизическими устройствами осьzсоответствует главному лучу объектива, плоскостьxy- задней фокальной плоскости, а центр проекцииFрасполагается на осиOZв точке (0,0,f) и сопоставляют с задней главной точкой объектива.

6.4. Способы представления моделей геометрических объектов

В общем случае в любой геометрической модели можно выделить две составляющие ее части (уровни):

  • набор структурных элементов. Например, в полигональной модели это вершины, ребра и грани;

  • топология, т.е. собственно структура, определяющая способ взаимосвязи элементов.

Структурный элемент как геометрический объект, вообще говоря, можно представить одним из способов: 1) параметрически (функциональная зависимость координат от переменных параметров):

2) неявно:

где m – размерность пространства (1 – одномерное, 2 – двумерное, 3 – трехмерное);

n – размерность элемента (0 – нульмерный, определяет точку; 1 – одномерный, определяет линию; 2 – определяет поверхность);

- m-мерная вектор-функция, определяющая форму параметрического элемента;

- m-мерная вектор-функция, задающая пределы изменения параметров;

- m-мерная вектор-функция, определяющая неявное уравнение геометрического элемента;

- m-мерный нулевой вектор.

Как видно, неявное задание геометрического объекта более компактное. Тем не менее параметрическому заданию отдается предпочтение в силу его удобства для решения задач нахождения:

- точки, принадлежащей объекту;

- нормали к кривой или поверхности;

- осуществления мэппинга поверхности.

В зависимости от значений m и n сведем геометрические объекты для параметрического их представления в следующую таблицу.

Таблица 1

Классификация элементов геометрических объектов

m\n

0

1

2

1

точка прямой

отрезок прямой

-

2

точка плоскости

линия на плоскости

область на плоскости

3

точка в пространстве

пространственная линия

область в пространстве

Из таблицы видно, что m <= n. Будем ссылаться на данные элементы обозначением (m\n)-элемент. Например, (2\1) – это линия на плоскости.

Имея данные структурные элементы, можем конструировать из них различную топологию, выражающую отношения между структурными элементами, например, с помощью таблиц или с использованием теории множеств. Так ломаную можно представить двумя множествами:

V – множество вершин ((2\0)-элементов);

Е = {vi, vj}– множество ребер.

Рассмотрим распространенную классификацию существующих способов представления трехмерных геометрических объектов (моделей):

- простейшие способы;

- граничное задание;

- объемное задание.

К простейшим способам задания трехмерных объектов относятся точечное и проволочное (каркасное) представления. В точечном представлении объект задан совокупностью вершин, принадлежащих поверхности объекта V = {V1,…,Vn}.

Проволочная модель является расширением предыдущего способа. Объекты задаются совокупностью вершин и соединяющих их ребер (отрезков прямой или кривой):

V = {v1,…,vn}, Е = {vi, vj [fk(u)]},

где fk(u) – это (3\1)-элемент, используемый, если ребро не является отрезком прямой, соединяющей вершины vi, vj. Как правило, для одной модели fk является вектор-функцией одного и того же типа.

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

Поверхностное (граничное) задание моделей. Поверхностное представление объекта подразумевает точное математическое описание. Исходя из вышеприведенной классификации существует два основных способа описания поверхности: явное параметрическое и в виде неявных функций. Общий вид параметрической поверхности следующий:

,

где для параметров u и v, как правило, определяют область определения либо прямоугольного (ua < u < ub, va < v < vb), либо треугольного (ua < u < ub, va < u + v < vb) вида.

Можно выделить два основных типа поверхностных параметрических моделей:

- полигональная модель, которая представлена набором плоских граней;

- патч-модель, или лоскутная модель. В данном случае гранями служат части поверхностей одного типа (билинейные, поверхности Кунса, бикубические поверхности, поверхности Безье, поверхности на основе B-сплайнов).

Поверхностное задание трехмерных объектов является наиболее распространенным, и для него сформировались следующие разновидности топологий:

  1. Список вершин. В этой топологии грань выражается через вершины:

V = {vi} – вершины |V| = n;

F = {(vj1, vj2,…, vjk[, fj(u,v)]) } – грань (или патч fj), состоящая из k вершин (k >= 3).

  1. Список ребер. Здесь грань выражена через ребра:

V = {vi} – вершины |V| = n;

Е = {ek= (vi, vj[fk(u)])} – ребро. fk– уравнение линии;

F = {(ej1, ej2,…,ejk[fj(u,v)])} – грань (или патч fj), состоящая из k ребер (k >= 3).

  1. «Крылатое» представление. Эта модель является развитием модели, основанной на информации о ребрах. Отличие состоит в том, что в структуру, описывающую ребра, добавляется информация о взаимном расположении граней. Она включает:

V = {vi} – вершины |V| = n;

E = { ek= (vstart, vend, ncw, nccw, [fk(u)])} – ребро, где vstart– начало ребра, vend– конец ребра, ncw– следующее (предыдущее) ребро в той грани, где ekвстречается в положительном направлении обхода вершин, nccw– следующее (предыдущее) ребро в другой грани (где ekвстречается в отрицательном направлении);

F = { (first_edge, sign [fj(u,v)]) } – грань (или патч fj), где first_edge – первое ребро в цепочке представления грани, sign – знак (+/-), определяющий, в каком направлении встречается ребро first_edge в данной грани.

«Крылатое» представление является наиболее удобным для реализации важнейших алгоритмов над геометрическими объектами:

- проверка правильности задания;

- алгоритмы для полигональных моделей, связанные с обходом ребер (выделение плоских контуров, упрощение модели путем удаления граней и другие).

Кроме того, не более чем за линейное время можно восстановить любую другую топологию, следуя по цепочкам связей между элементами.

В объемном представлении базовыми являются (3\2)-элементы или неявно представленные примитивы. Наиболее известны:

- воксели;

- метаболы;

- сплошные конструктивы.

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

  1. простейшая – набор одинаковых вокселей, аппроксимирующий область пространства, занимаемую объектом;

  2. V = { ({L} x {M} x {N}, {1,0}) } – элементу трехмерного массива вокселей размером L x M x N ставится в соответствие его заполненность (принадлежность объекту);

  3. октальное дерево – рекурсивное разбиение пространства на 8 частей. При этом устанавливается некоторый минимальный размер вокселя. Лист дерева помечается заполненным, если он полностью принадлежит объекту. Таким образом, топология представлена в виде дерева;

  4. PM-октальные деревья – это гибрид октального дерева и полигональной модели для уменьшения погрешности аппроксимации при достижении минимального размера вокселя в рекурсивном разбиении пространства.

Воксельное представление является очень удобным для реализации пространственных алгоритмов и теоретико-множественных операций над объектами (объединение, вычитание, пересечение), но обладает рядом недостатков, которые ограничивают область его применения:

- низкая точность для представления для большинства

объектов;

- большой объем занимаемой памяти.

Метаболы – это шары различного радиуса (r), которые могут взаимодействовать в зависимости от близости и радиуса взаимодействия (R): Сфера = (координаты, радиус, вещество). Взаимодействие выражается через появление дополнительной «материи» между ними (см. рис. 5). Топология, как таковая, здесь отсутствует.

Рис. 5. Взаимодействие двух метаболов

При представлении объекта в виде сплошных конструктивов используют два набора:

- базовый набор примитивов (параллелепипед, сфера, конус, цилиндр, тор, призма, пирамида и т.п.), являющихся структурными элементами объекта;

- базовый набор теоретико-множественных операций: унарного аффинного преобразования (T) и бинарных операций вычитания (-), пересечения (*), объединения (+). Данный набор определяет топологию модели, которая реализуется в виде формулы теории множеств.

Например, если мы имеем три примитива A, B, C и формулу (A + T(B)) * C, то это означает, что мы объединяем объект А с трансформацией объекта В и пересекаем его с объектом С. Преимущество данного способа представления заключается в том, что таким образом можно относительно легко моделировать достаточно сложные объекты.

3 Параметрическое задание геометрических объектов

Как упоминалось ранее, параметрическое задание подразумевает функциональную зависимость координат точек объекта от некоторых параметров. Для линий используется функция одной переменной:

p = F(u) = (Fx(u), Fy(u), Fz(u)),

а для поверхности – функция двух переменных:

p = F(u, v) = (Fx(u, v), Fy(u, v), Fz(u, v)).

Вообще говоря, вид функции F может произвольной. Но на практике ограничивают набор функций, которые представляют наиболее часто встречающиеся геометрические объекты, из которых затем составляют более сложные. К ним относятся:

1) плоские линии: прямые, окружности, эллипсы и их отрезки, спирали Архимеда, эквидистанты;

2) пространственные линии: спирали;

3) поверхности: плоские, сферические, цилиндрические, конические, торические, пружинные.

Как видно, их перечень невелик. А потому для моделирования кривых и поверхностей, которые не вписываются в этот набор, используется сплайны и патчи. Наиболее употребляемые виды сплайнов: сплайны Безье, B-сплайны (NURBS). Среди патчей можно выделить: патчи NURBS, Безье-патчи, N-патчи, билинейные патчи, патчи Кунса. Тем не менее большинство пакетов использует эти инструменты для аппроксимации вышеперечисленных кривых и поверхностей и не имеют автоматических средств для аппроксимации пользовательский кривых (параболы, гиперболы, синусоиды) и поверхностей (параболоиды, конусы с образующей заданного вида и др.) с помощью перечисленных сплайнов и патчей.

Данная работа как раз и посвящается изучению и разрешению данной проблемы. Сформулируем основные задачи, которые должны быть при этом решены:

1) гибкость и универсальность определения пользовательских функций (расширяет область применения);

2) высокая скорость вычисления (обеспечивает возможность построения интерактивных приложений);

3) контролируемая точность аппроксимации функций (обеспечивает адекватность оценки полученных результатов);

4) минимизация результата аппроксимации (экономит память);

5) взаимодействие с другими системами;

6) универсализация механизма синтеза геометрических моделей.