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

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

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





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

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

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

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

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

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

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

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

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

 

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

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

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

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

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

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

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

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

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

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







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




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


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


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


Логические цифровые микросхемы Более сложные элементы цифровой схемотехники (триггеры, мультиплексоры, декодеры и т.д.) не имеют...

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

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

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

Случайной величины Плотностью распределения вероятностей непрерывной случайной величины Х называют функцию f(x) – первую производную от функции распределения F(x): Понятие плотность распределения вероятностей случайной величины Х для дискретной величины неприменима...

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

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

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