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

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

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





При выполнении предыдущей лабораторной работы использовались параллельная (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; просмотров: 642. Нарушение авторских прав; Мы поможем в написании вашей работы!




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


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


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


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

Кран машиниста усл. № 394 – назначение и устройство Кран машиниста условный номер 394 предназначен для управления тормозами поезда...

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

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

Йодометрия. Характеристика метода Метод йодометрии основан на ОВ-реакциях, связанных с превращением I2 в ионы I- и обратно...

Броматометрия и бромометрия Броматометрический метод основан на окислении вос­становителей броматом калия в кислой среде...

Метод Фольгарда (роданометрия или тиоцианатометрия) Метод Фольгарда основан на применении в качестве осадителя титрованного раствора, содержащего роданид-ионы SCN...

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