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

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

Схема простой программы.






Общая схема формирования сцены с помощью библиотеки OpenGL будет включать в себя следующие этапы:

1. Инициализация библиотеки;

2. Задание общих параметров сцены;

3. Очистка буфров;

4. Задание параметров фрагмента сцены;

5. Вывод описания фрагмента;

6. Повторение пунктов 4 и 5 до полного формирования сцены;

7. Переключение буферов кадра. Для случая двойной буферизации;

8. Закрытие библиотеки.

 

При инициализации библиотеки обязательно устанавливается связь с устройством вывода, обычно это окно, предоставляемое операционной системой. Для нормальной работы необходимо получить контекст устройства, настроить для него параметры, связанные с обработкой пикселей, создать контекст воспроизведения OpenGL и установить его текущим для данного устройства.

Мы не будем вникать в детали такой настройки и ограничимся использованием процедуры InitOpenGL из библиотеки GLU.

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

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

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

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

· Большой объем предварительных вычислений, выполняемых вручную;

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

Рассмотрим реализацию процесса сборки сцены с помощью конвейера OpenGL. Композиция всех геометрических преобразований, определяемых пользователем, накапливается в матрице модельно-видового преобразования. Следовательно, можно сказать, что связь между мировой координатной системой и координатной системой, в которой будет описываться вывод в данной точке программы, определяется состоянием матрицы видового преобразования (композицией преобразований накопленных в матрице к моменту достижения данной точки программы). Например, если мы выполним команду glLoadIndentity, предварительно установив текущей матрицу видового преобразования, то можно сказать, что вывод будет производиться в координатной системе, совпадающей с мировой. Если после этого с помощью команды glTranslate сформировать преобразование переноса на вектор T, то вывод будет осуществляться в новой координатной системе, начало которой сдвинуто относительно начала мировой системы координат на вектор Т.

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







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



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

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

ТЕОРЕТИЧЕСКАЯ МЕХАНИКА Статика является частью теоретической механики, изучающей условия, при ко­торых тело находится под действием заданной системы сил...

Теория усилителей. Схема Основная масса современных аналоговых и аналого-цифровых электронных устройств выполняется на специализированных микросхемах...

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

Деятельность сестер милосердия общин Красного Креста ярко проявилась в период Тритоны – интервалы, в которых содержится три тона. К тритонам относятся увеличенная кварта (ув.4) и уменьшенная квинта (ум.5). Их можно построить на ступенях натурального и гармонического мажора и минора.  ...

Понятие о синдроме нарушения бронхиальной проходимости и его клинические проявления Синдром нарушения бронхиальной проходимости (бронхообструктивный синдром) – это патологическое состояние...

ТЕХНИКА ПОСЕВА, МЕТОДЫ ВЫДЕЛЕНИЯ ЧИСТЫХ КУЛЬТУР И КУЛЬТУРАЛЬНЫЕ СВОЙСТВА МИКРООРГАНИЗМОВ. ОПРЕДЕЛЕНИЕ КОЛИЧЕСТВА БАКТЕРИЙ Цель занятия. Освоить технику посева микроорганизмов на плотные и жидкие питательные среды и методы выделения чис­тых бактериальных культур. Ознакомить студентов с основными культуральными характеристиками микроорганизмов и методами определения...

САНИТАРНО-МИКРОБИОЛОГИЧЕСКОЕ ИССЛЕДОВАНИЕ ВОДЫ, ВОЗДУХА И ПОЧВЫ Цель занятия.Ознакомить студентов с основными методами и показателями...

Меры безопасности при обращении с оружием и боеприпасами 64. Получение (сдача) оружия и боеприпасов для проведения стрельб осуществляется в установленном порядке[1]. 65. Безопасность при проведении стрельб обеспечивается...

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