Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ВОПРОСЫ_И_Лекции по КГ

.pdf
Скачиваний:
31
Добавлен:
22.03.2016
Размер:
2.17 Mб
Скачать

(2,4) (4,4)

(1,1) (2,1)

Поворот (вращение)

Точки могут быть повернуты на угол θ относительно начала координат. Рис. Поворот точки

P’(x’,y’)

30о

P(x,y)

Координаты точки P: x′=xcosθ-ysinθ

y=xsinθ+ycosθ

В матричной форме:

x' y' xy *

cos

sin

 

 

 

 

sin

cos

Или P′=P*R, где R - матрица поворота

Положительное значение соответствует повороту против часовой стрелки, отрицательное – по часовой.

Рис. Поворот объекта θ=45о

91

Однородные координаты и двумерные преобразования

Преобразования переноса, масштабирования и поворота в матричной форме имеют вид:

P′=P+T

P′=P*S

P′=P*R

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

В однородных координатах точка P(x,y) записывается как P(W*x,W*y,W), где W – масштабный множитель, не равный нулю.

При этом, если точка задана в однородных координатах P(X,Y,W), то можно найти ее декартовы координаты:

X=X/W, y=Y/WЕсли W=1, то операция деления не нужна:

P(x,y,1), P′(x′,y′,1)

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

Уравнение переноса запишется в виде матрицы преобразования:

 

 

1

0

0

 

x' y'1 xy1 *

0

1

0

или P′=P*T(Dx,Dy), где

 

 

 

 

 

 

 

 

Dx

Dy

1

 

 

 

 

 

 

 

 

1

0

0

 

T (Dx, Dy)

 

0

1

0

 

 

 

 

 

 

 

 

Dx

Dy

1

 

 

 

 

 

 

 

Перемножив, получим: x' y'1 x Dx, y Dy,1

Масштабирование

Уравнение масштабирования в матричной форме имеет вид:

 

Sx

0

0

x' y'1 xy1 *

 

0

Sy 0

 

 

 

 

 

 

 

0

0

1

 

 

 

 

 

92

 

Sx

0

0

 

Так как

S (Sx, Sy)

0

Sy

0

имеем: P′=P*S(Sx,Sy)

 

 

 

 

 

 

 

 

0

0

1

 

 

 

 

 

 

 

Перемножим и получим:

[x′y′1]=[x*Sx y*Sy 1]

Поворот

Уравнение поворота имеет вид:

 

cos

sin

0

x' y'1 xy1 *

sin

cos

0

 

 

 

 

 

 

 

0

0

1

 

 

 

 

 

 

cos

sin

0

Так как

R( ) sin

cos

0

 

 

 

 

 

 

 

0

0

1

 

 

 

 

 

получим P' P * R( )

Перемножим и получим:

 

x' y'1 x cos y sin x sin y cos

1

Матричное представление трехмерных преобразований

Итак, двумерные преобразования описываются матрицами размером 3х3, а трехмерные преобразования представлены в виде матриц 4х4.

Трехмерная точка P(x,y,z) записывается в однородных координатах следующим образом:

P(W*x,W*y,W*z,W), W≠0.

Если W=1, то точка представлена в виде: P(x,y,z,1).

Перенос

Трехмерный перенос – это расширение двумерного переноса

1

0

0

0

 

 

 

 

 

T (Dx, Dy, Dz)

0

1

0

0

 

0

0

1

0

 

 

 

 

 

Dx

Dy

Dz

1

P′=P*T(Dx,Dy,Dz)

[x′ y ′z′ 1]=[x y z 1]*T(Dx,Dy,Dz)=[x+Dx y+Dy z+Dz 1]

Масштабирование

Трехмерное масштабирование – расширение двумерного масштабирования.

Sx

0

0

0

 

 

 

 

 

S (Sx, Sy, Sz)

0

Sy

0

0

 

0

0

Sz

0

 

 

 

 

 

 

0

0

0

1

P′=P*S(Sx,Sy,Sz) или

[x′ y ′z′ 1]=[x y z 1]*S(Sx,Sy,Sz)=[x*Sx y*Sy z*Sz 1]

Поворот

93

Поворот возможен вокруг осей x, y, z.

Двумерный поворот является поворотом вокруг оси z:

cos

sin

0

0

sin

cos

0

0

Rz( )

 

 

 

 

 

0

0

1

0

 

 

 

 

 

 

0

0

0

1

Матрица поворота вокруг оси x:

 

 

 

 

 

 

 

1

0

0

0

 

 

0

cos

sin

0

Rx( )

 

 

 

 

 

0

sin

cos

0

 

 

 

 

 

 

 

0

0

0

1

Матрица поворота вокруг оси y:

 

cos

0

sin

0

 

 

 

 

 

 

Ry( )

 

0

1

0

0

sin

0

cos

0

 

 

 

 

 

 

 

 

0

0

0

1

Преобразование как изменение системы координат

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

94

Существует три способа преобразования объектов:

1)Все объекты описаны в глобальной СК и с помощью преобразований приводятся к новым позициям в той же глобальной СК.

Рис. Преобразование объектов в рамках одной глобальной СК

2 -перенос

 

 

 

 

 

 

ГлобальнаяСК

ГлобальнаяСК

 

 

 

 

1 -поворот

2)Каждый объект задан в собственной локальной СК и затем преобразуется в глобальную СК.

Рис. Преобразование объектов из локальной СК в глобальную СК

ЛокальнаяСК

Локальная СК

ГлобальнаяСК

 

