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




Скачать 104.68 Kb.
НазваниеПоложение камеры Преобразования, определяющие положение и ориентацию объекта в мировой системе координат Перспективное проектирование
Дата публикации25.04.2013
Размер104.68 Kb.
ТипЛекция
litcey.ru > Астрономия > Лекция
Лекция №10…………………………………………………………….1
  • 11.1 Этапы создания графического объекта…………………….2


  • 11.2 Преобразования положения объекта……………………….3

  • 11.3 Положение камеры…………………………………………..4

  • 11.4 Преобразования, определяющие положение и

ориентацию объекта в мировой системе координат…………..5

  • 11.5 Перспективное проектирование…………………………….6

  • 11.6 Проектирование……………………………………………...8

  • 11.7 Композиция и перестановка преобразований…. … …. ….10

  • 11.8 Используемые геометрические преобразования..… ….….13

  • 11.9 Иерархия преобразования ……………………….…………14

  • 11.10 Уравнения плоскости ……………………………..……….18

  • 11.11Отсечение………………………………………………….20

Устюгова Елена группа 203

Иновенков Олег группа 203

^

11.1 Этапы создания графического объекта



Задание 3D объекта и его создание разбивается на несколько этапов, в процессе которых последовательно преобразуется система координат. Изначально объект задается в некоторой своей локальной системе координат (OCS-object coordinate system), которая затем размещается в мировой системе координат (WCS - world coordinate system). Далее определяем видовую систему координат (VCS – viewing coordinate system), задавая картинную плоскость, положение глаза (камеры) и систему координат камеры.




В
идовая система (VCS) может быть как правой, так и левой. Чаще всего, ось OZ направлена либо из экрана, либо в экран (что соответствует правой или левой системе координат при одинаковом направлении осей OX и OY). Определить является ли система координат правой или левой можно с помощью следующего мнемонического правила: если можно «взяться» правой рукой за ось OZ, так чтобы большой палец был направлен в сторону положительного направления оси, и затем рукой совместить поворотом вокруг оси OZ, ось OX и ось OY, то система координат является правой, если это можно проделать левой рукой, то левой.

На рисунке RHCS – right hand coordinate system (правая сторонняя система координат) , LHCS – left hand coordinate system (левая система координат).

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




Где OCS – object coordinate system (локальная система координат объекта)

WCS – world coordinate system (мировая система координат)

VCS – viewing coordinate system (видовая система координат)

CCS – clipping coordinate system (система координат клипа)

NDCS–normalized device coordinate system (нормализованная система координат устройства)

DCS – device coordinate system (система координат устройства)

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

Такое разбиение необходимо для максимальной переносимости системы и программ.
^ 11.2 Преобразования положения объекта
Используя библиотеку функций OpenGL различные преобразования можно осуществлять вызывая следующие функции:

  • Моделирующее преобразование: glTranslatef()

glRotatef()

glScalef()

  • Видовые преобразования (положение камеры, направление камеры и т.д ):

gluLookAt()

glFrustum()

  • Задание проекции: gluPerspective()

glOrtho()

gluOrtho2D()


  • Задание области видимости: glViewport()


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






^ 11.3 Положение камеры
Наиболее частым способом определения параметров камеры является определение следующих ее свойств:

  • Координаты камеры

  • Направление обзора

  • К
    оординаты вектора, определяющего вертикальное направление



Для задания положения камеры в графической библиотеке OpenGL предусмотрена специальная функция gluLookAt():

gluLookAt(ex,ey,ez,rx,ry,rz,ux,uy,uz),

где (ex,ey,ez) – положение камеры, (rx,ry,rz) – направление обзора, (ux,uy,uz) – координаты вектора, определяющего вертикальное направление.
Поскольку использование этой функции вызывает создание соответствующей матрицы и умножения на нее имеющейся, то проще всего для корректного задания новых параметров камеры выполнить следующую последовательность команд:

glMatrixMode(GL_MODELVIEW);

glLoadIdentity();

/*загружаем в качестве текущей единичную матрицу*/

gluLookAt(ex,ey,ez,rx,ry,rz,ux,uy,uz);

/*устанавливаем новые параметры камеры*/

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

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

Например, пусть в локальной системе координат объект имеет следующий вид,



а в мировой системе координат этот объект должен иметь другие координаты:


Такое преобразование осуществляется путем последовательности поворотов и параллельных переносов относительно начального положения:

Окончательный перенос объекта в нужное положение параллельным переносом.


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


Перспективное преобразование также как и остальные осуществляестя умножением на соответсвующую матрицу. Рассмотрим ее построение на следующем примере:

Имеем два подобных треугольника, следовательно y’/d=y/z или y’=y*d/z, аналогично x’=x*d/z. Тогда в матричной форме это преобразование будет иметь вид:


11.6 Проектирование

Основной задачей проектирования является перевод 3-х мерного объекта, заданного в видовой системе координат (VCS), в 2-х мерный объект нормализованной системы координат устройства (NDCS).

