Лекция 2 Аффины. 7 Двумерные геометрические (аффинные) преобразования 7 - umotnas.ru o_O
Главная
Поиск по ключевым словам:
страница 1страница 2 ... страница 8страница 9
Похожие работы
Лекция 2 Аффины. 7 Двумерные геометрические (аффинные) преобразования 7 - страница №1/9


Лекция 1 Введение 2

Что такое компьютерная графика? 2

Лекция 2 Аффины. 7

Двумерные геометрические (аффинные) преобразования 7

Представление точек и общая схема преобразования с использованием матриц 7

Преобразование масштабирования 8

Преобразование поворота 9

Преобразование переноса и однородные координаты 10

Выполнение произвольных преобразований на плоскости. Композиция преобразований 11

Выводы по плоским геометрическим преобразованиям 12

Трехмерные преобразования 13

Преобразования поворота в пространстве 13

Коммутативность преобразований 14

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



Лекция 3. Двумерный конвейер. 15

Координатные системы двух мерного геометрического конвейера и их преобразование 15

Лекция 4. OpenGL. 18

Синтаксис команд OpenGL 18

Настройка библиотеки 19

Задание аффинных преобразований 20

Координатные системы 21

Задание векторных примитивов 21

Порядок соединения вершин. Вершины 22

Лекция 5. Проекции 25

Проекции 25

Параллельные проекции 26

Центральные проекции 28

Реализация проективных преобразований 28

Ортографические проекции 29



Лекция 6. Реализация проекций в OpenGL 30

Ортографическая проекция 30

Перспективная проекция 31

Ориентация в пространстве 32

Построение дополнительных плоскостей отсечения. 33

Лекция 7. Освещение и свет. 34

1 Простая модель освещения 34

1.1 Диффузное отражение 34

1.2 Зеркальное отражение 35

1.3 Общая модель 36



2 Источники света в OpenGL 37

2.1 Модель освещения 39

2.3 Грани 40

2.2 Свойства материала 41

Плоское закрашивание 42

Закрашивание методом Гуро 43

Закраска Фонга 44

3 Цвет в машинной графике 44

3.1 Цветовая модель HSV 47



Лекция 8. Текстуры. 48

Наложение текстуры 48

Лекция 9. Удаление невидимых линий. 52

Удаление невидимых линий и поверхностей. 52

Алгоритм плавающего горизонта 53

Алгоритм Ньюэла-Нюэла-Санча 56

Алгоритм использующий Z-буфер 57

Интервальный алгоритм построчного сканирования 58

Алгоритм Вейлера— Азертона 58

Алгоритм определения видимых поверхностей путем трассировки лучей 60

Лекция 1 Введение

Что такое компьютерная графика

Области применения компьютерной графики

Основные понятия и определения

Основные принципы визуализации сложных изображений

Геометрическая модель

Графический конвейер и его структура

Структура интерактивной графической системы


Что такое компьютерная графика?


За последние несколько десятилетий компьютерная графика прошла путь от вычерчивания простых линий и отрезков, до построения виртуальной реальности и создания полнометражных кинофильмов. Само слово “графика” в его привычном понимании уже не соответствует той области интересов, которую охватывает компьютерная графика. На сегодняшний день компьютерная графика - это область информатики, в сферу интересов которой входят все аспекты формирования изображений с помощью компьютеров. Уточняя, можно сказать, что предметом ее изучения является создание, хранение и обработка моделей и их изображений с помощью ЭВМ.

В интерактивной компьютерной графике пользователь может управлять характеристиками объектов модели. Так, он может управлять процессом создания модели (графические редакторы, САПР и пр.) или работать с готовой моделью, изучая ее свойства и поведение (тренажеры, игры и др.). Слово “интерактивная” часто опускают, так как большинство современных графических приложений обладают той или иной степенью интерактивности.

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

Создание деловой графики – построение диаграмм, структурных схем и т.д. Сложно найти современную систему оформления документов, в которой не реализованы возможности создания деловой графики.

Визуализация научных исследований. Здесь пройден путь от простого построения графиков функций до представления на экране компьютера информации, которая не может быть воспринята органами чувств человека. Например, в медицине это результаты томографии, ультразвукового зондирования и других современных методов исследования. В астрономии - это представление информации, полученной с помощью радиотелескопов и других не оптических приборов. Создание зримых геометрических образов помогает лучше понять суть происходящих процессов. Более того, современные средства обработки результатов исследований позволяют увидеть не только статический «снимок» результатов исследований, но и построить на их основе модель процесса и провести изучение. Например, можно смоделировать движение потока жидкости или вихревой процесс в атмосфере.

Моделирование фрагментов реального мира. Результаты, полученные в этой области, легли в основу разнообразных тренажеров, применяемых при обучении пилотов, водителей, операторов ядерных реакторов и представителей многих других профессий. Высококачественные симуляции реального мира находят свое применение в кино и на телевидении, для съемок отдельных фрагментов или даже целых фильмов («Шрек» и др.).

