Автор работы: Пользователь скрыл имя, 04 Апреля 2014 в 08:08, курсовая работа
Системы машинной графики отображают отработанную информацию о процессах или объектах в виде синтезированного отображения на экране дисплея или другой экранной плоскости. Для систем машинной графики источником входной информации является не сами физические процессы, а их математические модели. Такие модели в общем случае представляют упорядоченную совокупность данных, числовых характеристик, параметров, математических и логических зависимостей, отображающих структуру, свойства, взаимосвязи и отношения между элементами объекта, а также между объектом и его окружением.
Преимущества параметрического описания поверхности :
Недостаток параметрического описания поверхности:
Параметрическое описание предусматривает, что исходной позицией луча, строящего изображение, является точка на объекте, что затрудняет применение алгоритмов синтеза изображений с иной начальной позиции луча. Например: алгоритм трассировки лучей. Это свойство ограничивает изобразительные возможности: ограничено моделирование теней, передача прозрачности и зеркального отображения соседних объектов.
Поверхности описываются функцией вида f(X,Y,Z)=0, где X,Y,Z - координаты из пространства объекта.
Наиболее распространены функции первой и второй степени, существуют аналитические методы для решения уравнений третей и четвертой степени, однако они применяются редко.
AX+BY+CZ+D=0 описывает плоскость
AX2+BY2+CZ2+2DXY+2EYZ+2GX+2HY+
Пример: Неявная форма задания поверхностей хорошо приспособлена для твердотельного или объемного описания объектов. Неявная форма хорошо сочетается с алгоритмами трассировки лучей т.к. легко определяются взаимное положение точки и поверхности такого типа, а также точки пересечения прямой и поверхности.
Поточечное описание поверхностей.
Метод заключается в задании поверхности множеством принадлежащих ей точек. Следовательно качество изображения при этом методе зависит от количества точек и их расположения.
Поточечное описание применяется в тех случаях, когда поверхность очень сложна и не обладает гладкостью, а детальное представление геометрических особенностей важно для практики.
Пример: Участки грунта на других планетах, формы небесных тел, информация о которых получена в результате спутниковых съемок. Микрообъекты, снятые с помощью электронных микроскопов.
Исходная информация о поточечно описанных объектах представляется в виде матрицы трехмерных координат точек.
Трассировка лучей связана с моделированием геометрического пути каждого светового луча, участвующего в построении изображения. Трассировка лучей - моделирование лучевой оптики, применительно к задачам компьютерной графики.
Основная идея метода
ЭВМ повторяет все геометрические преобразования, происходящие с каждым световым лучам на пути источник - объект - приемник. Хотя бесконечное количество, для построения изображения достаточно ограничится рассмотрением тех лучей, которые попадают в центр рецептора или исходящих из ограниченного числа точек на изображаемую поверхность. Подобно некоторым разделам геометрической оптики при компьютерном моделировании реальный ход лучей в объективах не анализируется. Для построения изображения используют кординальные элементы оптической системы (главная и фокальная точки, а также соответствующие плоскости).
В соответствии с принципами геометрической оптики сопряженные точки в пространстве предметов и изображений лежат на прямой, проходящей через заднюю главную точку оптической системы. На основании закона обратимости можно синтезировать путь луча как в направлении объект - изображение, так и в обратном. Отсюда различия между прямой и обратной трассировкой лучей.
При прямой трассировке за исходную позицию берется вычисляемая на изображаемой поверхности точка 1, из нее моделируется путь луча на источник света 2 и на приемник изображения - точка 3.
При обратной трассировке берется центр рецептора 1 на приемнике изображения и моделируется путь луча на объект 2 и далее на источник света - точка 3.
Сцена - совокупность изображаемых объектов, включая при необходимости поверхность основания.
Система координат сцены - правая прямоугольная система координат, общая для всей сцены Xc Yc Zc.
Объект - совокупность точек пространства, объединенных функциональной общностью с точки зрения конкретно-целевой задачи.
Соответственно для каждого объекта вводится своя правая прямоугольная система координат XYZ.
Экранная система координат - система координат X1Y1Z наблюдательной системы. Данная система координат выбирается левой.
По аналогии c физическими устройствами ось z соответствует главному лучу объектива, плоскость xy - задней фокальной плоскости, а центр проекции F располагается на оси OZ в точке (0,0,f) и сопоставляют с задней главной точкой объектива.
Так как исходной позицией для трассировки луча является центр рецептора, то алгоритм начинает работу с определения пространственного расположения всех рецепторов .
В плоскости 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, связывающей объектную правую и экранную левую системы.
Модель объекта
Примитивы
В методе обратной трассировки лучей трехмерные объекты выгодно представлять в виде отдельных строительных блоков, поверхности которых можно описать кривыми первого и второго порядка.
Определение: Функциональным объемом называется некоторая часть пространства (не обязательно конечная), охватываемая поверхностью одной функции. Принадлежащим телу объекта считается подпространство, выделяемое поверхностью f (x,y,z)=0 в любой точке которого, значение скалярного поля f (x,y,z)>0. Такое подпространство именуется положительным.
Определение: Объемный примитив - конечный участок пространства, ограниченный одной или несколькими функциональными поверхностями.
Определение: Плоский примитив - часть плоскости, ограниченная замкнутой линией, состоящей из конечного числа прямолинейных или криволинейных участков.
К структуре примитива относятся неизменное количество ограничивающих его поверхностей и вид функций, описывающих эти поверхности. Изменение формы примитива может достигаться варьированием параметров функций.
Из комбинаций примитивов образуются более сложные примитивы, называемые строительными блоками. Над примитивами определены следующие пространственные комбинации:
Формализованная модель объекта
Любой пространственный объект, образованный комбинацией примитивов может быть описан древовидной структурой, корнем которого является сам объект, вершинами - примитивы, а в узлах ветвей помещаются операции пространственных комбинаций.
Взаимное положение характеризуется через функции принадлежности j(x,y,z;Ф),
где x,y,z - координаты точки, Ф - обозначение примитива, объекта или фигуры. Соответственно функция:
Пусть примитив Ф состоит из k уравнений , тогда
Для определения освещенности изображения устанавливается видимость для каждого рецептора, ориентация нормали для видимых точек, их отражательную способность и т.д.
Пусть примитив d-ый содержит Kd поверхностей, которые организованны по правилу положительности внутренней области, тогда для определения всех точек пересечения прямой, исходящей из ij рецептора через центр проекции F и d-ого примитива необходимо решить Kd систему уравнений следующего вида:
Для каждой из таких систем возможны 3 случая:
Все точки решения принадлежат поверхности примитива.
Точка, принадлежащая некоторой поверхности, входящей в описание примитива, принадлежит поверхности примитива, если для всех остальных поверхностей точка находится в неотрицательной части поверхности.
Возможен случай, когда исследуемый луч проходит через границу смежных объектов примитива. Для разрешения этой проблемы отбираются две точки фактического перемещения луча и выпуклого примитива. Из всех возможных претендентов выбираются ближайшая и самая удаленная точки. В общем случае должны выполнятся условия:
1) (X1-XF)2 + (Y1-YF)2 + (Z1-ZF)2 £ (XB-XF)2 + (YB-YF)2 + (ZB-ZF)2
где (X1, Y1, Z1) - ближайшая точка
(X2, Y2, Z2) - самая удаленная точка
B - текущий номер точки действительного пересечения луча с примитивом.
Информация о пересечении луча с d-м примитивом представляется в виде матрицы координат точек пересечения:
и матрицы номеров
( k - номер обрабатываемой поверхности в примитиве d)
Устанавливаем FLAG=0
(индикатор отсутствия (0) или наличия (1) решений)
(**) точка ближе к точке (XF, YF, ZF), чем точка, находящаяся в первой строке матрицы T.
(***) точка дальше от точки (XF, YF, ZF), чем точка, находящаяся во второй строке матрицы T.
Пересечение луча с комбинацией примитива.
Когда задача определения точек пересечения луча с примитивами решена, в полученной совокупности необходимо выделить точку, ближайшую к наблюдателю, т. е. видимую. Для этого все матрицы WHO и матрица Т для каждого из примитивов сводятся в единые блочные матрицы WHO и Т.
Матрица Т переформируется таким образом, чтобы в её первой строке помещалась точка, ближайшая к источнику луча, порядок остальных точек может быть произвольным. Синхронно сортируется матрица WHO для того, чтобы не терялась связь между точкой и конкретной поверхностью. Когда таким образом выделена ближайшая точка (XБ, YБ , ZБ) следует проверить её принадлежность к поверхности объекта. Для этого оценивается положение точки относительно каждого из примитива объекта. Положение точки и каждого примитива определяется функцией принадлежности, а относительно положения точки (XБ, YБ , ZБ) и объекта О = f ( П1, . . , ПD ), устанавливается путём попарной проверки функции принадлежности j (XБ, YБ , ZБ, ПD ) и функции d = 1(1)D ( d = 1. . D
Пример:
O = ( П1 ï П2 ) ï П3
Световой луч пересекает объект в точках с 1 по 6, ближайшей к источнику луча является точка 1. Функция принадлежности этой точки:
j ( X1, Y1, Z1, П1 ) = -1
j ( X1, Y1, Z1, П2 ) = 0
j ( X1, Y1, Z1, П3 ) = -1
j ( X1, Y1, Z1, П1 ï П2 ) = -1
j ( X1, Y1, Z1, ( П1 ï П2 ) ï П3 ) = -1