Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

617_Zabelin_L.JU._Osnovy_komp'juternoj_grafiki_

.pdf
Скачиваний:
41
Добавлен:
12.11.2022
Размер:
8.13 Mб
Скачать

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

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

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

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

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

41

Простейшим вариантом дизеринга можно считать создание оттенка цвета парами соседних пикселей. Если рассмотреть ячейки из двух пикселей, то ячейка номер 1 дает оттенок цвета:

C

C1 C2

,

(7.2.1.)

 

2

 

 

где С1 и C2 – цвета, которые графическое устройство способно непосредственно воспроизвести для каждого пикселя. Числовые значения С, С1 и C2 можно рассчитать в полутоновых градациях или в модели RGB – отдельно для каждой компоненты.

Рисунок 7.2.1. – Ячейки из двух пикселей

Рисунок 7.2.2. – Простейший дизеринг

Пример растра с использованием ячеек из двух пикселей приведен выше. Как видно, для создания промежуточного оттенка «С» ячейки образовывают вертикальные линии, которые очень заметны. Для того чтобы человек воспринял это как сплошной оттенок, необходимо, чтобы угловой размер ячеек был меньше одной угловой минуты. Можно изменять положения таких ячеек в растре, располагая их, например, по диагонали. Это несколько лучше, но не намного.

Чаще используют квадратные ячейки больших размеров. Дадим пример ячеек размером 2х2. Такие ячейки дают 5 градаций, из них три комбинации (1, 2, 3) образуют новые оттенки.

42

Рисунок 7.2.3. – Квадратные ячейки

Расчет цвета, соответствующего одной из комбинаций пикселей в ячейке, можно выполнить таким образом. Если пиксели ячейки могут быть только двух цветов С1 и C2, то необходимо подсчитать часть площади ячейки для пикселей каждого цвета. Цвет ячейки С можно оценить соотношением:

C

C1 S1 C2 (S S1 )

 

S1C1 S2C2

(7.2.2.)

S '

S

 

 

 

где S – общая площадь ячейки;

S1 и S2 – части площади, занятых пикселями цветов C1 и С2 соответственно, причем S1 + S2 = S.

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

Рисунок 7.2.4 – Квадратные пиксели по размеру равные шагу размещения пикселей

S 25, S1 20, S2

5

C

20C1 5C2

(7.2.3.)

25

 

 

 

 

 

Для такой ячейки 5x5, дадим расчет цвета С для некоторых цветов С1 и

С2.

Пример расчета: пусть С1 – белый цвет (R1G1B1) = (255, 255, 255), а С2 – черный (R2G2B2) = (0, 0, 0), тогда

R

(S1R1

S2 R2 ) / S

 

204

 

 

 

 

 

 

 

 

 

 

 

 

C G

(S1G1

S2G2 ) / S

 

204

 

(7.2.4.)

B

 

(S B

S

B ) / S

 

204

 

 

 

 

 

1 1

 

2 2

 

 

 

 

 

то есть мы получили светло-серый цвет.

43

Самостоятельно определить цвет С: Если С1 – желтый цвет (R1G1B1) =

(255, 255, 0), а С2 – красный (R2G2B2) = (255, 0, 0), C – ?

Ответ: оттенок оранжевого цвета.

Следовательно, если в ячейке размерами (п х п) использованы два цвета, то с помощью этой ячейки можно получить п2+1 различных цветовых градаций. Две комбинации пикселей – когда все пиксели ячейки имеют цвет С1 или С2 – дают цвет ячейки соответственно С1, или С2. Все иные комбинации дают оттенки, промежуточные между С1 и С2. Можно считать, что ячейки размером (п х п) образовывают растр с разрешающей способностью в п раз меньшей, чем у исходного растра, а глубина цвета возрастает пропорционально п2.

7.3. Реализация метода «дизеринга» в графической системе

Рассмотрим примеры преобразования растрового изображения размером p*q с определенной глубиной цвета в другой растр, предназначенный для отображения с помощью графического устройства, в котором используется ограниченное количество основных цветов. В таком случае нужно выбрать размеры ячейки т*п, которые обеспечивают достаточное количество цветовых градаций. Затем каждый пиксель растра превращается в пиксель растра отображения. Это можно осуществить двумя способами [21].

Первый способ. Каждый пиксель заменяется ячейкой из т*п пикселей. Это самое точное преобразование по цветам, но размер растра увеличивается и равен (тр х nq) пикселей.

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

1.Определяем координаты пикселя (х, у) для преобразуемого растра.

2.Находим цвет пикселя (х, у).

3.По цвету пикселя находим номер (k) ячейки, наиболее адекватно представляющей этот цвет.

4.По координатам (х,у) вычисляем координаты пикселя внутри ячейки: xk = x mod т; уk = у mod п.

5.Находим цвет (С) пикселя ячейки с координатами (xk , уk).

6.Записываем в растр отображения пиксель (х,у) с цветом С.

Такой способ можно использовать не для любых вариантов расположения пикселей в ячейках. Конфигурации пикселей должны быть специально разработаны для таких преобразований. Одно из требований можно сформулировать так. Если ячейки разработаны на основе двух цветов, например, белого и черного, а градации изменяются пропорционально номеру ячейки, то необходимо, чтобы ячейка с номером (i) для более темной градации серого содержала бы все черные пиксели ячейки номер (i – 1).

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

