<<
>>

Создание графических моделей

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

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

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

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

ше, чем обычно.

На рис. 4.1 показана система координат, на которой точке М с координатами (х; у) в евклидовой плоскости Р ставится в соответствие точка М' с координатами (х; у, г) в пространстве V. Очевидно, что вектор, соединяющий начало координат с точкой М', однозначно определяет ее положение на евклидовой плоскости Р'. Из проективной геометрии известно, что для задания направляющего радиус-вектора (вектора, соединяющего точку с началом координат) достаточно трех чисел:              Х2,              Х3.              И,              следовательцо,              определив эти

числа, можно задать положение точки М и ее проекции М’.

Отметим, что декартовы координаты (х; у) и обобщенные X , Х2, Х3 связаны отношениями


Следовательно, для уменьшения объема вычислительных операций можно положить X = 1.

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

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

общего уравнения прямой: А х ¦ B y • С 0; уравнения прямой, проходящей через две точки:

X у 1

. или х, (/,              1              -              0;

*2 Уgt; 1 параметрического уравнения прямой:

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

(х, - х., lt; дг().

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

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

Общее уравнение кривой второго порядка

апх2 + 2а]гху + а22у2 + 2а,,х *• 2а.гяу + а33 = 0

может быть использовано для описания любого частного случая, если положить

border="1" cellspacing="0" cellpadding="0"> «п “и “и

“п а12

, А «л игг Ч.м а’1 О,., ч,,

I - an + a22, D -

Тогда для параболы D = О, A 0, гиперболы I) lt; О, А * 0, эллипса D gt; О, А *¦ О, А/1 lt; 0 (у окружности дополнительно 1~ - 4D ).

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

Простейшим способом задания нерегулярных форм является кривая, описываемая интерполяционным многочленом Лагранжа, для функции, представленной массивом с неравномерным приращением абсциссы:

У,

(х, -х0) (х, -х,) ...(Х-Х,) ...(х, -х„)

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

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

lt;/(*) = •

В отличие от интерполяционного многочлена Лагранжа кубический сплайн задается для каждого из интервалов [х^х,, |, и поэтому редактирование сплайна не всегда приводит к пересчету функции во всем диапазоне от х, до х . Так как на каждом из I              1              I "

интервалов Ix^x^J, сплайн у(х) определяется четырьмя коэффициентами, то для его полного построения необходимо найти всего 4п чисел (они находятся с учетом граничных условий и исходя из условия непрерывности второй производной на каждом из интервалов).

Другим способом задания кубической кривой является ее параметрическая запись:

х(?) = axt3 + bxt2 + cxt + dx;

y(t) = avt3 +byt2 + cyt + dy\

z(t) - a;t3 + bzt2 + c2t + dz.

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

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

Ах + By + Cz + D = 0; поверхности второго порядка:

апх2 + а22у2 + a33z2 + 2аиху + 2a13xz + 2агзуг + 2аих + 2а24у +

+ 2 a3iz + а44 = 0; бикубической поверхности, заданной параметрически (приведено только уравнение для х, т.к. уравнения для у и z выглядят аналогично):

x(s, t) = o^s'V1 + a12.s''f2 + aus't + a,,s'* * a.us2t3 + a.,2s~t2 t-

+ a23s2t + +a21.s"’ + ajj.s/3 + a32st2 t a.^st -t a:ils +¦ а41/я +¦

+ ai2t2ai3t + a u.

Кроме того, используются также специальные типы поверхностных форм: Поверхности типа экструзий. Название происходит от англ. extrusion - выдавливание, которое и поясняет способ получения экструзийных поверхностей: путем математического задания одной линии (образующей) и ее распространения вдоль другой линии (направляющей), представленной такой же или любой другой функцией. При этом поверхности вращения, которые также относятся к данному типу, задаются как набор боковых поверхностей «выдавленных» усеченных конусов, примыкающих друг к другу торцами. Полигональная сетка. Представляет собой сетку из многоугольников неправильной формы, причем смежные вершины и ребра соседних многоугольников являются общими для любого участка сетки. Каждый многоугольник сетки может быть задан: набором координат его вершин:

Р = ((x],yi,zl),(x2,y2,z2),...,(xn,yn,zn)); набором указателей в списке вершин:

P = (Vl,V2,...,Vn), V, =(х,,у1,г1 ); набором ребер:

