Заказ работы

Заказать
Каталог тем
Каталог бесплатных ресурсов

Графическая библиотека OpenGL. Ю.М. Баяковский. А.В. Игнатенко. А.И. Фролов

Глава 1
Основы OpenGL
1.1. Основные возможности
Описывать возможности OpenGL мы будем через функции его
библиотеки. Все функции можно разделить на пять категорий:
 Функции описания примитивов определяют объекты нижнего
уровня иерархии (примитивы), которые способна отображать
графическая подсистема. В OpenGL в качестве примитивов
выступают точки, линии, многоугольники и т.д.
 Функции описания источников света служат для описания
положения и параметров источников света, расположенных в
трехмерной сцене.
 Функции задания атрибутов. С помощью задания атрибутов
программист определяет, как будут выглядеть на экране
отображаемые объекты. Другими словами, если с помощью
примитивов определяется, что появится на экране, то
атрибуты определяют способ вывода на экран. В качестве
атрибутов OpenGL позволяет задавать цвет, характеристики
материала, текстуры, параметры освещения.
 Функции визуализации позволяет задать положение
наблюдателя в виртуальном пространстве, параметры
объектива камеры. Зная эти параметры, система сможет не
только правильно построить изображение, но и отсечь
объекты, оказавшиеся вне поля зрения.
 Набор функций геометрических преобразований позволяют
программисту выполнять различные преобразования объектов
– поворот, перенос, масштабирование.
При этом OpenGL может выполнять дополнительные операции,
такие как использование сплайнов для построения линий и
11
поверхностей, удаление невидимых фрагментов изображений, работа с
изображениями на уровне пикселей и т.д.
1.2. Интерфейс OpenGL
OpenGL состоит из набора библиотек. Все базовые функции
хранятся в основной библиотеке, для обозначения которой в
дальнейшем мы будем использовать аббревиатуру GL. Помимо
основной, OpenGL включает в себя несколько дополнительных
библиотек.
Первая из них – библиотека утилит GL(GLU – GL Utility). Все
функции этой библиотеки определены через базовые функции GL. В
состав GLU вошла реализация более сложных функций, таких как
набор популярных геометрических примитивов (куб, шар, цилиндр,
диск), функции построения сплайнов, реализация дополнительных
операций над матрицами и т.п.

OpenGL не включает в себя никаких специальных команд для
работы с окнами или ввода информации от пользователя. Поэтому были
созданы специальные переносимые библиотеки для обеспечения часто
используемых функций взаимодействия с пользователем и для
отображения информации с помощью оконной подсистемы. Наиболее
популярной является библиотека GLUT (GL Utility Toolkit). Формально
GLUT не входит в OpenGL, но de facto включается почти во все его
дистрибутивы и имеет реализации для различных платформ. GLUT
предоставляет только минимально необходимый набор функций для
создания OpenGL-приложения. Функционально аналогичная библиотека GLX менее популярна. В дальнейшем в этом пособии в
качестве основной будет рассматриваться GLUT.
Кроме того, функции, специфичные для конкретной оконной
подсистемы, обычно входят в ее прикладной программный интерфейс.
Так, функции, поддерживающие выполнение OpenGL, есть в составе
Win32 API и X Window. На рисунке схематически представлена
организация системы библиотек в версии, работающей под управлением
системы Windows. Аналогичная организация используется и в других
версиях OpenGL.
1.3. Архитектура OpenGL
Функции OpenGL реализованы в модели клиент-сервер. Приложение
выступает в роли клиента – оно вырабатывает команды, а сервер
OpenGL интерпретирует и выполняет их. Сам сервер может находиться
как на том же компьютере, на котором находится клиент (например, в
виде динамически загружаемой библиотеки – DLL), так и на другом
(при этом может быть использован специальный протокол передачи
данных между машинами).
GL обрабатывает и рисует в буфере кадра графические примитивы с
учетом некоторого числа выбранных режимов. Каждый примитив – это
точка, отрезок, многоугольник и т.д. Каждый режим может быть
изменен независимо от других. Определение примитивов, выбор
режимов и другие операции описываются с помощью команд в форме
вызовов функций прикладной библиотеки.
Примитивы определяются набором из одной или более вершин
(vertex). Вершина определяет точку, конец отрезка или угол
многоугольника. С каждой вершиной ассоциируются некоторые данные
(координаты, цвет, нормаль, текстурные координаты и т.д.), называемые
атрибутами. В подавляющем большинстве случаев каждая вершина
обрабатывается независимо от других.
С точки зрения архитектуры графическая система OpenGL является
конвейером, состоящим из нескольких последовательных этапов
обработки графических данных.
Команды OpenGL всегда обрабатываются в том порядке, в котором
они поступают, хотя могут происходить задержки перед тем, как
проявится эффект от их выполнения. В большинстве случаев OpenGL
предоставляет непосредственный интерфейс, т.е. определение объекта
вызывает его визуализацию в буфере кадра.



Размер файла: 866.2 Кбайт
Тип файла: pdf (Mime Type: application/pdf)
Заказ курсовой диплома или диссертации.

Горячая Линия


Вход для партнеров