WWW.DISSERS.RU

БЕСПЛАТНАЯ ЭЛЕКТРОННАЯ БИБЛИОТЕКА

   Добро пожаловать!


Pages:     || 2 | 3 | 4 | 5 |   ...   | 12 |
А. В. Казанцев Основы компьютерной графики для программистов Часть 1. Математические основы компьютерной графики Часть 2. Приложения компьютерной графики (Win32 и OpenGL) v.1.01 - Казань 2005 Основы компьютерной графики для программистов 2 Содержание ВВЕДЕНИЕ..............................................................................................................................4 ЧАСТЬ 1. МАТЕМАТИЧЕСКИЕ ОСНОВЫ КОМПЬЮТЕРНОЙ ГРАФИКИ........6 ГЛАВА 1. ЭЛЕМЕНТЫ АНАЛИТИЧЕСКОЙ ГЕОМЕТРИИ......................................6 СИСТЕМА КООРДИНАТ............................................................................................................6 УРАВНЕНИЕ ПРЯМОЙ..............................................................................................................8 УРАВНЕНИЕ ПЛОСКОСТИ......................................................................................................10 НЕКОТОРЫЕ ЭЛЕМЕНТАРНЫЕ ЗАДАЧИ..................................................................................12 ГЛАВА 2. ПРОЕЦИРОВАНИЕ ТРЕХМЕРНЫХ ОБЪЕКТОВ...................................20 КЛАССИФИКАЦИЯ ПРОЕКЦИЙ...............................................................................................20 ВЫВОД ФОРМУЛ ЦЕНТРАЛЬНОЙ ПЕРСПЕКТИВНОЙ ПРОЕКЦИИ.............................................21 ГЛАВА 3. ПРЕОБРАЗОВАНИЯ В ПРОСТРАНСТВЕ..................................................25 ПРЕОБРАЗОВАНИЯ ТОЧЕК В РАЗНЫХ СИСТЕМАХ КООРДИНАТ..............................................25 ДВУМЕРНЫЕ МАТРИЧНЫЕ ПРЕОБРАЗОВАНИЯ.......................................................................26 ОДНОРОДНЫЕ КООРДИНАТЫ И МАТРИЧНОЕ ПРЕДСТАВЛЕНИЕ ДВУМЕРНЫХ ПРЕОБРАЗОВАНИЙ.................................................................................................................27 ТРЕХМЕРНЫЕ МАТРИЧНЫЕ ПРЕОБРАЗОВАНИЯ.....................................................................31 ВОПРОСЫ ЭФФЕКТИВНОСТИ ВЫЧИСЛЕНИЙ..........................................................................ГЛАВА 4. АЛГОРИТМЫ РАСТРОВОЙ ГРАФИКИ....................................................РИСОВАНИЕ ОТРЕЗКОВ ПРЯМЫХ...........................................................................................ОТСЕЧЕНИЕ...........................................................................................................................ГЛАВА 5. НОРМИРУЮЩИЕ ПРЕОБРАЗОВАНИЯ ВИДИМОГО ОБЪЕМА.......ВИДИМЫЙ ОБЪЕМ.................................................................................................................НОРМИРОВАНИЕ...................................................................................................................ГЛАВА 6. АЛГОРИТМЫ УДАЛЕНИЯ НЕВИДИМЫХ РЕБЕР И ГРАНЕЙ...........КЛАССИФИКАЦИЯ.................................................................................................................АЛГОРИТМ С ИСПОЛЬЗОВАНИЕМ Z-БУФЕРА.........................................................................МЕТОД СОРТИРОВКИ ПО ГЛУБИНЕ........................................................................................МЕТОД УДАЛЕНИЯ НЕВИДИМЫХ ГРАНЕЙ ВЫПУКЛЫХ ТЕЛ...................................................ГЛАВА 7. МОДЕЛИ РАСЧЕТА ОСВЕЩЕННОСТИ ГРАНЕЙ ТРЕХМЕРНЫХ ОБЪЕКТОВ...........................................................................................................................ЦВЕТОВОЙ КУБ RGB............................................................................................................ЭМПИРИЧЕСКАЯ МОДЕЛЬ РАСЧЕТА ОСВЕЩЕННОСТИ...........................................................ГЛАВА 8. КУБИЧЕСКИЕ СПЛАЙНЫ...........................................................................СПЛАЙНОВАЯ ФУНКЦИЯ.......................................................................................................СПЛАЙНОВЫЕ КРИВЫЕ ЭРМИТА И БЕЗЬЕ.............................................................................ЧАСТЬ 2. ПРИЛОЖЕНИЯ КОМПЬЮТЕРНОЙ ГРАФИКИ.....................................ГЛАВА 10. ОКОННЫЙ ИНТЕРФЕЙС WINDOWS......................................................http://www.ksu.ru/persons/9134.ru.html Основы компьютерной графики для программистов ДЛЯ ЧЕГО ИСПОЛЬЗОВАТЬ ФУНКЦИИ WINDOWS API.........................................................ПРИМЕР РИСОВАНИЯ НА ОКНЕ C ПРИМЕНЕНИЕМ WINDOWS API В DELPHI.........................СОЗДАНИЕ И ОТОБРАЖЕНИЕ ОКНА С ИСПОЛЬЗОВАНИЕМ ФУНКЦИЙ WINDOWS API............РИСОВАНИЕ НА ОКНЕ WINDOWS..........................................................................................ПРИМЕР РИСОВАНИЯ НА ОКНЕ С ИСПОЛЬЗОВАНИЕМ ОБЪЕКТОВ ПЕРА И КИСТИ..................ГЛАВА 11. ИЗБРАННЫЕ ГЛАВЫ OPENGL. ВВЕДЕНИЕ.........................................ОСНОВНЫЕ ВОЗМОЖНОСТИ OPENGL...................................................................................КОНТЕКСТ ВОСПРОИЗВЕДЕНИЯ.............................................................................................ПАРАМЕТРЫ ВИЗУАЛИЗАЦИИ...............................................................................................ГЛАВА 12. МОДЕЛИ ОСВЕЩЕННОСТИ ГРАНЕЙ ТРЕХМЕРНЫХ ОБЪЕКТОВ В OPENGL..............................................................................................................................МОДЕЛЬ ОСВЕЩЕННОСТИ С ИСПОЛЬЗОВАНИЕМ ЦВЕТА ВЕРШИНЫ......................................ПОЛУЧЕНИЕ ЭФФЕКТА ПОЛУПРОЗРАЧНОСТИ.......................................................................МОДЕЛЬ ОСВЕЩЕННОСТИ С ИСПОЛЬЗОВАНИЕМ ИСТОЧНИКА СВЕТА И ЦВЕТА ВЕРШИНЫ...МОДЕЛЬ ОСВЕЩЕННОСТИ С ИСПОЛЬЗОВАНИЕМ ИСТОЧНИКА СВЕТА И МАТЕРИАЛА ПОВЕРХНОСТИ.......................................................................................................................ГЛАВА 13.



