Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Конспект лекций по компьютерной графике.doc
Скачиваний:
739
Добавлен:
17.03.2015
Размер:
17.09 Mб
Скачать

Кодирование цвета. Палитра

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

Для модели RGB любой из компонентов может быть представлен числами, ограничен­ными определенным диапазоном — например, дробными числами от 0 до 1, или целыми числами от 0 до какого-либо максимального значения. В настоящее время довольно распро­странен формат True Color, в котором каждый компонент представлен в виде банта, что да­ет 256 градаций для любого компонента: R - 0 ... 255, G = 0 ... 255, В = 0 ... 255. Количество цветов составляет 256x256x256 = 16.7 млн. (224).

Такой способ кодирования цветов можно назвать компонентным. В компьютере коды изображений True Color представлены в виде троек байтов или упаковываются в длинное целое (четырехбайтовое) — 32 бита (так, например, сделано в API Windows):

С = 00000000 bbbbbbbb gggggggg rrrrrrrr.

При работе с изображениями в системах КГ часто приходится искать компромисс между качеством изображения (требуется как можно больше цветов) и ресурсами, необходимыми для хранения и воспроизведения изображения. Ресурсы исчисляются, например, объемом памяти (нужно уменьшать количество бит на пиксел).

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

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

Недостатком такой палитры можно считать отсутствие оранжевого цвета — этот цвет является одним из семи основных цветов радуги. Существуют также другие стандартные палитры, например, 256-цветная для VGA. Компьютерные видеосистемы обычно предос­тавляют возможность программисту установить собственную палитру.

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

Глава 7. Методы и алгоритмы построения сложных трехмерных объектов

Понятие “трехмерная” графика в настоящее время можно считать наиболее распростра­ненным для обозначения темы, которая будет рассмотрена ниже (в литературе это название часто сокращается до "ЗD-графики"). Однако необходимо заметить, что такое название неточное, так как речь пойдет о создании изображения на плоскости, а не в объеме. Действительно трехмерные средства отображения пока что недостаточно широко распространены.

7.1 Модели описания поверхностей

Для описания формы поверхностей могут использоваться разнообразные методы. Сде­лаем обзор этих методов.

7.1.1. Аналитическая модель

Аналитической моделью будем называть описание поверхности математическими формулами. В КГ можно использовать много разновидностей такого описания. Например, в виде функции двух аргументов z = f(x, у). Можно использовать уравнение F(x, у, z) = 0.

Наиболее часто используется параметрическая форма описания поверхности. Запишем формулы для трехмерной декартовой системы координат (x, у, z):

где s и t — параметры, которые изменяются в определенном диапазоне, а функции Fx, Fy,и Fz определяют форму поверхности.

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

В качестве примера рассмотрим аналитическое описание поверхности шара. Сначала как функцию двух аргументов:

z = ±

В виде уравнения: x2 + y2 + z2 - R2=0.

А также в параметрической форме:

x=Rsins cost, y=Rsins sint, z = R coss.

Для описания сложных поверхностей часто используют сплайны. Сплайн - это специ­альная функция, наиболее пригодная для аппроксимации отдельных фрагментов поверхно­сти. Несколько сплайнов образуют модель сложной поверхности. Другими словами, сплайн — эта тоже поверхность, но такая, для которой можно достаточно просто вычислить координаты ее точек. Обычно используют кубические сплайны. Почему именно кубиче­ские? Так как третья степень является наименьшей, позволяющей описывать любую форму, и при стыковке сплайнов можно обеспечить непрерывную первую производную — такая поверхность будет без излома в местах стыка. Сплайны часто определяют параметрически. Запишем формулу для координаты x(s,t) кубического сплайна в виде многочлена третьей степени параметров s и t:

Для других координат можно записать подобные формулы — в виде функций y(s, t), z(s,t).

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

Рассмотрим одну из разновидностей сплайнов — сплайн Безье. Приведем его сначала в обобщенной форме — степени тхп:

P(s,t) =

где Рij — опорные точки-ориентиры, 0≤s≤1, 0≤t≤1, и коэффициенты бинома Ньютона, они рассчитываются по формуле:

Кубический сплайн Безье соответствует т = 3, п = 3. Для его определения необходимы 16 точек-ориентиров Рij (рис. 7.1); коэффициенты и равняются 1,3, 3, 1 при i,j = 0,1,2,3.

Характеризуя аналитическую модель в целом, можно сказать, что эта модель наиболее пригодна для многих операций анализа поверхностей. С позиций КГ можно указать такие положительные черты: простота (впрочем, не всегда) расчета координат каждой точки по­верхности, нормали; небольшой объем информации для описания довольно сложных форм.

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

Рис. 7.1. Кубические сплайны Безье