Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Конспект лекций по КГ.doc
Скачиваний:
16
Добавлен:
12.09.2019
Размер:
17.06 Mб
Скачать

И просто несколько красивых картинок…

АВТОР: Perry Harovas, mray3.2

Здесь видны многие проявления РСТЛ: распределенные источники света, размытые тени, множественные отражения.

Just Cup. Автор - Олег Бойко

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

Стакан виски. Автор – David Dos Santos Antonio

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

13 Растровые изображения План раздела

  1. Растровый документ: представление слоями.

  2. Смешение цветов в слоях.

  3. Растровый документ: представление каналами.

  4. Программная модель растрового документа.

  5. Растеризация отрезка. Алгоритм Брезенхема.

  6. Заливка областей.

Растровый документ: Представление слоями

Слои – это средства логического разделения изображения на несколько прозрачных плоскостей, сложенных в стопку. Эти «плоскости» и есть слои. Каждый слой содержит растр пикселов. Размерность растра слоя такая же, как и всего изображения. Все изображение может вполне поместиться на одном слое, но для удобства редактирования на слоях помещают части всего изображения. Независимо от того, пустой слой или заполнен, в памяти он занимает один и то же объем. Увеличение количества слоев документа сильно повышает его объем.

Слоев в документе от 1 до 255.

Смешение цветов в слоях

Зритель видит картинку, в которой каждый пиксел по сути есть стопка пикселов, но находящихся в разных слоях. Какой цвет пиксела видит зритель? – Это зависит от такой характеристики каждого слоя, как «способ смешивания цветов» этого слоя с нижележащим.

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

Формула смешивания цветов

Иллюстрация про смешивание цветов

КАНАЛЫ

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

Пиксел канала показывает одну цветовую компоненту, но ее значение получено из аналогичных цветовых компонент всех пикселов этой «стопки» в разных слоях, смешанных по заданным в слоях правилам смешивания цветов. Каналов в документе столько, сколько цветовых компонент в заданной для документа цветово модели: например, для RGB – 3, для CMYK – 4.

Каждый пиксел в канале-1 байт.

Программная модель растрового документа

Ниже на рисунке показана структура растрового документа, поддерживаемого практически всеми растровыми графическими процессорами.

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

Растеризация отрезков – суть проблемы

Отрезок прямой очень часто используется для построения изображений. Как правило, на растровое выводное устройство не передают все пикселы отрезка (это не экономно). Вместо этого передают координаты начального и конечного пикселов, а промежуточные пикселы предоставляют прорисовывать самому устройству. Это называют «растеризация отрезка».

Требования к алгоритму растеризации

  1. Отрезок должен начинаться и заканчиваться В ТОЧНО ЗАДАННЫХ ТОЧКАХ.

  2. Отрезки должны выглядеть ПО ВОЗМОЖНОСТИ ПРЯМЫМИ.

  3. ЯРКОСТЬ отрезка по длине должна выглядеть ПОСТОЯННОЙ.

  4. Рисовать надо БЫСТРО!

ПРОСТЕЙШИЙ ПОШАГОВЫЙ АЛГОРИТМ РАСТЕРИЗАЦИИ ОТРЕЗКА – подходы

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

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