Другим существенным изменением в третьем издании стало введение набора графических процедур OpenGL, которые в настоящее время широко используются и доступны в большинстве компьютерных систем. Пакет OpenGL предлагает большую и эффективную коллекцию аппаратно-независимых функций для создания компьютерных изображений с использованием программы, написанной на универсальном языке программирования (С или C++). Также стоит отметить наличие дополнительных библиотек OpenGL, позволяющих обрабатывать операции ввода-вывода, требующие взаимодействия с устройством, а также дополнительных графических процедур для генерации цилиндрических форм, сферических объектов и би-сплайнов.
ПРИМЕРЫ ПРОГРАММИРОВАНИЯ
В данном третьем издании представлено более двадцати полных программ на C++, в которых использована библиотека графических процедур, доступная в популярном пакете OpenGL. Данные программы иллюстрируют применение базовых методов построения изображений, двух- и трехмерных геометрических преобразований, методов двух- и трехмерного наблюдения, перспективного проектирования, генерации сплайнов, фрактальных методов, интерактивного ввода с помощью мыши, операций выбора, отображения меню и подменю, а также методов анимации. Помимо этого, представлено более сотни фрагментов программ C++/OpenGL, демонстрирующих реализацию алгоритмов компьютерной графики, связанных с отсечением, эффектами освещения, визуализации поверхности, наложения текстуры и множества других методов компьютерной графики.
В главе 1 разнообразие приложений компьютерной графики иллюстрируется путем обзора множества изображений, создаваемых с помощью графических программ. В главе 2 представлен базовый словарь компьютерной графики, также здесь описываются аппаратные и программные компоненты графических системы, дается подробное введение в OpenGL и разбирается пример завершенной программы OpenGL. Фундаментальные алгоритмы для представления и изображения простых объектов описываются в главах 3 и 4. В указанных главах исследуются методы получения таких базовых компонентов изображения, как многоугольники и окружности; задание цвета, размера и других атрибутов объекта; реализация этих методов в OpenGL. В главе 5 обсуждаются алгоритмы выполнения таких геометрических преобразований, как поворот и масштабирование. В главах 6 и 7 подробно объясняются процедуры вывода на экран проекций двух- и трехмерных сцен. Методы генерации изображений сложных объектов (поверхностей второго порядка, сплайнов, фракталов и систем многих частиц) обсуждаются в главе 8. В главе 9 изучаются различные методы компьютерной графики, применяемые для определения видимых объектов на трехмерной сцене. Модели освещения и методы наложения на сцену условий освещенности исследуются в главе 10. Методы интерактивного графического ввода и разработки графических интерфейсов пользователя представлены в главе 11. Различные модели цвета, полезные в компьютерной графике, описываются в главе 12, также сюда включены вопросы, касающиеся работы с цветом. Методы компьютерной анимации изучаются в главе 13. Методы иерархического моделирования сложных систем представлены в главе 14. Наконец, в главе 15 приводится обзор основных форматов графических файлов.