ПАРАМЕТРЫ ОТОБРАЖЕНИЯ В OPENGL...........................................ТИП ЗАКРАСКИ: ПЛОСКАЯ ИЛИ ГЛАДКАЯ.............................................................................ВИДИМОСТЬ ГРАНЕЙ: ЛИЦЕВЫЕ, НЕЛИЦЕВЫЕ......................................................................ОСВЕЩЕНИЕ: ОДНОСТОРОННЕЕ ИЛИ ДВУСТОРОННЕЕ..........................................................РАСЧЕТ БЛИКОВ: ПАРАЛЛЕЛЬНО ИЛИ С УЧЕТОМ ПОЛОЖЕНИЯ НАБЛЮДАТЕЛЯ....................ГРАНИ: СПЛОШНЫЕ ИЛИ ПРОВОЛОЧНЫЕ..............................................................................ГЛАВА 14. ПРОСТРАНСТВЕННЫЕ ГЕОМЕТРИЧЕСКИЕ ПРЕОБРАЗОВАНИЯ В OPENGL..............................................................................................................................ГЛАВА 15. НАЛОЖЕНИЕ ТЕКСТУР В OPENGL........................................................ЗАГРУЗКА ОБРАЗА ТЕКСТУРЫ................................................................................................ПАРАМЕТРЫ НАЛОЖЕНИЯ ТЕКСТУРЫ...................................................................................СПИСОК ЛИТЕРАТУРЫ..................................................................................................http://www.ksu.ru/persons/9134.ru.html Основы компьютерной графики для программистов Учебное пособие создано на основе специальных курсов лекций, читаемых автором с 1996 года в Казанском Государственном Университете на факультете вычислительной математики и кибернетики, и является развитием первой версии текстов лекций “Основы компьютерной графики” 2001 года. Предназначено для начинающих осваивать компьютерную графику. Здесь содержатся базовые знания необходимые для разработки двумерных и трехмерных приложений компьютерной графики. Исправлены некоторые ошибки и недочеты, найденные в Части предыдущей версии, а также дополнены ее некоторые главы. В Части 2 содержится введение в оконный интерфейс Win32 и отдельные главы графической библиотеки OpenGL. Эти лекции находятся в сети Интернет по адресу, указанному в нижнем колонтитуле. Там же можно найти архив проекта программы на Delphi, о которой идет речь в главах, посвященных моделям освещенности в OpenGL. Ваши сообщения о замеченных в тексте опечатках, и другие замечания можно присылать по адресу электронной почты Alex.Kazantsev@ksu.ru.

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

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

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

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

