Система субтрактивных цветов

Виды графических систем

На графических устройствах вывода изображение может создаваться двумя путями: путем произвольного сканирования или путем растрового сканирования [10, 14].

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

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

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

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

Основными характеристиками растра являются:

· разрешающая способность – характеризует расстояние между соседними пикселями, измеряется в количестве пикселей на единицу длины (dpi – dots per inch – количество пикселей на дюйм);

· размер растра – количество пикселей по горизонтали и вертикали;

· форма пикселей – прямоугольные, квадратные, круглые;

· количество цветов (глубина) – количество бит, используемых для хранения информации о цвете одного пикселя.

К устройствам с растровым сканированием относятся мониторы, телевизоры, принтеры.

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

В мониторах применяются построчная и чересстрочная развертки (рис. 1.2).

 
  Система субтрактивных цветов - student2.ru

Рис. 1.2. Схемы построчной (а) и чересстрочной (б) разверток.

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

Чересстрочная развертка чаще применяется в телевизорах. Сначала воспроизводятся только нечетные строки растра (нечетный полукадр), потом – четные (четный полукадр).

Большинство растровых графических устройств используют от 256 до 1024 строки, телевизионное вещание в США – 525 строк.

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

В настоящее время доминирует растровый способ визуализации. Это связано с большой распространенностью растровых мониторов и печатающих устройств (принтеров).

Форматы графических файлов

Формат графического файла – способ представления и расположения графических данных на внешнем носителе.

Как и в случае с аппаратной визуализацией, различают векторные и растровые форматы.

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

Недостаток векторного формата – не позволяет получать описания изображений фотографического качества.

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

Примером векторного формата графических файлов является формат AutoCAD DXF (Drawing Interchange Format – формат обмена чертежами), используемый прикладными программами AutoCAD, CorelDRAW! и многими программами САПР.

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

Для кодирования 16 цветов используется 4 бита на один пиксель изображения, для кодирования 256 цветов – 8 бит. С помощью 24 бит кодируют 224 цветов (True Color). Отсюда вытекает основной недостаток растрового формата – для хранения описания изображения высокого качества (с большим разрешением и битовой глубиной) требуется большой памяти. В тоже время, растровый формат, в отличие от векторного, позволяет получать описания изображений фотографического качества.

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

Существуют следующие методы сжатия [5, 8].

1) С помощью программ-архиваторов (ZIP, ARJ, RAR). Сжатие проводится также как и для неграфических файлов. Сжатый таким образом файл не может использоваться ни одной программой до того как будет разархивирован.

2) С помощью алгоритма, включенного в формат файла (методы RLE, LZW, JPEG, фрактальный и др.).

Метод сжатия RLE (Run-Length Encoding) – проводится замена последовательности повторяющихся пикселей парой величин: цветом пикселя и количеством его повторений. Наиболее эффективен для изображений, содержащих большие области однотонной закраски. Используется в форматах BMP, TIFF, PCX.

Метод сжатия LZW (назван по фамилиям разработчиков Lempel, Ziv, Welch) основан на поиске повторяющихся узоров в изображении. Эффективен для изображений, насыщенных узорами. Используется в форматах GIF, TIFF.

Метод сжатия JPEG (Joint Photographic Experts Group) сильно уменьшает размер файла за счет потерь в качестве. Основан на том, что человеческий глаз более чувствителен к изменению яркости, чем к изменению цвета. При сжатии файла запоминается больше информации о разнице в яркости соседних пикселей и меньше – о разнице между их цветами. Используется для изображений фотографического качества. Степень сжатия файла и, следовательно, степень потери информации может контролироваться пользователем. Используется в форматах JPEG, TIFF и др.

Фрактальное сжатие – переводит изображение в совокупность математических данных, описывающих фрактальные, т.е. похожие, повторяющиеся, свойства изображения [10, 15].

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

Геометрические преобразования растровых рисунков зачастую приводят к потере качества изображения. Графические редакторы производят изменение размеров растрового изображения одним из двух способов [5]:

· одинаково изменяя размер всех пикселей рисунка – при увеличении рисунка растет число видеопикселей, необходимых для визуализации одного пикселя рисунка, и, следовательно, становится более заметной «ступенчатость» изображения;

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

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

Помимо растрового и векторного форматов графических файлов существует еще метафайловый формат [8]. Метафайлы могут хранить и растровые и векторные данные. Простейшие метафайлы похожи на файлы векторного формата, но могут включать и растровое представление изображения. Метафайлы часто используются для транспортировки растровых и векторных данных между аппаратными платформами. Примерами метафайловых форматов являются WMF (Microsoft Windows Metafile), WPG (WordPerfect Graphics Metafile), CGM (Computer Graphics Metafile). На метафайлы распространяются все преимущества и недостатки растрового и векторного форматов, своеобразным «гибридом» которых они являются. Однако размер метафайла в некоторых случаях может оказаться меньше, чем размер растровой версии того же изображения.

