
- •Часть 1. Математические основы компьютерной графики
- •Введение
- •Часть 1.Математические основыкомпьютерной графики Глава 1. Элементы аналитической геометрии
- •Система координат
- •У Рис. 4. Вывод уравнения прямой в трехмерном пространстве.Равнение прямой
- •Уравнение плоскости
- •Некоторые элементарные задачи
- •Глава 2. Проецирование трехмерных объектов Классификация проекций
- •Вывод формул центральной перспективной проекции
- •Глава 3. Преобразования в пространстве Преобразования точек в разных системах координат
- •Двумерные матричные преобразования
- •Однородные координаты и матричное представление двумерных преобразований
- •Трехмерные матричные преобразования
- •Вопросы эффективности вычислений
- •Глава 4. Алгоритмы растровой графики Рисование отрезков прямых
- •Отсечение
- •Глава 5. Нормирующие преобразования видимого объема Видимый объем
- •Нормирование
- •Глава 6. Алгоритмы удаления невидимых ребер и граней Классификация
- •Алгоритм с использованиемz-буфера
- •Метод сортировки по глубине
- •Метод удаления невидимых граней выпуклых тел
- •Глава 7. Модели расчета освещенности граней трехмерных объектов Цветовой кубRgb
- •Эмпирическая модель расчета освещенности
- •Глава 8. Кубические сплайны Сплайновая функция
- •Сплайновые кривые Эрмита и Безье
- •Часть 2.Приложения компьютерной графики Глава 10. Оконный интерфейсWindows
- •Для чего использовать функцииWindowsApi?
- •Пример рисования на окнеcприменениемWindowsApIвDelphi.
- •Создание и отображение окна с использованием функцийWindowsApi.
- •Рисование на окне Windows
- •Пример рисования на окне с использованием объектов пера и кисти
- •Глава 11. Избранные главыOpenGl. Введение. Основные возможностиOpenGl
- •Контекст воспроизведения
- •Параметры визуализации
- •Глава 12. Модели освещенности граней трехмерных объектов вOpenGl
- •Модель освещенности с использованием цвета вершины
- •Получение эффекта полупрозрачности
- •Модель освещенности с использованием источника света и цвета вершины
- •Глава 13. Параметры отображения в OpenGl
- •Тип закраски: плоская или гладкая
- •Видимость граней: лицевые, нелицевые
- •Освещение: одностороннее или двустороннее
- •Расчет бликов: параллельно или с учетом положения наблюдателя
- •Грани: сплошные или проволочные
- •Глава 14. Пространственные геометрические преобразования вOpenGl
- •Глава 15. Наложение текстур вOpenGl
- •Загрузка образа текстуры
- •Параметры наложения текстуры
- •Список литературы
Основы
компьютерной графики для программистов
____________________________________________________________________________________________________________________
А. В. Казанцев
Основы компьютерной графики
для программистов
Часть 1. Математические основы компьютерной графики
Часть 2. Приложения компьютерной графики (Win32 и OpenGL)
v.1.01 ‑ Казань 2005
Содержание
Введение 3
ЧАСТЬ 1. Математические основы компьютерной графики 5
Глава 1. Элементы аналитической геометрии 5
Глава 2. Проецирование трехмерных объектов 19
Глава 3. Преобразования в пространстве 24
Глава 4. Алгоритмы растровой графики 34
Глава 5. Нормирующие преобразования видимого объема 40
Глава 6. Алгоритмы удаления невидимых ребер и граней 43
Глава 7. Модели расчета освещенности граней трехмерных объектов 47
Глава 8. Кубические сплайны 50
ЧАСТЬ 2. Приложения компьютерной графики 55
Глава 10. Оконный интерфейс Windows 55
Глава 11. Избранные главы OpenGL. Введение. 62
Глава 12. Модели освещенности граней трехмерных объектов в OpenGL 70
Глава 13. Параметры отображения в OpenGL 76
Глава 14. Пространственные геометрические преобразования в OpenGL 81
Глава 15. Наложение текстур в OpenGL 85
Список литературы 91
Учебное пособие создано на основе специальных курсов лекций, читаемых автором с 1996 года в Казанском Государственном Университете на факультете вычислительной математики и кибернетики, и является развитием первой версии текстов лекций “Основы компьютерной графики” 2001 года. Предназначено для начинающих осваивать компьютерную графику. Здесь содержатся базовые знания необходимые для разработки двумерных и трехмерных приложений компьютерной графики. Исправлены некоторые ошибки и недочеты, найденные в Части 1 предыдущей версии, а также дополнены ее некоторые главы. В Части 2 содержится введение в оконный интерфейс Win32 и отдельные главы графической библиотекиOpenGL. Эти лекции находятся в сети Интернет по адресу, указанному в нижнем колонтитуле. Там же можно найти архив проекта программы наDelphi, о которой идет речь в главах, посвященных моделям освещенности вOpenGL. Ваши сообщения о замеченных в тексте опечатках, и другие замечания можно присылать по адресу электронной почтыAlex.Kazantsev@ksu.ru.
Введение
Во многих книгах по компьютерной графике исследуются узкоспециальные темы, такие как разработка библиотек подпрограмм для реализации метода обратного хода лучей, низкоуровневое программирование видеоадаптеров или описание скоростных методов изображения трехмерных сцен, которые используются в компьютерных играх. При этом, для тех, кто только начинает вникать в эту область, часто не хватает информации базового уровня, позволяющей сориентироваться в стремительно расширяющейся области компьютерной графики. Данный материал призван, хотя бы отчасти, восполнить указанный пробел.
Отправной точкой зарождения компьютерной графики можно считать 1930 год, когда в США нашим соотечественником Владимиром Зворыкиным, работавшим в компании “Вестингхаус” (Westinghouse), была изобретена электронно-лучевая трубка (ЭЛТ), впервые позволяющая получать изображения на экране без использования механических движущихся частей. Именно ЭЛТ является прообразом современных телевизионных кинескопов и компьютерных мониторов. Началом эры собственно компьютерной графики можно считать декабрь 1951 года, когда в Массачусетском технологическом институте (МТИ) для системы противовоздушной обороны военно-морского флота США был разработан первый дисплей для компьютера “Вихрь” (Whirl). Изобретателем этого дисплея был Джей Форрестер, работавший инженером в МТИ.
Одним из отцов-основателей компьютерной графики считается Айвен Сазерленд (Ivan Sotherland), который впервые в 1962 году все в том же МТИ создал программу компьютерной графики под названием “Блокнот” (Sketchpad). Эта программа могла рисовать достаточно простые фигуры (точки, прямые, дуги окружностей), могла вращать фигуры на экране. После этой программы некоторые крупные фирмы, такие как “Дженерал моторз”, “Дженерал электрик”, приступили к разработкам в области компьютерной графики. В 1965 году фирма IBM выпустила первый коммерческий графический терминал под названием IBM-2250. В конце 70-х годов для космических кораблей “Шаттл” появились летные тренажеры, основанные на компьютерной графике. Такие тренажеры представляют собой полнофункциональную модель кабины космического корабля, у которой вместо окон установлены компьютерные мониторы. На этих мониторах синтезируется изображение, которое видят астронавты из взлетающего космического корабля. В 1979 году Джордж Лукас, создатель сериала “Звездные войны”, организовал в своей фирме “Lucasfilm” отдел, который занимался внедрением последних достижений компьютерной графики в кинопроизводство. В 1982 году на экраны кинотеатров вышел фильм “Трон”, в котором впервые использовались кадры, синтезированные на компьютере.
Существуют фирмы, специализирующиеся на разработке специализированных компьютеров для графических приложений, такие как “SiliconGraphics”, “Evans&Sotherland”. Области приложения компьютерной графики в настоящее время очень широки. В промышленности используется компьютерное моделирование процессов с графическим отображением происходящего на экране. Разработка новых автомобилей проходит на компьютере от стадии первичных эскизов внешнего вида корпуса автомобиля до рассмотрения поведения деталей автомобиля в различных дорожных условиях. В медицине применяются компьютерные томографы, позволяющие заглянуть внутрь тела и поставить правильный диагноз. В архитектуре широко применяются системы визуального автоматизированного проектирования (CAD–ComputerAidedDesign) которые позволяют разработать проект нового здания, основываясь на методах компьютерной графики. Химики изучают сложные молекулы белков, пользуясь компьютерными средствами визуального отображения данных. В телевидении и кинематографии использование компьютерной графики стало почти необходимым делом. В мире регулярно проводятся выставки, например, такие какSIGGRAPH, картин нарисованных с помощью компьютера. В математике развитие теории фракталов было бы невозможно без компьютеров с соответствующими средствами графического отображения данных. Средства мультимедиа привели к возможности совместного использования различных источников информации, объединяющих в себе статические и видео изображения, текст и звук. Новейшие операционные системы работают в графическом режиме и изначально реализуют в своих функциях методы компьютерной графики.