При проектировании отсекаются объекты, которые не попадают в область видимости, а также определяется множество значений z

(z[near; -far] ), для которого точки, имеющие значения координаты z , принадлежащие этому множеству, являются видимыми, а точки находящиеся слишком близко (z>(-1)*near) или слишком далеко

(z<(-1)*far) невидимыми.

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



Используя функции OpenGL, ортографическая проекция задается функциями:

  • glOrtho(left, right, bottom, top, near, far) - необходимо чтобы near >0 , far >0.

  • glOrtho2D(left, right, bottom, top) - аналог glOrtho() только near=0, far=1.


А
для перспективной проекции область видимости будет иметь вид:


Используя функции OpenGL, перспективная проекция задается функциями:

  • glFrustum(left, right, bottom, top, near, far) - необходимо чтобы near >0 , far >0.

  • gluPerespective(fovy,aspect,near,far) - параметр fovy задает угол видимости в направлении оси OY в градусах , центрированный относительно этой оси.


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



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



Это может быть осуществленно несколькими способами, например:




Заменяя (1) в (2), получим:



Замечания о матричном преобразовании


  • композиция преобразований не является коммутативной

  • матрицы преобразований могут быть перемножены между собой в одну

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





  • Преобразования обратимы ( матричные и др.), то есть: trans(a,b,c) trans(-a,-b,-c)=I

  • Преобразования могут восриниматься как изменения в системе координат

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


    1. Используемые геометрические преобразования.




Наиболее простой метод создания объектов – использование примитивов, таких как линии и многоугольники. На рисунке М – матрица преобразования, которая переводит точки (2D или 3D) в ликсельные координаты.

for each vertex i

new_vertex_list[i] = M * vertex_list [i]

scanconvert (new_vertex_list )
Вот эквивалент в OpenGL:

GlBegin( GL_POLYGON);

for each vertex i

glVertex3fv( vertex_list [i] );

glEnd();
Можно отметить несколько моментов:


  • GlVertex3fv():

  • Умножает вершину на M

  • Возвращает точки преобразования

  • GlBegin(): определяет режим рисования

  • GL_POINTS

  • GL_LINE_LOOP

  • GL_POLYGON

  • Матрица М спрятана (текущая матрица преобразования)


М может быть определена следующим образом:

glMatrixMode (GL_MODELVIEW);

glLoadIdentity();

glTranslatef( 2.0, 1.0, 0.0);

glRotatef( -3.14/2.0, 0.0, 0.0, 1.0);

glScalef( 2.0, 2.0, 2.0)


M = trans(2,1,0) rot(z,-90) scale(2,2,2)…
Другой способ загрузки М
glMatrixMode (GL_MODELVIEW);

glLoadMatrixf (M) ;


    1. Иерархия преобразований.


Рассмотрим модель руки с одним пальцем:



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




f1 : trans (d_hand,0,0)

rot(z,th1)

f2: trans(d1,0,0) rot(z,th2)

f3: trans(d2,0,0) rot (z,th3)
M=M*Thand

draw hand

M=M*Tf1

draw f1

M=M*Tf2

draw f2

M=M*Tf3

draw f3
Теперь представим, что мы хотим нарисовать руку с тремя одинаковыми пальцами. Мы можем создать более комплексный граф, который использовался в рассмотренном примере. Так как все пальцы описаны в системе координат, связаннной с рукой, необходимо сохранять эту систему , перед тем как рисовать каждый палец. Это сделано с помощью вызовов функций PUSHMATRIX() и POPMATRIX().
M
=M*Thand

Draw Hand

PushMatrix()

M=M*Tfla

draw_finger()

popMatrix()

pushMatrix()

M=M*Tflb

draw_finger()

popMatrix()

pushMatrix()

M=M*Tflc

draw_finger()

popMatrix()


draw_finger() {

draw f1

M=M*Tf2

draw f2

M=M*Tf3

draw f3

}
Большинство графических систем поддерживают стек для матрицы преобразования.




    1. ^ Уравнения плоскости.




Полное уравнение плоскости
A
x + By + Cz + D = F(x,y,z)


F(x,y,,z)=0 , если точка принадлежит плоскости.
Можно переписать:
F(P)=N.P+D

Параметрическое уравнение плоскости
^ Plane(s,t) = P0 + s(P1-P0) + t(P2-P0), обеспечивает неколлинеарность P0,P1,P2.

Plane(s,t) = P0 + s V1 + tV2, где V1,V2 базисные векторы.

Привиденное уравнение плоскости
z=-(A/C)x -(B/C)y -(D/C), если C не является нулем.

Пересечение плоскости и прямой
^ L(t) = Pa+t(Pb-Pa)
Подставляя в уравнение плоскости и решая относительно t, получим:




    1. Отсечение.





И алгоритм Кохена-Сазерленда, и алгоритм Сазерленда-Ходжмана могут быть расширены в трехмерном пространстве. Мы можем выбрать, где мы будем делать отсечение, например в VCS,CCS или NDCS. Хотя мы объясним это кратко, но существует недостаток отсечения в NDCS.