Р = (Я,,Я2,...,              ),              Я, = ((*,,*,.,),(*/,,у„.Мг.,2,.,)) -

или другим способом.

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

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

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

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

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


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

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

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

Как известно [102], изменение положения точки в плоской координатной системе (рис. 4.3) может быть выполнено пересчетом ее координат по таким формулам: сдвиг точки вдоль координатных осей (рис. 4.3а):

х' = х+х„, у' = у + у0, или | у’ | = | х у | + | х0 у0\;


поворот точки относительно начала координат (рис. 4.36): х = х cos(a) - у sin(a)

cos(u) sin(a) -sin(a) cos(a)

у - x ¦ sin(u) + у ¦ cos(a) масштабирование вдоль координатных осей (рис. 4.3в):

к, О

х' = kx ¦ х, у = kyy, или | х у | = | дг у

о к..

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

Для комплексного редактирования, включающего все виды элементарных преобразований, необходимо выполнить операции сложения (сдвиг) и умножения (поворот и масштабирование) матриц. Чтобы выразить подобные преобразования в матричном виде, желательно, чтобы строки и столбцы матриц деформирования имели одинаковый размер (п = 3 - для плоской задачи и п = 4 - для объемной). Достигнуть этого можно, используя однородные координаты X,, Х2, Х3 [180]. Если положить Х3 = 1, то х = X , у = Х2, и тогда для плоской задачи соответствующие матрицы переноса, масштабирования и поворота примут вид:

х' у' 1| = I х у 1 I

У о

/>кх 0 0 0 К о 0 0 1

cos(a) sin(a) 0 -sin(a) cos(a) 0 0 1

Приведенные зависимости показывают, что во всех случаях операции преобразования точек, заданных матрицей обобщенных координат Т (х; у: 1), сводятся к умножению матрицы-

строки координат (Т) на матрицу переноса П (Т' - Т ¦ II), матрицу масштабирования М (Т' — Т ¦ М) или матрицу поворота R(T = Т ¦ R). Следовательно, комплексное преобразование, включающее ряд элементарных, будет представлять собой произведение требуемых матриц. Например, поворот вокруг произвольной точки, который может быть выполнен последовательным переносом точки в начало координат, ее поворотом вокруг оси координат и обратным переносом в первоначальное положение, выражается произведением Т’ = Т ¦ /7, • R ¦ П

Поступая аналогично тому, как это было сделано для плоской задачи, три координаты (дг; у\ г), задающие положение точки пространственной модели, заменяются четырьмя числами (лг; у; z; 1), являющимися ее обобщенными пространственными координатами. Такой переход дает возможность воспользоваться матричной записью операций деформирования. Тогда матрицы трехмерного переноса, масштабирования и вращения вокруг координатных осей (OX, OY) будут записаны как:

1

0

0

0

к

0

0

0

0

1

0

0

м =

0

К

0

0

0

0

1

0

,

0

0

А?,

0

*0

Уо

*0

1

0

0

0

1

1

0

0

0

cos(P)

0

- sin(P)

0

0

cos(a)

sin(a)

0

=

0

1

0

0

0

- sin(a)

cos(a)

0

1/

sin(P)

0

COS(P)

0

0

0

0

1

0

0

0

1

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

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

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

об              отсечении невидимых участков модели, которые не подлежат выводу.

Очевидным для плоской задачи является решение системы уравнений


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


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

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

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

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

1

0

0

0

1

0

0

0

'

0

0

0

0

0

1

0

0

0

0

0

0

0

1

0

0

м

-

0

0

0

0

хпг

0

0

1

0

ут

0

0

1

0

0

0

0

1

0

0

0

1

0

0

0

1

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

0,82 cos(30°)

0,82 sin(30°)

0

0