3)Происходит преобразование систем координат с помощью определения новой глобальной СК относительно локальной СК.

Рис. Преобразование объектов путем преобразования глобальной СК относительно локальной СК

95

Локальная СК

 

 

ГлобальнаяСК

ГлобальнаяСК

Итак, можно проводить преобразования самих объектов и систем координат, в которых объекты описаны.

Моделирование Основные этапы 3D моделирования

Вупрощенном виде для пространственного моделирования объекта требуется:

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

-спроектировать и создать виртуальные материалы, по физическим свойствам визуализации похожие на реальные

-присвоить материалы разным частям поверхности объекта

-настроить физические параметры пространства, в котором будет действовать объект – задать освещение, гравитацию, свойства атмосферы,

-свойства взаимодействующих объектов и поверхностей

-задать траектории движения объектов

-рассчитать результирующую последовательность кадров

-наложить поверхностные эффекты на итоговый анимационный ролик

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

96

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

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

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

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

-поверхность с диффузным отражением без бликов

-поверхность со структурированными микронеровностями

-поверхность со специальным распределением микронеровностей с учетом взаимных перекрытий

-модель, позволяющая дополнительно учитывать поляризацию света

-модель, позволяющая корректировать направления отражения и параметры преломления света

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

Аналогом равномерного светового фона служит растворенный свет. Он характеризуется только светом и интенсивностью

Удаленный не точечный источник называют удаленным светом. Ему присваиваются конкретные геометрические параметры

Точечный источник света, который равномерно испускает свет во всех направлениях и имеет координаты

Направленный источник света, который характеризуется местоположением, направлением светового потока, углами раствора полного конуса света и его наиболее яркого пятна.

97

После завершения конструирования в визуализации объекта приступают к его оживлению, т. е. заданию параметров движения.

Процесс расчета реалистичных изображений называют рендерингом (визуализацией).

Геометрическая модель

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

Виды геометрических моделей

Геометрические модели

Двумерные

 

Трехмерные

 

 

 

Каркасные

 

Сплошные

 

Граничные

 

Поверхностные

 

 

 

 

 

 

 

Воксельные Конструктивные

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

-геометрические данные – координаты точек, уравнения прямых, окружностей;

-топологические данные – отрезок, соединяющий две точки, контур, определенный базовыми объектами;

-структурные данные – комплекс базовых элементов виде дерева;

-оформительские данные – размерные линии, тексты, штриховка;

98

- реляционные данные – отношения между элементами, например, элемент А касается элемента В.

Трехмерное моделирование

Типы данных

-элементы нулевого уровня – двумерные элементы: точки, отрезки, кривые, контуры, дуги;

-элементы первого уровня – поверхности;

-элементы второго уровня – объемы.

Из этих элементов можно с помощью разных операций создавать комплексы

Каркасные поверхности

Среди трехмерных моделей первыми появились каркасные. В каркасной модели хранится информация двух типов:

топологическая – ребра, которые определяются вершинами; геометрическая – координаты вершин.

Это самый простой и примитивный способ передачи формы объемного тела. Многие прикладные программы 3d-графики для быстрого эскизного

изображения поверхности выводят на экран дисплея не все ее точки, а лишь то небольшое количество, которое достаточно реалистично передает характер искривления поверхности в пространстве. Совокупность таких точек образует каркас – систему линий на поверхности. Эти условные линии разбивают поверхность на ячейки, граничащие друг с другом по ребрам, которые соединяются в вершинах. В зависимости от способа описания поверхности строятся соответствующие каркасные линии. Важный момент при построении каркасных моделей – это разумный выбор числа интервалов дискретизации, который определяет размер ячеек и расстояние между каркасными линиями. Ячейки каркасных поверхностей могут быть: прозрачными и непрозрачными; объемными и плоскими, которые называются гранями; полигональными и криволинейными.

Каркасная модель с прозрачными гранями

модель с плоскими гранями

модель с объемной гранью

В случае прозрачной плоской каркасной поверхности достаточно вывести на экран все ее ребра в произвольном порядке. Каркасное изображение объекта с

99

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

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

Сплошная модель

Сплошная модель включает в объект как граничные, так и внутренние точки. Сплошная, объемная или твердотельная модель охватывает все точки на поверхности объекта. Описание сплошными телами подразумевает перечисление вокселей – мельчайших 3d-ячеек, которые заполняют объект, или конструирование сложной формы как композиции небольшого числа простых объемных примитивов (куб, сфера, конус, цилиндр), Это позволяет производить декомпозицию сложного объекта на простые составляющие (кубы, сферы, конусы) и строить разнообразные композиции из простых примитивов. Процесс композиции заключается в выполнении аффинных преобразований примитивов для создания нужных форм в нужном месте объема и булевых операций с формами для создания единого объекта. Это напоминает строительный конструктор. За счет небольшого числа примитивов и четырех булевых операций (отрицание примитива – т. е. дополнение его до пространства; объединение примитивов, пересечение примитивов, исключение, т. е. вычитание одного примитива из другого) конструктивный подход к описанию сложных объектов и сцен позволяет уменьшить память и трудоемкость построения сцены.

1.1 Воксельное представление

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

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

области пространства трехмерный массив cijk .Элемент массива равен 1, если куб cijk представляет собой область, занятую неким объектом, и 0 в противном случае. В некоторых случаях удобно применять некоторые промежуточные значение, задавая тем самым плотность в данной точке пространства. Как легко видеть (см. рисунок), мы получаем трехмерную модель интересующего нас объекта.

100