Автоматизированное проектирование. Это очень важная область человеческой деятельности, без которой невозможна разработка высокотехнологичной продукции, например процессоров для ЭВМ. Системы автоматизированного проектирования (САПР) находят свое применение в машиностроении, электронике, архитектуре и др. областях. Системы проектирования также оснащаются средствами моделирования, позволяющими не только выполнить проектирование изделия, но и проанализировать работу. Создав, скажем, электронную схему, инженер может посмотреть, как она работает, замерить токи и напряжения, возникающие в ней. Затем он может вернуться на этап проектирования и исправить выявленные ошибки.

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

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



Моделирование (Modeling) – создание и представление трехмерных (3D) моделей;

Визуализация (Rendering) – создание плоских изображений трехмерных (3D) моделей;

Обработка плоских изображений (Imaging);



Анимация (Animation) – имитация изменений во времени;

Пользовательский интерфейс (User Interface);

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

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

Имеется трехмерная сцена, которую необходимо отобразить на некотором устройстве вывода графической информации, обладающем ограниченной плоской рабочей поверхностью (например, дисплей или принтер). Рисунок 1.1.

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

Под сценой понимают совокупность моделей в трехмерном пространстве. Модель – совокупность примитивов, представляющая сложный объект. Примитив – простейший неделимый геометрический объект, обрабатываемый системой как единое целое. В различных системах примитивами могут являться разнообразные геометрические объекты. От простого отрезка до сложной поверхности. Рассмотрим подробнее понятие модель, играющее большую роль в компьютерной графике. Модель в том или ином виде присутствует в подавляющем большинстве графических систем. Построить геометрическую модель можно различными способами. Возьмем простой куб и попробуем построить его модель. Простая совокупность координат вершин куба показанная на рисунке 1.2 а) не может служить его моделью т.к. в ней недостаточно информации определения формы объекта. Шесть вершин могут быть соединены линиями несколькими способами. Введя понятия ребер, представляемых линиями, соединяющими пары вершин, мы получаем корректное, однозначно интерпретируемое описание куба. Рисунок 1.2 b). Такое описание носит название каркасной модели. С его помощью мы можем построить и изобразить проволочный каркас куба. Получить заполненный куб с помощью данной модели не удастся, т.к. в ней нет информации о гранях. Добавить эту информацию можно введя в модель еще один уровень иерархии, определяя с помощью каких ребер, формируются грани. Получившаяся модель представлена на рисунке 1.3 c). Она носит название гранично-определенной модели т. к. определяет границы пространства, занимаемого объектом.

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

Остановимся подробнее на том, каким образом формируется плоское представление трехмерной модели. В настоящее время большинство устройств вывода графической информации используют растровый принцип создания изображений. Следовательно, графические системы на выходе должны формировать растровый образ модели. Растр – это массив простейших элементов – пикселей. Каждый пиксель имеет строго определенное положение и одно единственное свойство – цвет. Массив кодов, определяющих цвет пикселей, хранится в специальной области памяти компьютера, называемой буфером кадра. Глубина буфера кадра говорит о количестве бит, выделенном для хранения информации об одном пикселе. Для черно-белого (в общем случае двух градационного) изображения достаточно буфера глубиной один бит. Восьми битный буфер позволяет использовать 256 цветов. Современные системы используют буфер кадра глубиной 24 бита и более. Способы кодирования информации о цвете и цветовые модели мы рассмотрим в одной из последующих лекций.

Рассмотрим монитор с электронно-лучевой трубкой, который является типичным представителем устройств вывода графической информации, формирующих изображение на основе растра. Рисунок 1.4. В состав трубки входит электронная пушка, фокусирующая система, отклоняющая система, теневая маска и экран, покрытый слоем люминофора. Поток электронов, испускаемый электронной пушкой проходя через фокусирующую систему, образует тонкий луч, который направляется отклоняющей системой. Луч направляют таким образом, чтобы он последовательно пробегал весь экран строку за строкой. Экран покрывают точками люминофора, который начинает светиться под воздействием потока электронов и сохраняет постсвечение в течение некоторого времени после ухода луча. В электронно-лучевых трубках способных воспроизводить цвет используют три электронных пушки и три типа люминофора, испускающих свечения трех основных цветов – красного, зеленого и синего. Каждый пиксель образуется тремя точками люминофора данных цветов. Теневая маска обеспечивает попадание луча, испускаемого каждой электронной пушкой, только на точки люминофора соответствующего цвета.

