Рефераты. Интерактивные графические системы p> (ос= k(w) (опт - коэффициент ослабления излучения оптической системы, равный произведению коэффициента виньетирования k(w) и коэффициента пропускания оптики (опт

(ср - пропускание слоя среды между объектом и оптической системой
Учитывая, что d( = Sопт cos w/(H2/cos2 (()=(D2опт cos w cos2 ((/(4 H2), получаем dФ = (D2опт L cos w cos3 (( k(w) (ос(срdS/(4H2) (***)
Величина освещенности в плоскости первичного изображения определяется следующим образом : Eиз = dФ/dS(=(D2опт L cos w cos3 (( k(w) (ос(ср dS/(4H2 dS()
Т.к. согласно (*) dS/dS(= cos3w cos-3 (((H/f)2, то окончательно получаем

Eиз = (/4 (Dопт/f)2 L k(w) (опт (ср cos4w (****)

Описание геометрических форм

Описание поверхностей

Параметрическое описание поверхностей

Поверхности, заданные в форме

Х = Х(u,t) где u,t - параметры, изменяющиеся в

Y = Y(u,t) заданных пределах,

Z = Z(u,t), относятся к классу параметрических. Для одной пары значений (u,t) вычисляется одна точка поверхности.

Параметрическое задание плоскостей.

Плоскость, проходящая через точку r0 =(х0,y0,z0) и векторы
[pic]исходящие из этой точки определяются уравнением:

[pic][pic] или

[pic][pic]

Данное уравнение описывает прямоугольник со сторонами, равными [pic]и
[pic], если [pic] , а u,t([0,1]. Нормаль к поверхности можно получить, вычислив векторное произведение: [pic]

Эллипсоид

Каноническое уравнение:

[pic] a, b,c- длины полуосей эллипсоида

Параметрическое задание: x ( a cos(cos( где ( - долгота , ( - ширина y ( b cos(cos( z ( c sin(

Нормаль к поверхности эллипсоида определяется:

[pic]

Общие случаи нормали к поверхности

[pic] [pic]

[pic]

Пример: Описание тороида

[pic] (, u ( [0 , 2(] где a- радиус кольцевого «баллона» тороида и R - расстояние от центра тороида до оси «баллона».

Преимущества параметрического описания поверхности :

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

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

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

Недостаток параметрического описания поверхности:

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

Описание поверхностей неявными функциями

Поверхности описываются функцией вида f(X,Y,Z)=0, где X,Y,Z - координаты из пространства объекта.

Наиболее распространены функции первой и второй степени, существуют аналитические методы для решения уравнений третей и четвертой степени, однако они применяются редко.

AX+BY+CZ+D=0 описывает плоскость

AX2+BY2+CZ2+2DXY+2EYZ+2GX+2HY+2JZ+K=0 в зависимости от значений коэффициентов можно описывать пары плоскостей (вырожденный случай), конусы, гиперболоиды, параболоиды и эллипсоиды.

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

Поточечное описание поверхностей.

Метод заключается в задании поверхности множеством принадлежащих ей точек. Следовательно качество изображения при этом методе зависит от количества точек и их расположения.

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

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

Исходная информация о поточечно описанных объектах представляется в виде матрицы трехмерных координат точек.

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

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

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

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

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

[pic]

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

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

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

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

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

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

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

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

[pic]

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

Модель приемника света

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

[pic]

В плоскости xoy экранной системы располагается матрица точечных приемников, где c( и d( шаг сетки рецепторов по оси x и y. Координаты рецептора (xij, yij,0) могут быть вычислены на основании его индексов: xij = c((j- J/2 -1/2) yij = d((I/2-i+1/2), где I,J - максимальное значение соответствующих индексов

Преобразование координат из экранной системы в объектную xyz(XYZ

[X,Y,Z,1]=[x,y,z,1] M(

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

[pic]

[pic]

[pic]

Модель объекта

Примитивы

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

Определение: Функциональным объемом называется некоторая часть пространства (не обязательно конечная), охватываемая поверхностью одной функции. Принадлежащим телу объекта считается подпространство, выделяемое поверхностью f (x,y,z)=0 в любой точке которого, значение скалярного поля f
(x,y,z)>0. Такое подпространство именуется положительным.

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

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

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

Пространственные комбинации примитивов

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

Формализованная модель объекта

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

Взаимное положение объекта

Взаимное положение характеризуется через функции принадлежности
((x,y,z;Ф), где x,y,z - координаты точки, Ф - обозначение примитива, объекта или фигуры. Соответственно функция:

[pic]
Пусть примитив Ф состоит из k уравнений [pic], тогда

[pic]

Определение видимых и затененных точек

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

Пересечение светового луча с примитивом

Пусть примитив d-ый содержит Kd поверхностей, которые организованны по правилу положительности внутренней области, тогда для определения всех точек пересечения прямой, исходящей из ij рецептора через центр проекции F и d-ого примитива необходимо решить Kd систему уравнений следующего вида:

[pic]

Для каждой из таких систем возможны 3 случая: система не имеет решений одно или больше количество пересечений (счетное число пересечений) бесконечное число пересечений (если луч лежит на поверхности)

Все точки решения принадлежат поверхности примитива.

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

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

1) (X1-XF)2 + (Y1-YF)2 + (Z1-ZF)2 ( (XB-XF)2 + (YB-YF)2 + (ZB-ZF)2

2) (X2-XF)2 + (Y2-YF)2 + (Z2-ZF)2 ( (XB-XF)2 + (YB-YF)2 + (ZB-ZF)2 , где (X1, Y1, Z1) - ближайшая точка

(X2, Y2, Z2) - самая удаленная точка

B - текущий номер точки действительного пересечения луча с примитивом.

Информация о пересечении луча с d-м примитивом представляется в виде матрицы координат точек пересечения:

[pic] и матрицы номеров поверхностей, которым принадлежат точки X1Y1Z1 и X2Y2Z2
:

[pic]

Алгоритм определения точек пересечения прямой и примитива

1. Устанавливаем kd=1

( k - номер обрабатываемой поверхности в примитиве d)

Устанавливаем FLAG=0

(индикатор отсутствия (0) или наличия (1) решений)

2. Решается система (*)

3. Если решений нет, то увеличиваем kd на 1 (до тех пор, пока kd ( Kd ) и возврат на шаг 2.

4. Если решения есть (в общем случае [pic] решений), то устанавливаем

[pic](где [pic]- номер текущего решения поверхности под номером kd)

5. Для всех Kd поверхностей, кроме kd проверяют условие : [pic] (где (

- текущий номер поверхности в d-ом примитиве)

6. Если условие не выполняется, то увеличиваем [pic]на 1 (пока [pic]) и возврат на шаг 5.

7. Если условие 5 выполнено и FLAG=0, то точка [pic]размещается в две первые строки матрицы d, а в две первые строки матрицы WHO заносится номер kd.

8. Если условие 5 выполнено и FLAG=1, то

(**) точка [pic]ближе к точке (XF, YF, ZF), чем точка, находящаяся в первой строке матрицы T.

(***) точка [pic]дальше от точки (XF, YF, ZF), чем точка, находящаяся во второй строке матрицы T.

[pic]

9. FLAG=1, увеличиваем kd на 1 (пока kd ( Kd) и возврат на шаг 2.

Пересечение луча с комбинацией примитива.

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

[pic]

Матрица Т переформируется таким образом, чтобы в её первой строке помещалась точка, ближайшая к источнику луча, порядок остальных точек может быть произвольным. Синхронно сортируется матрица WHO для того, чтобы не терялась связь между точкой и конкретной поверхностью. Когда таким образом выделена ближайшая точка (XБ, YБ , ZБ) следует проверить её принадлежность к поверхности объекта. Для этого оценивается положение точки относительно каждого из примитива объекта. Положение точки и каждого примитива определяется функцией принадлежности, а относительно положения точки (XБ,
YБ , ZБ) и объекта О = f ( П1, . . , ПD ), устанавливается путём попарной проверки функции принадлежности ( (XБ, YБ , ZБ, ПD ) и функции d = 1(1)D

( d = 1. . D

Пример:

[pic]

O = ( П1 ( П2 ) ( П3

Световой луч пересекает объект в точках с 1 по 6, ближайшей к источнику луча является точка 1. Функция принадлежности этой точки:

( ( X1, Y1, Z1, П1 ) = -1

( ( X1, Y1, Z1, П2 ) = 0

( ( X1, Y1, Z1, П3 ) = -1

( ( X1, Y1, Z1, П1 ( П2 ) = -1

( ( X1, Y1, Z1, ( П1 ( П2 ) ( П3 ) = -1

Таким образом точка 1 будучи ближайшей к источнику луча не является видимой, так как находится вне объекта.

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

Если объект и прямая заданы в объектной системе координат, то наиболее общий критерий к ближайшей точке
( ХF - ХБ )2 + ( YF - YБ )2 + ( ZF - ZБ )2 (( ( ХF -Xn )2 + (YF - Yn )2 +
( ZF - Zn )2 для любого n.

В частных случаях критерий может быть упрощен:

(XБ, YБ , ZБ) : abs (ХF - ХБ ) (( abs ( ХF -Xn ) для ( n

(XБ, YБ , ZБ) : abs (YF - YБ ) (( abs (YF - Yn ) для ( n

(XБ, YБ , ZБ) : abs ( ZF - ZБ ) (( abs ( ZF - Zn ) для ( n

Применение упрощенных критериев оправдано в том случае, когда априорно известно не параллельность любого светового луча плоскостям Yz, Xz и XY.

Например: последний критерий может быть использован при моделировании аэрофотосъёмки.

Определение затенённых точек.

Точки объекта видимые рецепторами подразделяются на два класса:
- точки, освещённые прямым светом;
- точки, находящиеся в тени.

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

[pic]

Для определения затенённости точки (XБ, YБ , ZБ) необходимо провести световой луч из источника света на видимую точку и найти точки пересечения этой прямой со всеми поверхностями, входящими в состав объекта. Поскольку объект состоит из примитивов, то первоначально определяется пересечение луча с поверхностью каждого примитива. Если примитив содержит K поверхностей вида fk (X,Y,Z) = 0, (k = 1,K), то K раз решается система:

X - XB Y - YB

Z - ZB

------------- = ------------- = ------------
XSUN - XB YSUN - YB ZSUN -

ZB'

fk (X,Y,Z) = 0

Затем среди множества решений отбирают действительное, а среди них точку, ближайшую к источнику света и лежащую на поверхности объекта.

Примечание: Алгоритм определения затенённости идентичен алгоритму определения видимости, но точка центра проектирования заменяется на точку источника излучения, а точка центра рецептора на видимую точку. Если видимая из рецептора точка является ближайшей к источнику света, то она освещена прямыми лучами.

Проведя данные вычисления для всех I*J рецепторов удаётся получить информацию о координатах видимой из каждого рецептора точки (XB , YB ,
ZB)ij, о номере примитива, номере функции поверхности, которой принадлежит точка и признак затенённости / освещённости.

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



Страницы: 1, 2



2012 © Все права защищены
При использовании материалов активная ссылка на источник обязательна.