Файлы трехмерной графики хранят описание формы и цвета объемных моделей воображаемых или реальных объектов [8]. Объемные модели обычно конструируются из многоугольников и гладких поверхностей, объединенных описаниями соответствующих элементов (цвета, текстуры, отражающих свойств поверхности), с помощью которых программа визуализации реконструирует объект. Модели помещаются в сцены с источниками света и камерами, поэтому такие файлы часто называют файлами описания сцены.

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

Существует и трехмерный растр, состоящий из объемных элементов – вокселей [10]. Воксел (voxel – volume element) является аналогом пикселя в двумерном растре. Каждый воксел имеет свой цвет, а , кроме того, прозрачность. Полная прозрачность воксела означает пустоту соответствующей точки объема. Трехмерный растр используется в компьютерных системах для медицины (например, для хранения данных томмографии), геологии и т.п. Достоинства и недостатки такие же, как и у двумерного растра. Для визуализации трехмерного растра на экране монитора используют срезы.

Форматы анимации появились сравнительно недавно. Иллюзия движения объектов на экране монитора создается за счет быстрой смены изображений, в каждом из которых незначительно изменяются позиции объектов анимации (FLI, DVM Movie и др.). Анимационные форматы хранят тем или иным способом только неподвижные изображения (видеоинформация не поддерживается):

· хранят все изображения целиком, отображая их одно за другим;

· хранят одно изображение и несколько цветовых таблиц для него; после загрузки новой цветовой таблицы цвет изображения меняется и создается иллюзия движения объекта;

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

В настоящее время все большее значение приобретают мультимедиа-форматы, предназначенные для хранения данных различных типов в одном файле (форматы QuickTime, MPEG, Intel DVI, Microsoft RIFF и др.). Позволяют объединять графическую, звуковую и видеоинформацию.

Графические библиотеки

Интерфейс прикладного программирования API (Application Programming Interface) – это интерфейс между прикладной программой и графической системой, содержащий библиотеки функций, которые прикладная программа использует для связи с аппаратными средствами [10, 17, 20]. Функции для работы с графикой образуют графические библиотеки.

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

API делятся на стандартные (универсальные), поддерживающие широкий спектр устройств, и специализированные (для конкретного устройства или семейства устройств).

Графические функции из состава API Windows объединены в отдельную группу – подсистему GDI (Graphics Device Interface).

Наиболее часто при работе с трехмерной графикой в Windows используются следующие API – OpenGL и Direct3D.

Достоинством OpenGL является его широкая распространенность. Стандарт OpenGL разработан в 1992 г. В операционной системе Windows OpenGL поддерживается начиная с версии OSR 2.

OpenGL – это аппаратно-независимый интерфейс, поэтому он не включает в себя специальных команд по работе с окнами или ввода информации от пользователя. Эти функции отданы операционной системе.

Для работы OpenGL в Windows используется понятие контекста отображения (rendering context), который связывает OpenGL с оконной системой Windows. Контекст отображения указывает плоскость отображения, на которую делается графический вывод (окно программы на экране, страница принтера и т.п.). Чтобы начать работать с OpenGL, нужно создать хотя бы один контекст и сделать его текущим. Вызов необходимого драйвера устройства будет выполнять сама операционная система.

В состав OpenGL, как и других трехмерных графических API, входят функции, позволяющие описывать объекты, свойства материалов объектов, камеры, источники света [10, 12, 13, 20].

Существенный недостаток OpenGL – отсутствие встроенных объектно-ориентированных средств для описания сложных сцен. Существует надстройка для OpenGL – библиотека классов Open Inventor, которая является объектно-ориентированной API. Open Inventor позволяет пользователю сохранять описание сцены в виде текстового файла. Формат базы данных Open Inventor послужил основой для языка моделирования виртуальной реальности VRML (Virtual Reality Modeling Language).

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

2. СИСТЕМЫ ЦВЕТОВ В КОМПЬЮТЕРНОЙ ГРАФИКЕ

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

Для описания цветовых оттенков, которые могут быть воспроизведены на экране компьютера или при печати, разработаны специальные цветовые модели (системы цветов). Так как цвет может получиться и в процессе излучения, и в процессе отражения, существуют два противоположных метода его описания – системы аддитивных и субтрактивных цветов [5, 14, 17, 20].

Система аддитивных цветов

Эта система цветов используется для излучаемого цвета (для мониторов, светящихся материалов). Аддитивный (add – присоединять) цвет в модели RGB получается при сложении лучей трех основных (базовых) цветов – красного (Red), зеленого (Green) и синего (Blue) разной интенсивности. Если интенсивность каждого из основных цветов достигает 100%, то получается белый цвет. Отсутствие всех трех цветов дает черный цвет. Схема смешивания базовых цветов для модели RGB представлена на рис. 2.1.