- 0,82 cos(30')

0,82 sin(30°)

0

0

0,82

0,82

0

0

0

0

0

1

Аналогичным образом определяются матрицы преобразования для прямоугольных и косоугольных проекций. Например, для прямоугольной диметрической проекции, у которой ось ОХ наклонена к границам окна визуализации на угол а = 7° 10', OY - на угол р = 41°25', ось OZ перпендикулярна им и масштабируется в два раза:

cos(7”10)              sin(7°10')              0              0 5 cos (41° 25') 0,5 sin (41° 25') 0 0 1              0              0.

0              0              0              1

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

10              0              0

0 cos(p)              sin(ip)              0

0 - sin (р) cos (ф) 0 0 0              0              1

К

0

0

0

1

0

0

0

тх ¦ cos(a)

тх ¦ sin(a) 0

0

0

К

0

0

0

1

0

0

- тпу ¦ cos(P)

ту ¦ sin(P) 0

0

0

0

К

0

0

0

1

0

тг

т, 0

0’

0

0

0

1

*0

Уо

1

0

0 0

1

для примера

на рис.

4.4

принято ф = 25°,

аг

ц

II

II

J55"

II

1,5

тх = ту = тг ~ 0.82, а = Р 30°. При этом для осуществления редактирования объемной фигуры в целом производится пересчет координат всех ее точек с приложением матриц преобразования к каждой из точек.

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

I

Рис. 4.4. Проекционные преобразования

проецирования. Однако подход к составлению матрицы проецирования для центральной проекции будет несколько отличаться от приведенных.

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

Так как для центральной проекции характерно следующее соотношение между координатами точки объекта и координатами проекции:

ап _ am              ,              х ab

              или х              gt;

on от              г

то длину ab = L можно считать коэффициентом пропорциональности и матрицу преобразований для центральной проекции записать в виде:

1 0 0 0
0 1 0 0
0 0 1 1/ L
0 0 0 0

М.

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

х =¦ 0; у = 0; z = 0; х = conct^; у conct; z = conct..

То же справедливо и в случае центральной проекции, когда видимый объем определяется плоскостями [172]:

х = z\ и =- z\ z = z ; х ^ -z; у = ~г; z = z

’              ’              nun              u              niax

Задача значительно упрощается, если все вычисления выполняются в рамках нормированных координат, приведенных к элементарному кубу с размерами: х = conctr = 1, у -- conct 1, Z const, = 1.

Создание фотореалистических изображений

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

Среди всего многообразия способов создания объемных векторных моделей можно выделить три основных, получивших наибольшее распространение. Это модели, основанные на описании объекта сплошными поверхностями, ячеистыми поверхностями (типа «проволочная сетка») и сплошными геометрическими конструктивами.

Каждый из этих методов имеет свои достоинства и недостатки. Не рассматривая их, отметим, что в настоящее время наиболее разработанными и, как следствие, наиболее подходящими для создания трехмерных объектов векторной графики являются модели, созданные на основе сплошных геометрических кон

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

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

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

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

|*i              ~У2\^1-

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

|х, -Х2| lt; 1,              |//,-1/,|lt;1.

Рис. 4.6. Растровое разложение отрезка: а) четырехсвязанная развертка; б) восьмисвязанная развертка

Главной задачей алгоритма развертки является вычисление координат пикселов, лежащих вблизи линии на двухмерной растровой сетке и являющихся соседними. Решить эту задачу можно, например, используя алгоритм Брезенхейма, который интерпретирует ее следующим образом: для всех участков отрезка L, проведенного на квадратной сетке с единичным шагом, найти ближайший из двух вертикальных противолежащих от отрезка узлов сетки (рис. 4.7).

Из рис. 4.7 следует, что отрезок может быть описан уравнением:

У = У\ +——— •(* - *,), при дг е [х,,х2], 0 lt; у2 - ух lt; х2 - х„

X, - X,

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

а = у, +1- Уг ~У' (х, +1), Ъ= (Уг ~У|) (х, +1)-уг ¦*2 ¦*! (^“2 — ^1 )

Для упрощения вычислений следует ввести критериальное число d = (х2 - x,)/s, и в случае если d gt; 0, то значение у увеличивать на 1, а само d - на 2 (Дх - Ду). При невыполнении этого условия значение у не изменять, а значение d заменять на 2 • Ду.

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

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

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

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

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

Для параллельного проецирования это означает, что на одном проекционном луче лежат точки, у которых Xt = X , У| = У., и для принятия вывода об их видимости достаточно сравнить соответствующие координаты Z. и Z .

При центральном проецировании на одном проекционном луче лежат точки, для которых выполняются равенства XJZ — = XIZ и YJZ, = У /Z. В случае если модель содержит большое число точек, то операции деления необходимо многократно повторить, и время их выполнения может быть весьма значительным. Поэтому перед нахождением точек, подлежащих анализу, обычно проводится редактирование изображения объекта, например, приведением его к виду, соответствующему параллельному проецированию. Достигнуть этого можно, поместив центр проекции в бесконечность и выполнив ряд трансформаций изображения с помощью матриц преобразования. При этом быстродействие повышается за счет отказа от малопроизводительных математических процедур (деления), и оно будет еще существенней, если аппаратно предусмотрены соответствующие операции

