- •Томск 2004
- •1.Введение
- •1.1.Способы представления изображений в памяти эвм
- •1.2.Классификация программного обеспечения компьютерной графики
- •Параметры растровых изображений
- •1.3.Представление цвета в компьютере
- •1.3.1.Цветовые модели
- •1.3.2.Системы управления цветом
- •1.4.Графические файловые форматы
- •По типу хранимой графической информации:
- •2.Растровые алгоритмы
- •2.1.Алгоритмы растеризации
- •2.1.1.Растровое представление отрезка. Алгоритм Брезенхейма
- •2.1.2.Растровая развёртка окружности
- •2.1.3.Закраска области, заданной цветом границы
- •2.1.4.Заполнение многоугольника
- •2.2.Методы устранения ступенчатости
- •2.2.1.Метод увеличения частоты выборки
- •2.2.2.Метод, основанный на использовании полутонов
- •2.3.Простейшие методы обработки изображений
- •2.3.1.Яркость и контраст
- •2.3.2.Масштабирование изображения
- •2.3.3.Преобразование поворота
- •2.3.4.Цифровые фильтры изображений
- •3.Компьютерная геометрия
- •3.1.Двумерные преобразования
- •3.1.1.Однородные координаты
- •3.1.2.Двумерное вращение вокруг произвольной оси
- •3.2.Трехмерные преобразования и проекции
- •3.3.Проекции
- •3.4.Математическое описание плоских геометрических проекций
- •3.5.Изображение трехмерных объектов
- •4.Представление пространственных форм
- •4.1.Полигональные сетки
- •4.1.1.Явное задание многоугольников
- •4.1.2.Задание многоугольников с помощью указателей в список вершин
- •4.1.3.Явное задание ребер
- •4.2.Введение
- •4.3.Алгоритм плавающего горизонта
- •4.4.Алгоритм Робертса
- •4.4.1.Определение нелицевых граней
- •4.4.2.Удаление невидимых ребер
- •4.5.Алгоритм, использующий z буфер
- •4.6.Метод трассировки лучей (ray casting)
- •4.7.Алгоритмы, использующие список приоритетов
- •4.7.1.Алгоритм Ньюэла-Ньюэла-Санча для случая многоугольников
- •4.8.Алгоритм Варнока (Warnock)
- •4.9.Алгоритм Вейлера-Азертона (Weiler-Atherton)
- •5.Методы закраски
- •5.1.Диффузное отражение и рассеянный свет
- •5.2.Зеркальное отражение
- •5.3.Однотонная закраска полигональной сетки
- •5.4.Метод Гуро
- •5.5.Метод Фонга
- •5.6.Тени
- •5.7.Поверхности, пропускающие свет
- •5.8.Детализация поверхностей
- •5.8.1.Детализация цветом
- •5.8.2.Детализация фактурой
- •6.Библиотека OpenGl
- •6.1.Особенности использования OpenGl в Windows
- •6.2.Основные типы данных
- •6.3.Рисование геометрических объектов
- •6.3.1.Работа с буферами и задание цвета объектов
- •6.3.2.Задание графических примитивов
- •6.3.3.Рисование точек, линий и многоугольников
- •6.4.Преобразование объектов в пространстве, камеры
- •6.4.1.Преобразования в пространстве
- •6.4.2.Получение проекций
- •6.5.Задание моделей закрашивания
- •6.6.Освещение
- •6.7.Полупрозрачность. Использование α-канала
- •6.8.Наложение текстуры
- •7.Аппаратные средства машинной графики
- •7.1.Устройства ввода
- •7.1.1.Сканеры
- •Принцип действия и виды сканеров
- •Основные характеристики
- •Фирмы-производители
- •7.1.2.Дигитайзеры
- •Принцип действия
- •Основные характеристики
- •Фирмы-производители
- •7.1.3.Цифровые фотокамеры
- •Принцип действия
- •Фирмы-производители
- •8.Литература
- •9.Содержание
- •1. Введение 3
- •2. Растровые алгоритмы 27
- •3. Компьютерная геометрия 52
- •4. Представление пространственных форм 83
- •5. Методы закраски 114
- •6. Библиотека OpenGl 124
- •7. Аппаратные средства машинной графики 141
- •8. Литература 147
- •9. Содержание 149
1.3.Представление цвета в компьютере
Понятие света и цвета в компьютерной графике являются основополагающими. Свет можно рассматривать двояко – либо как поток частиц различной энергии, либо как поток электромагнитных волн.
Понятие цвета тесно связано с тем как человек воспринимает свет. Можно сказать, что ощущение света формируется человеческим мозгом в результате анализа светового потока, попадающего на сетчатку глаз.
Источник или объект является ахроматическим если наблюдаемый свет содержит все видимые длины волн в приблизительно равных количествах. Ахроматическими цветами являются белый, черный, градации серого цвета. Например, белыми выглядят объекты ахроматически отражающие более 80% света белого источника, а черными менее 3%.
Если воспринимаемый свет содержит длинны волн в неравных количествах, то он называется хроматическим.
Считается, что в глазе человека существует три группы цветовых рецепторов (колбочек), каждая из которых чувствительна к определенной длине световой волны. Каждая группа формирует один из трех основных цветов: красный, зеленый, синий.
Если длины волн светового потока сконцентрированы у верхнего края видимого спектра (около 700 Нм), то свет воспринимается как красный. Если длины волн сконцентрированы у нижнего края видимого спектра (около 400 Нм), то свет воспринимается как синий. Если длины волн сконцентрированы в середине видимого спектра (около 550 Нм), то свет воспринимается как зеленый.
С помощью экспериментов, построенных на этой гипотезе, были получены кривые реакции глаза, показанные на рисунке.
Рис. 1.5 Кривые реакции глаза
Физические характеристики светового потока определяются параметрами мощности, яркости и освещенности. Визуальные параметры ощущения цвета характеризуются светлотой, насыщенностью и цветовым тоном.
Светлота это различимость участков, сильнее или слабее отражающих свет. Минимальную разницу между яркостью различимых по светлоте объектов называю порогом.
Насыщенность цвета показывает, насколько данный цвет отличается от монохроматического («чистого») излучения того же светового тона. Насыщенность характеризует степень ослабления (разбавления) данного цвета белым, и позволяет отличать розовый от красного, голубой от синего.
Цветовой тон позволяет различать основные цвета, такие как красный, зеленый, синий.
1.3.1.Цветовые модели
Как видим из вышеизложенного, описание цвета может опираться на составление любого цвета на основе основных цветов или на такие понятия как светлота, насыщенность, цветовой тон. Применительно к компьютерной графике описание цвета также должно учитывать специфику аппаратуры для ввода/вывода изображений. В связи с необходимостью описания различных физических процессов воспроизведения цвета, были разработаны различные цветовые модели. Цветовые модели позволяют с помощью математического аппарата описать определенные цветовые области спектра. Цветовые модели описывают цветовые оттенки с помощью смешивания нескольких основных цветов.
Основные цвета разбиваются на оттенки по яркости от темного к светлому и каждой градации яркости присваивается цифровое значение (например, самой темной - 0, самой светлой - 255). Считается, что в среднем человек способен воспринимать около 256 оттенков одного цвета. Таким образом, любой цвет можно разложить на оттенки основных цветов и обозначить его набором цифр - цветовых координат.
Таким образом, при выборе цветовой модели можно определять трехмерное цветовое координатное пространство, внутри которого каждый цвет представляется точкой. Такое пространство называется пространством цветовой модели.
Профессиональные графические программы обычно позволяют оперировать с несколькими цветовыми моделями, большинство из которых создано для специальных целей или особых типов красок: CMY, CMYK, CMYK256, RGB, HSB, HLS, L*a*b, YIQ, Grayscale (Оттенки серого) и Registration color. Некоторые из них используются редко, диапазоны других перекрываются.
Цветовая модель RGB. В основе одной из наиболее распространенных цветовых моделей, называемой RGB моделью, лежит воспроизведение любого цвета путем сложения трех основных цветов: красного (Red), зеленого (Green) и синего (Blue). Каждый канал - R, G или B имеется свой отдельный параметр, указывающий на количество соответствующей компоненты в конечном цвете. Например - (255, 64, 23) - цвет, содержащий сильный красный компонент, немного зелёного и совсем немного синего. Естественно, что этот режим наиболее подходит для передачи богатства красок окружающей природы. Но он требует и больших расходов, так как глубина цвета тут наибольшая - 3 канала по 8 бит на каждый дают 24 бита.
Поскольку в RGB модели происходит сложение цветов, то она называется аддитивной (additive). Именно на такой модели построено воспроизведение цвета современными мониторами.
Цветовым пространством RGB модели является единичный куб.
Рис. 1.6 Цветовое пространство RGB модели
Цветовые модели CMY и CMYK. Модель CMY использует также три основных цвета: Cyan (голубой), Magenta (пурпурный или малиновый) и Yellow (желтый). Эти цвета описывают отраженный от белой бумаги свет трех основных цветов RGB модели. Поэтому можно описать соотношения между RGB и CMY моделями следующим образом.
Модель CMY является субтрактивной (основанной на вычитании) цветовой моделью. Как уже говорилось, в CMY модели описываются цвета на белом носителе. То есть краситель, нанесенный на белую бумагу, вычитает часть спектра из падающего белого света. Например, на поверхность бумаги нанесли голубой (Cyan) краситель. Теперь красный свет, падающий на бумагу, полностью поглощается. Таким образом, голубой носитель вычитает красный свет из падающего белого.
Такая модель наиболее точно описывает цвета при выводе изображения на печать, т.е. в полиграфии.
Поскольку для воспроизведения черного цвета требуется нанесения трех красителей, а расходные материалы дороги, использование CMY модели является не эффективным. Дополнительный фактор, не добавляющий привлекательности CMY модели – это появление нежелательных визуальных эффектов, возникающие за счет того, что при выводе точки три базовые цвета могут ложится с небольшими отклонениями. Поэтому к базовым трем цветам CMY модели добавляют черный (blacK) и получают новую цветовую модель CMYK.
Для перехода из модели CMY в модель CMYK иногда используют следующее соотношение:
K = min(C, M, Y),
C = C – K,
M = M – K,
Y = Y – K.
Соотношения преобразования RGB в CMY и CMY в CMYK модель верны лишь в том случае, когда спектральные кривые отражения для базовых цветов не пересекаются. Поэтому в общем случае можно сказать, что существуют цвета, описываемы в RGB модели, но не описываемее в CMYK модели.
Существует, также, модель CMYK256 используется для более точной передачи оттенков при качественной печати изображений.
Цветовые модели HSV и HLS. Рассмотренные модели ориентированны на работу с цветопередающей аппаратурой и для некоторых людей не удобны. Поэтому модели HSV, HLS опираются на интуитивные понятия тона насыщенности и яркости.
В цветовом пространстве модели HSV (Hue, Saturation, Value) иногда называемой HSB (Hue, Saturation, Brightness), используется цилиндрическая система координат, а множество допустимых цветов представляет из собой шестигранный конус, поставленный на вершину.
Основание конуса представляет яркие цвета и соответствует V = 1. Однако цвета основания V = 1 не имеют одинаковой воспринимаемой интенсивности. Тон (H) измеряется углом, отсчитываемым вокруг вертикальной оси OV. При этом красному цвету соответствует угол 00, зелёному – угол 1200 и т. д. Цвета, взаимно дополняющие друг друга до белого, находятся напротив один другого, т. е. их тона отличаются на 1800. Величина S изменяется от 0 на оси OV до 1 на гранях конуса.
Конус имеет единичную высоту (V = 1) и основание, расположенное в начале координат. В основании конуса величины H и S смысла не имеют. Белому цвету соответствует пара S = 1, V = 1. Ось OV (S = 0) соответствует ахроматическим цветам (серым тонам).
Процесс добавления белого цвета к заданному можно представить как уменьшение насыщенности S, а процесс добавления чёрного цвета – как уменьшение яркости V. Основанию шестигранного конуса соответствует проекция RGB куба вдоль его главной диагонали.
Рис. 1.7 Цветовое пространство HSV модели
Еще одним примером системы, построенной на интуитивных понятиях тона насыщенности и яркости, является система HLS (Hue, Lightness, Saturation). Здесь множество всех цветов представляет собой два шестигранных конуса поставленных друг на друга (основание к основанию).
Рис. 1.8 Цветовое пространство HLS модели
Полноцветные и индексированные изображения. Как мы увидели, цвета пикселов можно определять, явно задавая несколько параметров цвета. Например, в RGB модели конечный цвет определяется тремя слагаемыми для трех основных цветов. Такой подход позволяет формировать так называемые полноцветные изображения.
Второй подход заключается в том, что в первой части файла хранящего изображение хранится «палитра», в которой с помощью одной из цветовых моделей кодируются цвета присутствующие на изображении. А вторая часть, которая непосредственно описывает пикселы изображения, фактически состоит из индексов в палитре. Изображения, формируемые таким способом, называются изображениями с индексированной палитрой.
Частным случаем индексированного изображения является черно-белое изображение. В подобном изображении могут быть только 2 цвета - чёрный и белый, кодируемые соответственно 0 и 1. Глубина изображения составляет в данном случае 1 бит. Эта глубина очень плохо подходит к представлению фотореалистичных образов и применяется лишь для специализированных изображений.
Достоинством палитры является возможность существенной сократить размер файла с изображением. Недостатком является возможность потери цветов при ограниченном размере палитры. Обычно размер палитры составляет до 256 цветов.