Конечно, содержание курса компьютерной графики выходит далеко за пределы простого руководства по применению конкретного пакета API, но наличие хорошего базового пакета значительно упрощает как преподавание, так и усвоение студентами ключевых тем этой дисциплины - создание изображений трехмерных объектов, закрашивание, графические системы с архитектурой "клиент/сервер", моделирование и создание прикладных графических систем. Я полагаю, что широкие функциональные возможности OpenGL и тщательно продуманная структура этой системы послужат хорошим фундаментом для изложения как теоретических, так и практических аспектов этого предмета, в том числе и новейших идей, таких как наложение текстур и их комбинирование (эти функции не поддерживались прежними пакетами API).

Я перешел на использование OpenGL в своей преподавательской практике примерно 5 лет назад, и уже первые результаты меня изумили - в середине первого семестра каждый стуПредисловие дент мог написать довольно сложную программу построения изображения трехмерных объектов, в которой требуется знание не только математики трехмерного моделирования, но и умение работать с событиями. За предыдущие 15 лет преподавания я и близко никогда не подходил к подобным результатам. Опыт преподавания курса на новой базе подвел меня к мысли полностью переделать написанный ранее учебник.

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

Помимо этого я использую в книге язык С. У читателей может возникнуть вполне резонный вопрос: "Почему С, а не С++, Java или любой другой объектно-ориентированный язык программирования?" Мой выбор обоснован двумя соображениями. Во-первых, система OpenGL не относится к объектно-ориентированным системам программирования, а потому использование С++ или Java не внесет ничего особенного в большинство излагаемых тем. Исключение составляет тема структуры библиотеки промежуточных программ между OpenGL и пользователем, но я решил вообще не касаться ее, поскольку это сделает книгу менее доступной для студентов, владеющих навыками программирования, но незнакомых с методикой объектно-ориентированного программирования.


⇐ Предыдущая| |Следующая ⇒