с матрицами, например, если процессоры выполнены по технологии ММХ.

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

Алгоритмом метода предусмотрено, что для вывода в окно визуализации произвольной поверхности ее модель переводится в свое растровое представление, и для каждого пиксела, принадлежащего поверхности, находится его глубина. В случае, если эта глубина меньше значения глубины, хранящегося в г-буфе- ре, пиксел рисуется, и его глубина заносится в г-буфер. Первоначально массив глубин, хранящийся в г-буфере инициализируется «+lt;»¦ и постепенно замещается вновь назначенными значениями.

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

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

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

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

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

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

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

Ilpoi раммная реализация

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

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

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

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

Версия Flash MX содержит значительно расширенный набор инструментов для работы с векторной графикой. Например, инструмент «Реп* в новой версии позволяет в более широких пределах редактировать кривые Безье, изменяя положение и длину направляющих линий, что, в свою очередь, дает возможность для создания объектов практически любой формы. В связи с изменением интерфейса появилось несколько новых палитр или добавилась новая функциональность. Так, палитра Mixer позволяет при помощи полосы спектра более точно подобрать необходимый цвет, а палитра Swathes - выбирать цвет, исходя из активной цветовой таблицы. Палитра Fill устанавливает цвет и заливку, которая использована в объекте. Палитра Stroke настраивает контур обводки объекта, в частности цвет и тип линии (сплошная, штрихпунктирная и так далее).

Еще более значительные возможности появились в части программирования сценариев: встроенный редактор ActionScript из ограниченного набора операций превратился в популярный язык сценариев, работающий в двух режимах - стандартном и экспертном. При работе в стандартном режиме для записи программного кода сценария применяется панель Actions. С ее помощью создание программного кода (скриптов) выполняется путем выбора опции из меню и списков. В экспертном режиме текст программного кода вводится непосредственно в окно редактирования скрипта (Script рапе). При этом экспертный режим работы редактора сценариев отличается предельной гибкостью. Так, набирать текст сценария можно вручную, как в обычном текстовом редакторе, но при этом будут доступны все средства ввода операций, имеющиеся в стандартном режиме. В обоих режимах подсказки для кода помогают завершить команды и вставить свойства и события. Начиная с версии Flash MX, программный код можно присоединить к кнопке, мувиклипу или кадру для создания той интерактивности, которая требуется по ходу изучения учебного материала. Например, на рис. 4.9 показана виртуальная модель измерительного прибора (микрометра), управление которой осуществляется командными кнопками, каждой из которых отвечает командный код, включающий скрипты ActionScript, с помощью которых и осуществляется изменения в изображении отдельных элементов прибора.

Рис. 4.9. Flash-модель

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

Моделирование виртуальной реальности VRM (Virtual Reality’ Modelling). VRM - это одна из технологий мультиме-

дна, позволяющая передавать в сети Интернет, приближенные к реальным изображениям объемных детален. Как следствие, она широко используется для представления графической информации в электронных учебных материалах в виде тре\мерных интерактивных виртуальных моделей. Так же, как и Flash, в ее основе лежит векторное описание моделей, однако технология YRM выгодно отличается тем, что создаваемые модели являются трехмерными и тем самым более достоверно передают информацию о моделируемом объекте. В настоящее время технология VRM является общепризнанным стандартом 3D графики в Интернете.

Первоначально технология развивалась как специальный язык (VRML - Virtual Reality Modelling Language), используемый для описания трехмерных объектов и виртуальных сцен. Первая версия программы на основе VRML была создана компанией Silicon Graphics и представляла собой формат описания статических объектов. Во второй версии VRML (разработана компанией Silicon Graphics в сотрудничестве с компаниями Sony и Mitre) добавились более сложные интерактивные возможности и анимация.

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

По назначению и способу реализации различают четыре наиболее используемых класса узлов. Узлы простой геометрии (Simple Geometry Nodes) определяют геометрию объектов и графа сцены в целом. Узлы свойств (Property Nodes) определяют способ, по которому браузер воспроизводит узлы простой геометрии, материал модели, текстуру, освещенность и т.д. Узлы групп (Group Nodes) группируют отдельные узлы в коллекции узлов таким образом, что с ними можно обращаться как с одним общим объектом. И, наконец, Web Nodes указывают на узлы- потомки, размещенные в любом мести сервера или сети.

