Введение в Opengl 1 1 Что такое OpenGL? 1 2 Немного Opengl кода 2 3 Синтаксис команд Opengl 4



бет4/6
Дата29.05.2016
өлшемі222 Kb.
#100722
түріГлава
1   2   3   4   5   6

1.6 Библиотеки, связанные с OpenGL


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

 OpenGL Utility Library (GLU) содержит несколько функций, которые используют низкоуровневые команды OpenGL для выполнения таких операций, как установка специфических матриц видовой ориентации и проекций, триангуляции полигонов и визуализации поверхностей. Эта библиотека предоставляется как часть любой реализации OpenGL.

 Для каждой оконной системы существует библиотека, расширяющая возможности этой оконной системы для поддержки OpenGL. Для машин, где используется системы X Window расширения OpenGL (GLX) предоставляются в виде добавочных функций с префиксом glX. Для Microsoft Windows 95/98/Me/NT/200/XP функции WGL предоставляют интерфейс от Windows к OpenGL. Почти все они имеют префикс wgl. Для IBM OS/2 функции менеджера презентаций имеют префикс pgl. Для Apple существует интерфейс AGL, чьи функции имеют соответствующий префикс (agl).

 OpenGL Utility Toolkit (GLUT) – это независимая от оконной системы библиотека, написанная Марком Килгардом, чтобы скрыть сложности API различных оконных систем. Все функции библиотеки имеют префикс glut. Исходный код библиотеки GLUT для систем Microsoft Windows 95/98/NT/Me/XP и X Window может быть получен по Интернет – адресу http://reality.sgi.com/opengl/glut3/glut3.html. На данной странице помимо самого кода содержится информация о текущей версии GLUT.

 Fahrenheit Scene Graph (FSG) – объектно-ориентированный набор, основанный на OpenGL, он предоставляет объекты и методы для создания интерактивных трехмерных графических приложений. FSG, написанный на C++, предоставляет заранее построенные объекты и встроенную модель событий для взаимодействия с пользователем, высокоуровневые компоненты приложений для создания и редактирования трехмерных сцен, а также возможность обмена данными в различных форматах. FSG распространяется совершенно отдельно от OpenGL.

 Используя OpenGL, компания Silicon Graphics создала вспомогательную библиотеку для упрощения написания программ – примеров (OpenGL Auxiliary Library -- GLAUX). Код этой библиотеки поставляется в составе Microsoft Platform SDK и может быть использован в пользовательских программах или в образовательных целях.


1.7 Заголовочные файлы


Для всех OpenGL приложений необходимо включать заголовочный файл gl.h. Также большинство приложений используют GLU и должны включать файл glu.h. Таким образом, практически каабой исходный файл приложения OpenGL начинается со следующих строк:

#include
#include

Для систем Microsoft Windows требуется включение файла windows.h до включения gl.h или glu.h, так как некоторые макросы, используемые в этих файлах, определены внутри windows.h.
Если вы хотите получить доступ к библиотеке поддержки OpenGL оконной системой, например GLX, AGL, PGL или WGL, должны быть включены дополнительные файлы. Например, для вызовов функций GLX, требуется добавить в код следующие строки:

#include
#include

Для Microsoft Windows доступ к функциям WGL можно получить включением строки:

#include

Если предполагается использовать GLUT для управления задачами, связанными с окнами, следует добавить ее заголовочный файл:

#include




Замечание: glut.h гарантирует, что включены также gl.h и glu.h, так что нет необходимости включать все три файла. glut.h также гарантирует, что все специфичные для оконной системы макросы определены должным образом, до включения gl.h и glu.h. Для повышения переносимости GLUT-программ, включайте только glut.h и не включайте gl.h или glu.h.

Многие приложения OpenGL также используют стандартную библиотеку языка C, поэтому является частой практикой включать в исходный текст заголовочные файлы не связанные с графикой:

#include
#include

1.8 Сборка проекта


Помимо включения в исходный текст директив компилятора для добавления заголовочных файлов необходимо также проследить за тем, что во время сборки проекта к нему будут добавлены нужные библиотеки импорта. Например, в операционных системах Microsoft Windows библиотека OpenGL (в любой ее реализации) представлена динамической библиотекой opengl32.dll, а GLU – файлом glu32.dll. Библиотека импорта, присоединенная к проекту вашего приложения, позволяет ему во время выполнения загружать нужные динамические библиотеки и вызывать их функции. Для названных динамических библиотек соответствующими библиотеками импорта являются opengl32.lib и glu32.lib, находящиеся, как правило, в одном из подкаталогов компилятора.

Если помимо средств операционной или оконной системы вы используете еще какие-либо библиотеки, то, возможно, придется добавлять в проект и другие библиотеки импорта. Иногда (как, например, в случае с GLUT) в самом заголовочном файле содержится директива компилятору включить в проект нужные библиотеки импорта, но так бывает не всегда. Сигналом к тому, что нужные ссылки на библиотеки отсутствуют, чаще всего, является то, что компилятор просто отказывается собирать проект.

Кроме того, нужные динамические библиотеки должны быть в зоне досягаемости вашего готового приложения. Как правило, это означает, что они должны находиться либо в одном каталоге с исполняемым файлом, либо (и это случается чаще) они должны быть помещены в системную директорию Microsoft Windows (конкретный путь зависит от конкретного компьютера, но в общем виде этот путь можно записать как [Каталог Windows]\System).



Достарыңызбен бөлісу:
1   2   3   4   5   6




©dereksiz.org 2024
әкімшілігінің қараңыз

    Басты бет