44

Рисунок 7.3.1. – Изображение на основе ячеек 5х5. Квадратный растр

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

 

 

y

m

 

s

 

mod 2

 

 

 

 

 

 

 

n

2

 

xk

(x s) mod m

(7.3.1.)

yk

y mod n

 

 

 

Рисунок 7.3.2 – Изображение на основе диагонального расположения ячеек

Вы, наверное, уже заметили, что для всех приведенных выше примеров дизеринга ячейки образовывают точки переменного размера с постоянным шагом. Однако часто используется иной подход – переменная густота расположения точек постоянного размера. Такой способ получил название частотной модуляции (ЧМ).

Положительная черта способа ЧМ – меньшая заметность структуры растра. Однако его использование затруднено в случае, когда размер пикселей больше, чем их шаг. Начиная с определенной густоты, пиксели смыкаются. Кроме того, на дискретном растре невозможно обеспечить плавное изменение густоты (частоты), в особенности для ячеек небольшого размера. Рассмотрим пример ячеек 5х5, реализующих ЧМ-дизеринг.

Для изображений, созданных методом ЧМ-дизеринга, наблюдается меньшая заметность растровой структуры.

45

Рисунок 7.3.3. – Изображения, созданные методом ЧМ-дизеринга

Однако при регулярном расположении одинаковых ячеек всегда образовывается текстура, муар, лишние контуры. Одна из важных задач – разработка таких вариантов ячеек, которые предопределяют наименее заметную растровую структуру (кроме тех случаев, когда, наоборот, такую структуру нужно подчеркнуть для создания изображения в стиле гравюры). Это довольно сложная задача.

Один из способов создания достаточно качественных изображений – это диффузный дизеринг (diffused dithering). Суть его в том, что ячейки создаются случайно (или псевдослучайно). Если для каждой градации создавать случайные ячейки, то даже для фрагмента растра пикселей с постоянным цветом не будут образовываться регулярные структуры. Это соответствует диффузному отражению света от матовой поверхности.

8. Трехмерная графика

Будем считать, что необходимо смоделировать 3D-объект на 2D плоско-

сти [8].

Упрощенно схему этого процесса можно представить следующей последовательностью действий, указанных на рисунке 8.1.

 

 

 

 

Простран-

 

Пространство

Локальное про-

 

Мировое

 

 

 

 

ство глаза

 

экрана

странство

 

пространство

 

 

 

 

 

 

 

 

 

 

 

 

 

Отсечение

 

 

 

 

Удаление не-

 

 

 

Сцена,

 

 

Моделирова-

 

 

 

 

 

видимых ча-

 

(clipping),

ние,

 

Освещение,

 

 

 

 

стей картин-

 

Растровое преобра-

Композиция

 

Материалы по-

 

 

 

 

ки.

 

зование закраски.

составных ча-

 

верхностей.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рисунок 8.1. – Схема процесса моделирования 3D-объект на 2D плоскости

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

46

Задача моделирования – поиск вида (представления) модели, наилучшим образом отвечающего решаемой задаче.

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

Моделируются:

·объекты реального мира,

·синтетические объекты (например, научная визуализация).

Компоненты геометрической модели:

·Пространственное расположение и форма – геометрия объекта и некоторые атрибуты цвет, текстура;

·Топология (связность с другим объектом).

Выбор представления:

·максимизирование возможностей графической подсистемы,

·алгоритмы обработки данных,

·алгоритмы редактирования данных.

Создание моделей:

А) Автоматическое:

·устройства ввода трехмерной информации (например, 3d сканеры),

·реконструкция из изображений (машинное зрение),

·результаты вычислений.

Б) Ручное:

·системы для моделирования (3D studio MAX, Maya, т.д.)

Рисунок 8.2. – Пример системы моделирования

Система координат. Будем использовать декартову систему координат, как наиболее распространенную.

47

Рисунок 8.3. – «Правило руки»

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

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

х =Fx(s, f),

(8.1.)

y = Fy(s,t)

(8.2.)

z = Fz(s,t),

(8.3.)

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

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

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

 

 

 

z R2 x2 y2

(8.4.)

48

Затем в виде уравнения:

х2 + у2 + z2 - R2 = 0.

(8.5.)

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

xR sin s cos t

y sin s sin t

(8.6.)

z R cos s

 

Для описания сложных поверхностей часто используют сплайны.

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

x(s,t) = а11 s3t3 + а12 s3t2 + a13 s3t + a14 s3 + a21 s2t3 + a22 s2t2 + а23 s2t + a24 s2 +

+ a31 s t3 + a32 s t2 + а33 s t + a34 s + a41 t3 + a42 t2 + a43 t + a44.

(8.7.)

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

Рисунок 8.4. – Сплайны

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

49

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

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

Рассмотрим векторную полигональную модель. Для описания пространственных объектов в векторной полигональной модели используются такие элементы: вершины, отрезки прямых (векторы); полилинии, полигоны; полигональные поверхности [8].

Элемент «вершина» (vertex) – главный элемент описания, все другие являются производными. При использовании трехмерной декартовой системы координаты вершин определяются как i, уi, zi). Каждый объект однозначно определяется координатами собственных вершин.

Точка

Вектор

Полилиния

 

 

Полигон

Полигональная поверхность

Рисунок 8.5. – Векторная полигональная модель

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

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

50