Каждый узел содержит набор параметров - полей различного типа. Например, поля SFBool, SFFloat, SFString и другие

позволяют задавать значения данным (логические, с плавающей занято», строковые...). Поле geometry позволяет задать геометрию объекта, а поле SFColor - его цвет. Специальный тип данных SFRotation задает вращение объекта вокруг координатных осей. Одним из основных типов полей является объектный - SFNode. С Рис. 4./0. VRML-модель помощью полей этого вида осуществляется связь - иерархия объектов, т.е. для каждого из узлов имеется набор полей определяющих его свойства и способ представления. При этом если имя поля начинается с приставки SF (как в примере), то поле предназначено для ввода единичных (single) значений. Если же в начале названия поля указаны буквы MF, то в него возможен ввод значений-векторов (multiple).

На рис. 4.10 показана трехмерная модель и ниже текст VRML-файла, с помощью которого формировалось изображение модели. В данном примере узел Coordinated используется для определения пространственных точек, координаты которых записаны в поле point. Узел IndexedFaceSet ‘содержит поле coordlndex с информацией о номерах точек (2, 4, 1, 1 и т.д.), являющихся вершинами соответствующих граней фигуры, показанной на рисунке (значение - 1 указывает на то, что определение грани завершено и следующее значение - первая вершина следующей грани). Такой моделью можно управлять с помощью мыши или клавиатуры: поворачивать в разные стороны, заставлять вращаться, рассматривать с нескольких позиций, переключая камеры и т.д.

#VRML VI.0 ascii Separator {

material {ambientColor (1 1 2] shininess [0,2] transparency [0]

gt;

Coordinate3 {

point |-10 -5 0, -10 -5 2, -10 -4 3,

-10 5 0, -10 5 3, 0 Г) 0. 0 5

2, 0 -4 3, 0 5 0, 0 5 3|

}

IndexedFaceSet{

coordlndex [ 2, 4, 1, -1, 1, 4, 3, -1, 1,              3, 0, - 1, 1,              0, 6,              1,              6,              0, 5,

-1, 5, 8, 6, -1, 6, 8, 9, -1, 6, 9, 7, -1,              1, 9, 3, -1,              3, 9,              8, -1,              7, 9, -1, 2, 9, 4, -1, 8, о, 3, -1, 3, 5, 0,              1, 6, 7, 1,              1, 1,              7,              2,              1|

}

gt;

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

С целью развития VRML-технологии в последнее время разработано большое количество программных продуктов, в той или иной степени успешно справляющихся с задачей создания фотореалистических трехмерных изображений на основе векторной графики. Среди них следует отметить Vecta 3D (IdeaWorks3D), ViewPoint (Metastream), 3D Flash Animator (Insane) и др. В основе предлагаемых нововведений лежит использование специализированных трехмерных редакторов, которые позволяют при создании эффекта объемности отказаться от раскрашивания «под объем». При этом сначала создается реальная объемная модель сцены, устанавливаются камеры, перспектива, объектам назначается анимация, а затем при помощи специальных конверторов, сцена переводится в соответ

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

<< | >>
Источник: Алексеев А.Н.. Дистанционное              обучение              инженерным              специальностям:              Мо нография. 2005

Еще по теме Создание графических моделей:

  1. Создание стереографических имитационных моделей
  2. УПРАЖНЕНИЕ НА СОЗДАНИЕ ИДЕАЛЬНОЙ МОДЕЛИ
  3. Представление графической информации
  4. ГРАФИЧЕСКИЕ СРЕДСТВА В ИНТЕРАКТИВНОМ МОДЕЛИРОВАНИИ
  5. § 27. Графическое счисление пути
  6. создании и эксплуатации виртуального банка информационных ресурсов. Разработка модели виртуального маршрута и маршрутизации информационных ресурсов
  7. § 4. ОБУЧЕНИЕ ЯЗЫКУ ГРАФИЧЕСКИХ ПОСТРОЕНИЙНА ОСНОВЕ СЕМИОТИЧЕСКИХ ЗНАНИЙ
  8. Приложение 1 Графическая форма алгоритма действий
  9. 14.3. Понятие «МОДЕЛЬ» 14.3.1. Общее представление о модели
  10. Пример 10.3 ПРИМЕР ГРАФИЧЕСКОЙ РЕЙТИНГОВОЙ ШКАЛЫ