Дипломная работа





НазваниеДипломная работа
страница5/12
Дата публикации14.12.2014
Размер0.6 Mb.
ТипДиплом
100-bal.ru > Информатика > Диплом
1   2   3   4   5   6   7   8   9   ...   12

2.5 Видовые трансформации


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

OpenGl позволяет производить видовые преобразования несколькими способами.

  1. Использование одной или нескольких команд модельных преобразований (glTranslate*() или glRotate*()). Можно представить эффект этих преобразований как перемещении камеры, или как перемещение всех объектов сцены относительно стационарной камеры.

  2. Использование команды библиотеки утилит gluLookAt() для определения точки и направления обзора. Эта команда инкапсулирует в себе серию поворотов и переносов.

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

Команда gluLookAt().

Часто программисты конструируют сцену в районе начала координат или в некотором другом месте, а затем хотят посмотреть на нее с определенной точки обзора для получения лучшего вида. Команда из библиотеки утилит gluLookAt() разработана как раз для подобных целей. Она принимает три набора аргументов, которые задают точку наблюдения, прицельную точку (точку, на которую направлена камера) и направление, которое следует считать верхним. Прицельная точка, как правило, находится где-то в середине сцены. Несколько сложнее задать верный вектор верхнего направления. Например, для трехмерного симулятора полетов, верхним является направление перпендикулярное крыльям самолета.
void gluLookAt (GLdouble eyex, GLdouble eyey, GLdouble eyez, GLdouble centerx, GLdouble centery, GLdouble centerz, GLdouble upx, GLdouble upy, GLdouble upz);

Функция задает видовую матрицу и умножает на нее текущую матрицу. Выбранная точка обзора задается аргументами eyex, eyey и eyez. Аргументы centerx, centery и centerz задают любую точку на линии обзора, но обычно они задают точку где-то в середине обозреваемой сцены. Аргументы upz, upyи upz определяют, какое направление считается верхним (то есть направление от дна до вершины объема видимости).
По умолчанию камера находится в начале координат, направлена вдоль отрицательного направления оси z, а вектор верхнего направления совпадает с положительным направлением оси y.

GluLookAt() является частью библиотеки утилит, а не базовой командой OpenGL. Это произошло не потому, что gluLookAt() бесполезна, а потому, что она инкапсулирует несколько базовых команд OpenGL, а именно glTranslate*() и glRotate*(). Чтобы отменить действия gluLookAt(), необходимо поместить камеру в начало координат и установить направление обзора совпадающим с отрицательным направлением оси z (то есть привести видовое преобразование к ситуации по умолчанию).

2.6 Списки отображения


Список отображения (display list) —список команд или список вывода — это группа команд OpenGL, сохраненных для последующего выполнения. Когда список отображения вызывается на выполнение, команды обрабатываются в порядке их появления в списке. Большинство команд OpenGL может сохраняться в списке или обрабатываться в режиме непосредственного выполнения.

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

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

С целью поднятия производительности команды списков отображения OpenGL кэшируются, причем так, что однажды созданный список отображения не может быть модифицирован. В противном случае выигрыш в производительности был бы сведен к минимуму за счет поиска по списку и лишних операций управления памятью. Если бы части списка отображения были изменяемыми, распределение и высвобождение памяти привело бы к дефрагментации памяти. Любые модификации, внесенные реализацией OpenGL в порядок команд списка отображения с целью повышения эффективности рендеринга, все равно потребовали бы отката.

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

  • Матричные операции. Большинство матричных операций требуют вычисления обратных матриц. В зависимости от реализации OpenGL, обе матрицы — расчетная и обратная — сохраняются или не сохраняются в списке отображения.

  • Растровые двоичные карты и изображения. При компиляции списка отображения OpenGL может преобразовать данные в представление, предпочтительное для оборудования. Это оказывает существенный эффект на скорость рисования растровых символов, поскольку символьные строки обычно состоят из совокупности небольших образов (двоичных карт).

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

1   2   3   4   5   6   7   8   9   ...   12

Похожие:

Дипломная работа iconДипломная работа
Мамзеров Д. В., навигация и интерфейс в средах виртуальной реальности, дипломная работа
Дипломная работа iconДипломная работа по теме: “ Интерактивная база данных по дендроклиматологии” Работу
Моя дипломная работа очень актуальна, потому что дендроклиматология – малоизученная и малоизвестная область биологии. Дендроклиматология...
Дипломная работа iconДипломная работа содержит 104 листа, 6 таблиц, 35 рисунков. Тема:...
Данная дипломная работа посвящена проблемам разработки и внедрения устройств связи высокочастотного и сверхвысокочастотного диапазона....
Дипломная работа iconНазвание организации
Заголовок «Дипломная работа» или «Курсовая работа»: Times New Roman, 14 (вопреки П. 113), по центру. Затем – 2 пустые строки
Дипломная работа iconРеферат. Содержание
Дипломная работа (далее просто работа) выполняется на листах формата А4 с размерами полей: сверху – 20 мм, снизу – 20мм, справа –...
Дипломная работа icon2 требования к содержанию работы
Дипломная работа (далее просто работа) выполняется на листах формата А4 с соблюдением следующих размеров полей: правое – 10 мм, верхнее...
Дипломная работа iconДипломная работа

Дипломная работа iconРеферат. Содержание
Дипломная работа (далее просто работа) выполняется на листах формата А4 с размерами полей: сверху – 20 мм, снизу –20мм, справа- 15мм,...
Дипломная работа iconДипломная работа пгу 030501

Дипломная работа iconКнига 1
Объем работы – реферат от 12 до 25 печатных листов, курсовая работа – от 20 до 30 страниц, дипломная работа 60-70 страниц компьютерного...
Дипломная работа iconТребования к дипломной работе учащихся 10 11-х классов
Дипломная работа заключительная работа учебно-исследовательского характера, выполняемая оканчивающими университеты, экономические,...
Дипломная работа iconЛатинские заимствования в современном русском литературном языке (дипломная работа)

Дипломная работа iconДипломная работа Создание программы помогающей изучать английский язык

Дипломная работа iconДипломная работа на тему: «Совершенствование организации поддержки...
Дипломная работа «Совершенствование организации поддержки и развития малого предпринимательства в муниципальном районе на примере...
Дипломная работа iconДипломная работа
Соответствие современной интернет-рекламы психологическим особенностям подростков
Дипломная работа iconДипломная работа не менее 65 страниц без приложения
Курсовая работа выполняется на одной стороне листа белой бумаги формата А4 (210 Х 297 мм). Иллюстрированный материал (таблицы, схемы,...


Школьные материалы


При копировании материала укажите ссылку © 2013
контакты
100-bal.ru
Поиск