Студопедия — Перспектива.
Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Перспектива.






При выполнении предыдущей лабораторной работы использовались параллельная (glOrtho) и центральная (glFrustum) проекции для задания перспективы.

В библиотеке GLU для этой цели служит функция gluPerspective, имеющая следующие 4 параметра: fovy – вертикальный угол конуса обзора; aspect – отношение размера области графического вывода по горизонтали к размеру по вертикали; near – расстояние до передней плоскости отсечения; far – расстояние до задней плоскости отсечения:

gluPerspective(fovy, aspect, near, far)

Для задания области отсечения графического вывода используется функция glViewPort.

Моделирование камеры.

В OpenGL точка обзора по умолчанию располагается в центре координат. Направление зрения – вдоль оси Z противоположно ее направлению (т.е. все, что рисуется, мы видим из центра координат).

Для моделирования камеры можно использовать видовые преобразования (матрица MODELVIEW):

glMatrixMode(GL_MODELVIEW); //видовая матрица

glLoadIdentity(); //установим единичную матрицу

glTranslatef(0, 0, -10); //сдвиг по оси Z вглубь экрана

glRotatef(27, 1, 0, 0); //поворот вокруг оси X

glRotatef(-19, 0, 1, 0); //поворот вокруг оси Y

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

Для моделирования камеры, которая направлена в произвольную точку пространства и расположена в заданном месте, удобно использовать функцию библиотеки GLU – gluLookAt, например:

glMatrixMode(GL_MODELVIEW); //видовая матрица

glLoadIdentity(); //установим единичную матрицу

gluLookAt (x, y, z, //местоположение камеры

xp, yp, zp, //камера смотрит в эту точку

0, 1, 0); //направление вектора «вверх»

Функция имеет 9 параметров: первые три параметра определяют координаты местоположения камеры; вторая тройка параметров задает координаты точки, в которую нацелена камера; последние три параметра – направление вектора «вверх» – используются для поворотов изображения в плоскости проецирования. Например:

gluLookAt (x, y, z, xp, yp, zp, 1, 0, 0);

определяет поворот изображения на 90 градусов (обычно Вы фотографируете, держа фотоаппарат горизонтально, но иногда бывает удобнее развернуть его вертикально, чтобы сфотографировать, например, высокое дерево – такой поворот и имеется в виду в примере).

Направление вектора «вверх» может быть любым, но не должно быть параллельно вектору нормали к плоскости наблюдения. Удобным является выбор вектора «вверх» параллельным оси Y, т.е. (0, 1, 0).

 

Задания к лабораторной работе.

Задание 1. Установите перспективу в соответствии с вариантом.

Задание 2. Пользуясь командами библиотеки glu изобразите рисунок в соответствии с вариантом.

Задание 3. Установите камеру таким образом, чтобы она была направлена в центр Вашего изображения.

Задание 4. Реализуйте перемещение камеры относительно объекта:

· Объезд камеры вокруг объекта;

· Приближение/удаление камеры относительно объекта;

Задание 5. Реализуйте движение объекта относительно камеры:

· Движение объекта влево/вправо относительно камеры;

· Вращение объекта вокруг своей оси.

Варианты к заданиям лабораторной работы.

1 вариант.

Угол вертикального обзора 45 градусов.

Расстояние до передней плоскости отсечения: 3

Расстояние до задней плоскости отсечения: 10

Объект «Космический корабль»

2 вариант.

Угол вертикального обзора 40 градусов.

Расстояние до передней плоскости отсечения: 5

Расстояние до задней плоскости отсечения: 10

Объект «Солнечная система»

3 вариант.

Угол вертикального обзора 30 градусов.

Расстояние до передней плоскости отсечения: 6

Расстояние до задней плоскости отсечения: 12

Объект «Тележка»

4 вариант.

Угол вертикального обзора 25 градусов.

Расстояние до передней плоскости отсечения: 3

Расстояние до задней плоскости отсечения: 8

Объект «Настольная лампа»

5 вариант.

Угол вертикального обзора 35 градусов.

Расстояние до передней плоскости отсечения: 2

Расстояние до задней плоскости отсечения: 9

Объект «Ваза»







Дата добавления: 2015-10-19; просмотров: 594. Нарушение авторских прав; Мы поможем в написании вашей работы!



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

Обзор компонентов Multisim Компоненты – это основа любой схемы, это все элементы, из которых она состоит. Multisim оперирует с двумя категориями...

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

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

ПРОФЕССИОНАЛЬНОЕ САМОВОСПИТАНИЕ И САМООБРАЗОВАНИЕ ПЕДАГОГА Воспитывать сегодня подрастающее поколение на со­временном уровне требований общества нельзя без по­стоянного обновления и обогащения своего профессио­нального педагогического потенциала...

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

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

Различия в философии античности, средневековья и Возрождения ♦Венцом античной философии было: Единое Благо, Мировой Ум, Мировая Душа, Космос...

Характерные черты немецкой классической философии 1. Особое понимание роли философии в истории человечества, в развитии мировой культуры. Классические немецкие философы полагали, что философия призвана быть критической совестью культуры, «душой» культуры. 2. Исследовались не только человеческая...

Обзор компонентов Multisim Компоненты – это основа любой схемы, это все элементы, из которых она состоит...

Studopedia.info - Студопедия - 2014-2024 год . (0.01 сек.) русская версия | украинская версия