- •Лекция 1. Введение в компьютерную графику
- •История технологий вывода
- •Направления компьютерной графики
- •Изобразительная компьютерная графика
- •Обработка и анализ изображений
- •Анализ сцен
- •Когнитивная компьютерная графика
- •Приложения компьютерной графики
- •Лекция 2. Аппаратное обеспечение компьютерной графики
- •Устройства отображения информации
- •Векторные дисплеи
- •Растровые дисплеи
- •Основные характеристики монитора
- •Устройства ввода графической информации Световое перо
- •Манипулятор «мышь»
- •Трекбол
- •Дигитайзер
- •Устройства трехмерного сканирования
- •Устройства вывода графической информации Принтеры
- •История развития видеоадаптеров для совместимых компьютеров
- •Типы графических форматов
- •Растровые форматы
- •Векторные форматы
- •Метафайловые форматы
- •Методы сжатия, используемые в растровых форматах Лекция 3. Математические основы компьютерной графики. Преобразования в двухмерном пространстве
- •П реобразование точек
- •Преобразование прямых линий
- •Двумерное смещение и однородные координаты.
- •Однородные координаты. Операции в них
- •Операция cмещения
- •Вращение
- •Лекция 4. Преобразования в 3d пространстве. Виды проецирования
- •Смещение
- •Виды проецирования
- •Двухточечное проецирование по p, q
- •Стереографическая и специальные перспективные проекции
- •Проекция на плоскость
- •Проекция на сферу (рыбий глаз)
- •Проекция на цилиндрическую поверхность
- •Лекция 5. Растровая графика. Представление графических примитивов. Алгоритмы вычерчивания отрезков. Растровые алгоритмы
- •Вывод на экран произвольной точки
- •Растровое представление отрезка
- •Растровое представление отрезка. Алгоритм Брезенхейма
- •Простой метод устранения лестничного эффекта
- •Модифицированный алгоритм Брезенхейма с устранением ступенчатости для первого квадранта
- •Отсечение отрезка. Алгоритм Сазерленда-Кохена
- •Лекция 6. Растровая развертка сплошных областей. Алгоритмы заполнения контуров. Алгоритмы закраски многоугольников. Растровая развертка сплошных областей
- •Заполнение многоугольников
- •Растровая развертка многоугольников
- •Простой алгоритм с упорядоченным списком ребер
- •Простой алгоритм с упорядоченным списком ребер
- •Более эффективные алгоритмы с упорядоченными списком ребер
- •Лекция 7. Основы 3d графики Задание объектов и сцен
- •П ерспективное проецирование
- •Работа с произвольной камерой
- •Моделирование текстуры
- •Лекция 8. Алгоритмы удаления невидимых линий и поверхностей о тсечение нелицевых граней
- •Алгоритм художника
- •Метод z-буфера
- •Порталы
- •Алгоритм Сазерленда-Ходжмана
- •Алгоритмы упорядочения
- •Метод двоичного разбиения пространства
- •Метод построчного сканирования
- •Лекция 9. Расчет освещения м одель освещения
- •Расчет нормали к объекту
- •Освещение по Ламберту
- •Освещение по Гуро
- •Освещение по Фонгу
- •Лекция 10. Построение изображений методом трассировки лучей Основы метода трассировки лучей
- •Методы оптимизации
- •Литература
Типы графических форматов
Существует несколько различных типов графических форматов, каждый из которых сохраняет данные определённым способом. В настоящее время наиболее широко используются растровый, векторный и метафайловый форматы.
Растровые форматы
Растровые форматы используются для хранения растровых данных. Файлы этого типа особенно хорошо подходят для хранения реальных изображений, например фотографий и видеоизображений. Растровые файлы, по сути дела, содержат точную поточечную карту изображения. Программа визуализации реконструирует это изображение на отображающей поверхности устройства вывода.
Наиболее распространенные растровые форматы – это Microsoft BMP, PCX, TIFF и TGA.
Векторные форматы
Файлы векторного формата особенно полезны для хранения линейных элементов (линий и многоугольников), а также элементов, которые можно разложить на простые геометрические объекты (например, текст). Векторные файлы содержат не значения точек, а математическое описание графических форм (линий, кривых, сплайнов) программа визуализации строит изображение.
Векторные файлы обычно организованы в виде потоков данных. Примеры наиболее распространенных векторных форматов – AutoCAD DXF и Microsoft SYLK.
Метафайловые форматы
Метафайлы могут хранить и растровые, и векторные данные. Простейшие метафайлы напоминают файлы векторного формата; они содержат язык или синтаксис для определения элементов векторных данных, но могут включать и растровое представление изображения. Метафайлы часто используются для транспортировки растровых и векторных данных между аппаратными платформами, а также для перемещения изображений между программными платформами.
Наиболее распространенные метафайловые форматы – WMF (Windows Metafile), Macintosh PICT и CGM.
Методы сжатия, используемые в растровых форматах Лекция 3. Математические основы компьютерной графики. Преобразования в двухмерном пространстве
В компьютерной графике всё, что относится к двумерному пространству, принято обозначать символом (2D) (2-dimension).
Допустим, на плоскости введена прямолинейная координатная система. Тогда каждой точке M ставится в соответствие упорядоченная пара чисел (x, y) её координат.
П реобразования используются в разных целях: чтобы различные части объекта можно было описывать в различных координатных системах; чтобы типовые и повторяющиеся части объекта можно было располагать в разных и положениях на чертеже и в пространстве, в том числе с использованием циклов; чтобы без повторной кодировки можно было получать симметричные части объекта; для направленной деформации фигур, тел и их частей; для изменения масштаба чертежа, построения проекций пространственных образов и др. С аналитической точки зрения преобразования - это пересчет значений координат.
Вводя на плоскости ещё одну прямолинейную систему координат, мы ставим в соответствие той же точке M другую пару чисел - (x*, y*).
П реобразование точек
Поворот (вокруг начала координат
на угол ) описывается формулами:
x* = x cos () - y sin ()
y* = x sin () + y cos ()
Растяжение (сжатие) вдоль
координатных осей можно задать так:
x* = x
y* = y
Растяжение (сжатие) вдоль оси абсцисс обеспечивается при условии, что > 1 ( < 1)
Отражение (относительно оси абсцисс) задается при помощи формул:
x * = x
y* = -y
П еренос задается при помощи формул:
x* = x +
y* = y +
Для эффективного использования этих формул в задачах компьютерной графики более удобной является их матричная запись.
Рассмотрим результаты матричного умножения [х у], определяющей точку Р, и матрицы преобразований 2х2 общего вида:
[x y] [a b] = [(ax+cy), (bx+dy)] = [x* y*] (3.1)
[c d]
Исследуем несколько частных случаев.
1) а = d = 1 и с = b = 0. Изменений не происходит
[x y] [1 0] = [x y] = [x* y*] (3.2)
[0 1]
2) d = 1, b = c = 0 Изменение масштаба по оси X
[x y] [a 0] = [ax y]= [x* y*] (3.3)
[0 1]
3) b = с = 0 Изменение масштаба по оси X и Y
[x y] [a 0] = [ax dy]= [x* y*] (3.4)
[0 d]
4) b = с = 0 d=1 a=-1 Отображение координат относительно оси Y
[x y] [-1 0] = [-x y] = [x* y*] (3.5)
[ 0 1]
5) b = с = 0 a=d<0 Отображение относительно начала координат
[x y] [-1 0] = [-x y] = [x* y*] (3.6)
[ 0 1]
6) а = d = 1, с = 0 Сдвиг
[x y] [1 b] = [x (bx+y)] = [x* y*] (3.7)
[0 1]
Для начала координат имеем инвариантно
[0 0] [a b] = [0 0] = [x* y*]
[c d]