Размер буфера кадра (количество кодов цвета, хранимое в буфере) должен совпадать с количеством пикселей на экране. При прохождении луча над пикселем из буфера кадра считывается соответствующий ему код, который используется для управления излучением электронных пушек. Синхронность считывания информации из буфера кадра с ходом луча обеспечивается специальным блоком синхронизации. Для того чтобы изображение не исчезло с экрана после окончание времени постсвечения люминофора, его надо непрерывно возобновлять – регенерировать, не менее 30 раз в секунду. Сегодня для представления графической информации используются не только электронно-лучевые трубки. Широкое распространение получили жидкокристаллические дисплеи, плазменные панели и другие устройства. Такие приборы также основываются на растровом принципе формирования изображения, но используют другие технологии.

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

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

Первым этапом нашего конвейера является сборка сцены, выполняемая модельным преобразованием. Этот этап можно рассматривать как часть большого и сложного процесса называемого моделированием. В ходе сборки отдельные фрагменты сцены или модели собираются вместе в единой координатной системе, носящей название мировой системы координат. Необходимость такой сборки возникает из-за того, что отдельные модели удобнее описывать в собственных оригинальных системах координат. Посмотрим на рисунок 1.? а. Рассчитать координаты конечных точек отрезков, образующих рисунок довольно сложно. Однако, задачу можно существенно упростить, описав каждую модель в своей координатной системе, как это показано на рисунках 1.? Б и В. Такие персональные координатные системы носят название модельных координат. После этого достаточно для каждой модели задать необходимые повороты и переносы с тем, чтобы добиться требуемого положения объектов. Графическая система сама выполнит все необходимые расчеты, сведя объекты в единую мировую координатную систему.

Изображение, формируемое компьютером, является искусственно созданным и оригинала может не существовать физически. Но при этом используются те же физические законы, которые работают при восприятии человеком реальных физических объектов. Поэтому в ходе курса мы будем часто проводить аналогии с такими «устройствами», как фотокамера или глаз человека.

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



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

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

Следующим этапом геометрического конвейера является преобразование нормализации. В ходе преобразования геометрические координаты всех объектов сцены приводятся к фиксированному диапазону. Используемый диапазон может быть различным, например, [0..1] или [-1..1]. В результате нормализации координат решаются такие задачи как преодоление потери точности, защита от переполнения и другие задачи, связанные с реализацией системы.

Когда мы смотрим вдаль, то видим все объекты до горизонта, т. е. человеческое зрение, в принципе, не имеет ограничений по глубине. Зона охвата нашего зрения представляет собой бесконечный конус. Реализация подобного механизма в компьютерной системе потребовала бы чрезвычайно больших вычислительных затрат. Поэтому в графических системах присутствует такое понятие как видимый объем. Это замкнутый объем пространства, попадая в который объекты сцены или их фрагменты оказываются видимыми в создаваемом изображении. Соответственно, те объекты или фрагменты, которые оказались вне этого объема, исключаются из дальнейшего рассмотрения. Процесс выделения объектов сцены, попавших в видимый объем, называется отсечением (клиппингом - от английского слова clipping). Такой подход существенно повышает эффективность системы, т.к. существенно снижается количество геометрических примитивов, проходящих через весь конвейер. Форма видимого объема зависит от используемого типа проекций, обычно это параллелепипед или усеченная пирамида.

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

Результатом рассмотренных выше преобразований может являться двухмерное изображения фрагмента сцены, однако, в большинстве систем это не так. На данном этапе мы не можем полностью отказаться от трехмерного представления. Это вызвано тем, что для работы алгоритмов удаления невидимых линий и поверхностей необходима информация о расстоянии от объектов до точки наблюдения (глубина по сцене). На основе этой информации принимается решение о видимости объектов или их фрагментов.

Многие алгоритмы удаление невидимых линий и поверхностей работают на следующем этапе видового конвейера, поэтому результатом проецирования, как правило, является промежуточный 2D/3D образ. Аббревиатуры 2D и 3D, соответственно, произошли от английских словосочетаний two dimensional – двухмерный и three dimensional – трехмерный. В этом образе сочетается описание положения объектов на плоскости с дополнительными характеристиками, определяющими положение этих объектов по глубине сцены.

В двумерной части сформированного образа все объекты представлены своими характеристическими (контрольными, управляющими) точками. Например, в модели трехмерный отрезок определяется двумя вершинами, определяющими его концы. Каждая вершина описывается тройкой координат. После проецирования двумерный образ нашего отрезка так же описывается парой вершин, каждая из которых характеризуются только двумя координатами. Для вывода изображения данного отрезка необходимо, основываясь на координатах его вершин, определить точки растра, наилучшим образом отображающие внутреннюю часть отрезка. Процесс формирования промежуточных точек графического образа объекта составляет основу растрового преобразования или просто – растеризации (rasterization, scan convertion).

Как уже говорилось, параллельно с растеризацией, может решаться вопрос о видимости выводимых пикселей. Кроме того, на этом этапе выполняется закрашивание (shading). Для каждого пикселя изображения необходимо определить его цветовые характеристики.

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

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