ЧАСТЬ 1. Математические основы компьютерной графики

Часть 1. Математические основы компьютерной графики

Часть 2. Приложения компьютерной графики (Win32 и OpenGL)

v.1.01 ‑ Казань 2005

Содержание

Введение.. 4

ЧАСТЬ 1. Математические основы компьютерной графики.. 6

Глава 1. Элементы аналитической геометрии.. 6

Система координат. 6

Уравнение прямой. 8

Уравнение плоскости. 10

Некоторые элементарные задачи. 12

Глава 2. Проецирование трехмерных объектов.. 20

Классификация проекций. 20

Вывод формул центральной перспективной проекции. 21

Глава 3. Преобразования в пространстве.. 25

Преобразования точек в разных системах координат. 25

Двумерные матричные преобразования. 26

Однородные координаты и матричное представление двумерных преобразований 27

Трехмерные матричные преобразования. 31

Вопросы эффективности вычислений. 34

Глава 4. Алгоритмы растровой графики.. 36

Рисование отрезков прямых. 36

Отсечение. 38

Глава 5. Нормирующие преобразования видимого объема.. 42

Видимый объем.. 42

Нормирование. 42

Глава 6. Алгоритмы удаления невидимых ребер и граней.. 45

Классификация. 45

Алгоритм с использованием z-буфера. 45

Метод сортировки по глубине. 46

Метод удаления невидимых граней выпуклых тел. 48

Глава 7. Модели расчета освещенности граней трехмерных объектов 49

Цветовой куб RGB.. 49

Эмпирическая модель расчета освещенности. 50

Глава 8. Кубические сплайны... 52

Сплайновая функция. 52

Сплайновые кривые Эрмита и Безье. 53

ЧАСТЬ 2. Приложения компьютерной графики.. 57

Глава 10. Оконный интерфейс Windows. 57

Для чего использовать функции Windows API?. 57

Пример рисования на окне c применением Windows API в Delphi. 58

Создание и отображение окна с использованием функций Windows API. 59

Рисование на окне Windows. 61

Пример рисования на окне с использованием объектов пера и кисти. 62

Глава 11. Избранные главы OpenGL. Введение. 64

Основные возможности OpenGL.. 64

Контекст воспроизведения. 66

Параметры визуализации. 68

Глава 12. Модели освещенности граней трехмерных объектов в OpenGL 72

Модель освещенности с использованием цвета вершины.. 73

Получение эффекта полупрозрачности. 74

Модель освещенности с использованием источника света и цвета вершины.. 75

Модель освещенности с использованием источника света и материала поверхности 76

Глава 13. Параметры отображения в OpenGL.. 78

Тип закраски: плоская или гладкая. 78

Видимость граней: лицевые, нелицевые. 78

Освещение: одностороннее или двустороннее. 79

Расчет бликов: параллельно или с учетом положения наблюдателя. 79

Грани: сплошные или проволочные. 80

Глава 14. Пространственные геометрические преобразования в OpenGL 83

Глава 15. Наложение текстур в OpenGL.. 87

Загрузка образа текстуры.. 87

Параметры наложения текстуры.. 90

Список литературы... 93

Учебное пособие создано на основе специальных курсов лекций, читаемых автором с 1996 года в Казанском Государственном Университете на факультете вычислительной математики и кибернетики, и является развитием первой версии текстов лекций “Основы компьютерной графики” 2001 года. Предназначено для начинающих осваивать компьютерную графику. Здесь содержатся базовые знания необходимые для разработки двумерных и трехмерных приложений компьютерной графики. Исправлены некоторые ошибки и недочеты, найденные в Части 1 предыдущей версии, а также дополнены ее некоторые главы. В Части 2 содержится введение в оконный интерфейс Win32 и отдельные главы графической библиотеки OpenGL. Эти лекции находятся в сети Интернет по адресу, указанному в нижнем колонтитуле. Там же можно найти архив проекта программы на Delphi, о которой идет речь в главах, посвященных моделям освещенности в OpenGL. Ваши сообщения о замеченных в тексте опечатках, и другие замечания можно присылать по адресу электронной почты [email protected] .

Введение

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

Отправной точкой зарождения компьютерной графики можно считать 1930 год, когда в США нашим соотечественником Владимиром Зворыкиным, работавшим в компании “Вестингхаус” (Westinghouse), была изобретена электронно-лучевая трубка (ЭЛТ), впервые позволяющая получать изображения на экране без использования механических движущихся частей. Именно ЭЛТ является прообразом современных телевизионных кинескопов и компьютерных мониторов. Началом эры собственно компьютерной графики можно считать декабрь 1951 года, когда в Массачусетском технологическом институте (МТИ) для системы противовоздушной обороны военно-морского флота США был разработан первый дисплей для компьютера “Вихрь” (Whirl). Изобретателем этого дисплея был Джей Форрестер, работавший инженером в МТИ.

Одним из отцов-основателей компьютерной графики считается Айвен Сазерленд (Ivan Sotherland), который впервые в 1962 году все в том же МТИ создал программу компьютерной графики под названием “Блокнот” (Sketchpad). Эта программа могла рисовать достаточно простые фигуры (точки, прямые, дуги окружностей), могла вращать фигуры на экране. После этой программы некоторые крупные фирмы, такие как “Дженерал моторз”, “Дженерал электрик”, приступили к разработкам в области компьютерной графики. В 1965 году фирма IBM выпустила первый коммерческий графический терминал под названием IBM-2250. В конце 70-х годов для космических кораблей “Шаттл” появились летные тренажеры, основанные на компьютерной графике. Такие тренажеры представляют собой полнофункциональную модель кабины космического корабля, у которой вместо окон установлены компьютерные мониторы. На этих мониторах синтезируется изображение, которое видят астронавты из взлетающего космического корабля. В 1979 году Джордж Лукас, создатель сериала “Звездные войны”, организовал в своей фирме “Lucasfilm” отдел, который занимался внедрением последних достижений компьютерной графики в кинопроизводство. В 1982 году на экраны кинотеатров вышел фильм “Трон”, в котором впервые использовались кадры, синтезированные на компьютере.

Существуют фирмы, специализирующиеся на разработке специализированных компьютеров для графических приложений, такие как “Silicon Graphics”,
“Evans&Sotherland”. Области приложения компьютерной графики в настоящее время очень широки. В промышленности используется компьютерное моделирование процессов с графическим отображением происходящего на экране. Разработка новых автомобилей проходит на компьютере от стадии первичных эскизов внешнего вида корпуса автомобиля до рассмотрения поведения деталей автомобиля в различных дорожных условиях. В медицине применяются компьютерные томографы, позволяющие заглянуть внутрь тела и поставить правильный диагноз. В архитектуре широко применяются системы визуального автоматизированного проектирования (CAD – Computer Aided Design) которые позволяют разработать проект нового здания, основываясь на методах компьютерной графики. Химики изучают сложные молекулы белков, пользуясь компьютерными средствами визуального отображения данных. В телевидении и кинематографии использование компьютерной графики стало почти необходимым делом. В мире регулярно проводятся выставки, например, такие как SIGGRAPH, картин нарисованных с помощью компьютера. В математике развитие теории фракталов было бы невозможно без компьютеров с соответствующими средствами графического отображения данных. Средства мультимедиа привели к возможности совместного использования различных источников информации, объединяющих в себе статические и видео изображения, текст и звук. Новейшие операционные системы работают в графическом режиме и изначально реализуют в своих функциях методы компьютерной графики.

ЧАСТЬ 1. Математические основы компьютерной графики

Наши рекомендации