Книга предназначена для изучения программирования трехмерной компьютерной графики с использованием библиотеки OpenGL. Содержит необходимые теоретические сведения, подробные примеры и справочные материалы с описанием основных функций OpenGL 1.4. У читателя предполагается знание языка программирования C++ и основ линейной алгебры.

Для широкого круга читателей, интересующихся программированием компьютерной графики.

Предисловие В ногу со временем расширяются графические возможности современных компьютеров. Перед новичком в разработке сложных программ с использованием графики встает вопрос о выборе графического программного интерфейса. В средах Windows 98/NT/2000/XP существуют два основных API, сильно различающихся между собой. Это OpenGL и DirectX, точнее, два его модуля DirectDraw и Direct3D.

Стандарт OpenGL полностью совместим снизу вверх и не так часто меняется.

OpenGL это открытая кросс-платформенная библиотека. Существует множество ее реализаций от заинтересованных фирм для различных систем.

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

OpenGL является достаточно быстрой библиотекой для вывода трехмерной графики даже на слабых, по сравнению с другими, системах. Например, основанная на сот-технологии Direct3D значительно медленнее.

Опять же, в отличие от Direct3D, OpenGL очень проста в изучении и интуитивно понятна.

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

У многих может возникнуть вопрос о совместном использовании OpenGL и DirectX. Графические модули DirectX нельзя использовать, но ничто не мешает использовать другие модули, такие как Directlnput.

1. РУКОВОДСТВО ПО OpenGI

OpenGI

Изначально OpenGL была разработана компанией Silicon Graphics для своих графических станций и со временем была перенесена на другие платформы, включая Windows. Фирма Microsoft поставляет свою реализацию. Это файлы opengl32.dll и glu32.dll, которые находятся в системном каталоге. Библиотеки устроены таким образом, что все вызовы OpenGI вначале перенаправляются в OpenGI драйвер, поставляемый с видеокартой. Это позволяет задействовать аппаратную поддержку без перекомпиляции программы. Для доступа к функциям из opengl32.dll и glu32.dll в популярные компиляторы уже входят библиотеки импорта и заголовочные файлы opengl32.lib, gl.h, glu32.lib и glu.h.

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

GLbyte - тип signed char, суффикс b.

GLshort - тип short, суффикс s.

GLint, GLsizei - тип long, суффикс I.

GLfloat - тип float, суффикс f.

GLdouble - тип double, суффикс d.

GLubyte, GLboolean - тип unsigned char, суффикс ub.

GLushort-тип unsigned short, суффикс us.


| далее ⇒