На этих мониторах синтезируется изображение, которое видят астронавты из взлетающего космического корабля. В 1979 году Джордж Лукас, создатель сериала http://www.ksu.ru/persons/9134.ru.html Основы компьютерной графики для программистов “Звездные войны”, организовал в своей фирме “Lucasfilm” отдел, который занимался внедрением последних достижений компьютерной графики в кинопроизводство. В 1982 году на экраны кинотеатров вышел фильм “Трон”, в котором впервые использовались кадры, синтезированные на компьютере.

Существуют фирмы, специализирующиеся на разработке специализированных компьютеров для графических приложений, такие как “Silicon Graphics”, “Evans&Sotherland”. Области приложения компьютерной графики в настоящее время очень широки. В промышленности используется компьютерное моделирование процессов с графическим отображением происходящего на экране.





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

http://www.ksu.ru/persons/9134.ru.html Основы компьютерной графики для программистов ЧАСТЬ 1. МАТЕМАТИЧЕСКИЕ ОСНОВЫ КОМПЬЮТЕРНОЙ ГРАФИКИ Глава 1. Элементы аналитической геометрии Специфика математического аппарата компьютерной графики состоит в его исключительно практической направленности. Математические методы компьютерной графики предназначены для получения зрительно осязаемых результатов. Однако использование прикладных математических методов не освобождает от знания теоретических основ, из которых эти методы были получены. В данной главе рассматриваются элементы теории аналитической геометрии в трехмерном пространстве как поэтапное построение теоретических конструкций, происходящих из необходимости решения некоторых практических задач. Такой, в некотором смысле, неформальный подход позволяет рассматривать аналитическую геометрию не просто как раздел линейной алгебры, а как мощную методологию решения практических геометрических задач, возникающих в трехмерных и двумерных приложениях компьютерной графики.

Система координат Для того чтобы уметь синтезировать изображения на экране компьютера необходимо предложить способ математического описания объектов в трехмерном пространстве или на плоскости. Окружающий нас мир с точки зрения практических приложений описывают как трехмерное евклидово пространство. Под описанием трехмерного объекта будем понимать знание о положении каждой точки объекта в пространстве в любой момент времени. Положение точек в пространстве удобно описывается с помощью декартовой системы координат.

Для того чтобы в трехмерном пространстве задать декартову систему координат проведем три не лежащие в одной плоскости направленные прямые, которые Рис. 1. Нахождение координаты x = Q точки P.

называются осями, так, чтобы они пересекались в одной точке – начале координат.

Выберем на этих осях единицу измерения. Тогда положение любой точки в пространстве будет описываться через координаты этой точки, которые представляют http://www.ksu.ru/persons/9134.ru.html Основы компьютерной графики для программистов собой расстояния от начала координат до проекций точки на соответствующие оси координат. Проекцией точки на координатную ось называется точка пересечения плоскости, проходящей через заданную точку и параллельной плоскости, образованной двумя другими осями координат. Например, на рис. 1 проекцией точки P на ось Ox Рис. 2. Левосторонняя и правосторонняя системы координат.

является точка Q, которая принадлежит плоскости, параллельной плоскости yOz.

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

Таким образом, положение в пространстве точки P описывается ее координатами, что записывается как P = (px, py, pz). Взаимное расположение осей в ортогональной системе координат в трехмерном пространстве может быть двух видов. Проведем ось Ox слева направо, а ось Oy снизу вверх, как показано на рис. 2.

Ось Oz при этом может проходить как в направлении от наблюдателя в плоскость листа, так и от плоскости листа к наблюдателю. В первом случае система координат будет называться левой или левосторонней, а во втором случае – правой или правосторонней.

Более точное определение правой и левой систем координат можно дать следующее. Если посмотреть из положительной полуоси Oz в направлении начала координат, то для совмещения положительной полуоси Ox с положительной полуосью Oy Рис. 3. Определение левосторонней системы необходимо повернуть Ox координат по левой руке.

относительно начала координат против часовой стрелки – в этом случае имеем правую систему координат; если же поворот http://www.ksu.ru/persons/9134.ru.html Основы компьютерной графики для программистов производится по часовой стрелке – то система координат левая*.

Pages:     || 2 | 3 | 4 | 5 |   ...   | 12 |










© 2011 www.dissers.ru - «Бесплатная электронная библиотека»

Материалы этого сайта размещены для ознакомления, все права принадлежат их авторам.
Если Вы не согласны с тем, что Ваш материал размещён на этом сайте, пожалуйста, напишите нам, мы в течении 1-2 рабочих дней удалим его.