^ Отсечение в VCS
Оба алгоритма использовались в тестах для полупространств. Для видимых областей рассмотренных ниже, уравнения видимости плоскостей могут быть записаны в таком виде , чтобы все нормали указывали в область видимости. Если F(P)>0, тогда P принадлежит нужной области видимости.
left: x - left = 0

right: -x + right = 0

bottom: y - bottom = 0

top: -y + top = 0

front: -z - near = 0

back: z + far = 0
Это же может быть сделано для перспективы:
left: x + left*z/near = 0

right: -x - right*z/near = 0

bottom: y + bottom *z/near = 0

top: -y - top*z/near = 0

front: -z - near = 0

back: z + far = 0
Алгоритм Кохена-Сазерленда работает в 3-х мерном пространстве так же как и в 2-х мерном. Координаты вершины проверяются на попадание или непопадание. Если нет тривиального пересечния, то линия отсекается в одной из шести видимых плоскостей и проверяется снова.
Алгоритм Сазерленда-Ходжмана отсечения многоугольников работает подобным образом. Многоугольник также может быть усечен в одной из видимых плоскостей.

^ Отсечение в NDCS
NDCS является потенциально замечательной системой координат для отсечения, так как уравнения плоскости легко определяются и всегда остаются без изменений. Более того, линии в VCS – линии в NDCS и поэтому, казалось бы, что правильные пересечения могут быть посчитаны, несмотря на тот факт, что пространство NDCS имееет страннное искривление из-за его пост-перспективной части.
Потенциальная проблема отсечения в NDCS заключается в том , что знак глубины информации теряется, что показано в следующем примере.





Отсечение в СCS
Мы определим область отсечения в ССS с помощью области отсечения в NDCS:

-1 <= x/w <=1

Это означает, что в CCS мы будем иметь:

-w<= x <= w

Выглядеть это будет так:





Области отсечения аналогичны для Z и Y. Это иллюсрирует следующий пример:







Похожие:

Положение камеры Преобразования, определяющие положение и ориентацию объекта в мировой системе координат Перспективное проектирование iconАвтоматическое определение положения лазера и камеры по цифровым...
Оптическая лазерная триангуляция – один из самых точных и быстрых способов получения цифровых трехмерных моделей реальных объектов...
Положение камеры Преобразования, определяющие положение и ориентацию объекта в мировой системе координат Перспективное проектирование iconЗадача в некоторой общей декартовой системе координат
Как на плоскости, так и в пространстве возможно задание самых разнообразных систем координат. Выбор системы координат зависит от...
Положение камеры Преобразования, определяющие положение и ориентацию объекта в мировой системе координат Перспективное проектирование iconЛекция1 > Содержание: Аналитическая геометрия
Как известно, любая точка на плоскости определяется двумя координатами в какой- либо системе координат. Системы координат могут быть...
Положение камеры Преобразования, определяющие положение и ориентацию объекта в мировой системе координат Перспективное проектирование iconСистемы координат, проекции, преобразования координат и связанные с этим проблемы
Координаты задаются долготой (longitude) и широтой (latitude). Долгота и широта являются углами, отсчитанными от центра земли до...
Положение камеры Преобразования, определяющие положение и ориентацию объекта в мировой системе координат Перспективное проектирование iconПоложение о системе управления охраной труда
Настоящее Положение составлено на основе Положения о службе охраны труда в системе Министерства образования Российской Федерации...
Положение камеры Преобразования, определяющие положение и ориентацию объекта в мировой системе координат Перспективное проектирование iconПоложение о системе управления охраной труда
Настоящее Положение составлено на основе Положения о службе охраны труда в системе Министерства образования Российской Федерации...
Положение камеры Преобразования, определяющие положение и ориентацию объекта в мировой системе координат Перспективное проектирование iconРешение. Коэффициенты Ламе в цилиндрической системе координат выражаются формулами
Эти понятия мы вводили в декартовой прямоугольной системе координат. Отметим, что для векторного поля также можно рассматривать градиенты...
Положение камеры Преобразования, определяющие положение и ориентацию объекта в мировой системе координат Перспективное проектирование iconПоложение о системе оценки качества образования муниципального общеобразовательного...
Положение о школьной системе оценки качества образования (далее Положение) определяет структуру школьной системы оценки качества...
Положение камеры Преобразования, определяющие положение и ориентацию объекта в мировой системе координат Перспективное проектирование iconПоложение о внутришкольной системе оценки качества образования в...
Положение о внутришкольной системе оценки качества образования (далее – положение) устанавливает единые требования при реализации...
Положение камеры Преобразования, определяющие положение и ориентацию объекта в мировой системе координат Перспективное проектирование iconПоложение о стажировочной площадке
Настоящее положение определяет условия создания и порядок функционирования стажировочной площадки в системе образования мр «Газимуро-Заводский...
Вы можете разместить ссылку на наш сайт:
Школьные материалы


При копировании материала укажите ссылку © 2013
контакты
litcey.ru
Главная страница