Система субтрактивных цветов - student2.ru

Рис. 2.1. Схема смешивания базовых цветов в модели RGB.

Цветовая модель RGB используется в мониторах и жидкокристаллических дисплеях.

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

Для решения проблемы отрицательных коэффициентов в модели RGB в 1931 г. Международная комиссия по освещению приняла систему XYZ. В этой системе в качестве базовых были приняты три цвета X, Y и Z, которые носят условный характер (не соответствуют никаким реальным цветам), величина Y совпадает с чувствительностью глаза к свету.

Цветовой график для модели XYZ в хроматических координатах

x = X / (X + Y + Z) и y = Y / (X + Y + Z) представлен на рис. 2.2.

Система субтрактивных цветов - student2.ru

Рис. 2.2. Цветовой график в хроматических координатах

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

ПРОЕЦИРОВАНИЕ

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

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

В зависимости от удаленности центра проекции и взаимного расположения картинной плоскости, проецирующих лучей и осей координат выделяется несколько видов проекций (рис. 6.1) [10, 14, 16, 17].

Система субтрактивных цветов - student2.ru

Рис. 6.1. Виды проекций.

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

Виды параллельных проекций

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

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

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

 
  Система субтрактивных цветов - student2.ru

Рис. 6.2. Ортографическая проекция на плоскость z = 0.

Матрица проецирования на координатную плоскость z = 0 имеет вид:

[Pорт z] = Система субтрактивных цветов - student2.ru ,

а при проецировании на параллельную ей плоскость z = r:

[Pортz] = Система субтрактивных цветов - student2.ru .

Аналогично, матрицы проецирования на плоскости x = p и y = q равны:

[Pорт x] = Система субтрактивных цветов - student2.ru , [Pорт y] = Система субтрактивных цветов - student2.ru .

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

В аксонометрических проекциях нормаль к картинной плоскости (а, следовательно, и направление проецирования) не совпадает ни с одной из координатных осей (рис. 6.3).

Система субтрактивных цветов - student2.ru

Рис. 6.3. Аксонометрическая проекция.

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

а) триметрия – нормаль к картинной плоскости образует с координатными осями попарно различные углы (a ¹ b, b ¹ g, a ¹ g);

б) диметрия – два угла между нормалью к картинной плоскости и координатными осями равны;

в) изометрия – все три угла между нормалью к картинной плоскости и координатными осями равны (a = b = g).

Полигональные сетки

Полигональные сетки представляют собой совокупность вершин, ребер и многоугольников.

Сетку можно представить несколькими различными способами [14].

При явном задании многоугольников каждый многоугольник представляется в виде списка координат его вершин:

P = ((x1, y1, z1), (x2, y2, z2), …(xn, yn, zn)).

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

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

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

При задании многоугольников с помощью указателей в список вершин каждый узел полигональной сетки запоминается лишь один раз в списке вершин. Каждый многоугольник определяется списком указателей в список вершин.

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

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

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

Полигональная сетка изображается вычерчиванием всех ребер (а не всех многоугольников).

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

Закрашивание поверхностей

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

7.8.1. Модели отражения и преломления света

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

· излучают свет;

· отражают и поглощают свет;

· пропускают свет сквозь себя.

Каждое из этих свойств можно описать некоторым набором характеристик.

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

Отражение света может быть нескольких видов – зеркальное, диффузное, обратное [10].

Зеркальное отражение (рис. 7.2, а) – падающий на поверхность луч (l) и отраженный луч (s) лежат в одной плоскости, причем угол падения светового луча равен углу отражения. Цвет отраженного луча совпадает с цветом падающего луча, т.е. собственного цвета у зеркальной поверхности нет. Наблюдатель будет видеть отраженный луч только если угол g между направлением отраженного луча (s) и направлением на наблюдателя (v) равен нулю (рис. 7., а).

Не идеальное зеркальное отражение происходит при падении света на слегка шероховатую поверхность (рис. 7.2, б). В этом случае возникает несколько отраженных лучей, рассеиваемых по различным направлениям. Зона рассеивания зависит от качества полировки и, как правило, симметрична относительно направления идеально отраженного луча, а ее форма может быть описана некоторым законом распределения. Одной из простейших моделей распределения, наиболее часто используемой в компьютерной графике, является модель Фонга:

Is = I ks cosРa,

где Is – интенсивность отраженного луча, I – интенсивность падающего луча, ks – коэффициент пропорциональности, р=1…200 – показатель качества полировки поверхности, a – угол отклонения от направления идеально отраженного луча.

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

Диффузное отражение описывается законом Ламбера:

Id = I kd cos q,

где Id – интенсивность диффузно отраженного луча, I – интенсивность падающего луча, kd – коэффициент, учитывающий свойства материала поверхности, q – угол между нормалью (n) к поверхности и направлением падающего луча (l).

 
  Система субтрактивных цветов - student2.ru

Рис. 7.2. Отражение света: а) идеальное зеркальное, б) не идеальное зеркальное, в) диффузное.

Существует еще и обратное отражение, при котором максимум интенсивности отраженного света соответствует направлению на источник света.

При изображении объектов в компьютерной графике обычно моделируют сумму зеркального и диффузного отражений:

Iотр = I (kd cos q + ks cosРa),

где Iотр – интенсивность отраженного луча.

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

Iотр = Iа kа + I (kd cos q + ks cosРa).

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

Iотр = Iа kа + I (kd cos q + ks cosРa) / (R + k),

где R – расстояние до источника света, k – константа.

При прохождении световых лучей через полупрозрачную среду происходит их преломление. Падающий и преломленные лучи лежат в одной плоскости, причем:

h1 sina1 = h2 sina2,

где h1 и h2 – показатели преломления двух сред, a1 и a2 – углы падения и преломления светового луча (рис. 7.3.).

Система субтрактивных цветов - student2.ru

Рис. 7.3. Преломление светового луча на границе двух сред.

Показатель преломления зависит не только от материала среды, но и от длины световой волны: чем меньше длина волны (фиолетовые цвета), тем сильнее отклоняется луч. Существует и диффузное преломление, когда преломленный луч рассеивается равномерно во все стороны, но в компьютерной графике оно используется редко из-за трудности расчета.

Таким образом, при рассмотрении полупрозрачных материалов необходимо учитывать и отраженный и преломленный свет.

7.8.2. Определение цвета закрашивания

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

Для цветных объектов, освещаемых цветным источником света, составляются три формулы расчета интенсивности отраженного света – по одной на каждую цветовую компоненту в модели RGB. Цвет источника будет выражаться значениями интенсивности I для каждой цветовой компоненты. Коэффициенты kа и kd выражают собственный цвет поверхности и, следовательно, для одной и той же поверхности будут различны для каждой из компонент. Коэффициент ks будет одинаков для всех цветовых компонент, т.к. цвет зеркально отраженного луча равен цвету источника.

7.8.3. Модели закрашивания

Существует несколько моделей закрашивания плоских граней.

На закрашивание грани в общем случае влияют направления четырех векторов: нормали к плоскости грани (n), направления на источник света (l), направления идеального зеркального отражения (s) и направления на наблюдателя (v). При переходе от одной точки плоской грани к другой направление вектора n остается постоянным, изменяются только вектора l, s и v. Однако, в случае удаленного источника света и далеко расположенного наблюдателя этими изменениями можно пренебречь.

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

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

Для сглаживания полос Маха применяются интерполяционное закрашивание и закрашивание методом Гуро.

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

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

n = Система субтрактивных цветов - student2.ru .

Закраска методом Гуро позволяет визуально сгладить переходы между гранями, однако в некоторых случаях не удается избежать появления полос Маха.

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

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

Расчет закраски объектов в сложно построенных сценах с несколькими источниками освещения выполняется более сложно. Обычно в этом случае используют трассировку лучей или метод анализа излучательности.

При выполнении трассировки лучей предполагается, что световой луч в свободном пространстве распространяется вдоль прямой линии. От источников излучения в разных направлениях исходит бесчисленное множество лучей. Некоторые лучи уходят в свободное пространство, а некоторые лучи попадают на объекты. При попадании на прозрачный объект световой луч преломляется, при этом некоторая часть световой энергии поглощается. При попадании на зеркальную поверхность луч изменяет направление (отражается), часть световой энергии при этом также поглощается. Если объект и отражает и поглощает, то световой луч расщепляется. Таким образом, в результате действия на объекты первичных лучей возникают вторичные лучи, которые также могут попадать на объекты. После многократных отражений и преломлений световой некоторая часть световых лучей попадает в точку зрения, т.е. изображение сцены формируется множеством световых лучей [10, 14, 20].

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

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

· источники света могут только излучать свет, но не могут его отражать и преломлять;

· рассматриваются только точечные источники света;

· для учета освещенности светом, рассеиваемым другими объектами сцены, вводится фоновая составляющая;

· для прозрачных объектов не учитывается зависимость коэффициента преломления от длины волны или вообще прозрачность моделируют без преломления луча света;

· отражение описывается диффузной и зеркальной составляющими;

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

· при диффузном отражении игнорируются лучи от зеркально отражающих поверхностей;

· для завершения трассировки вводят некоторое пороговое значение освещенности или ограничивают число итераций.

Метод анализа излучательности исполь

Наши рекомендации