Исследование и разработка методов нефотореалистичной визуализации для реализации графической библиотеки реального времени Часть 4

Метод Робертса

Метод Робертса заключается в использовании оператора Робертса. Перекрёстный оператор Робертса — один из ранних алгоритмов выделения границ, который вычисляет сумму квадратов разниц между диагонально смежными пикселами. Это может быть выполнено сверткой изображения с двумя ядрами:

(22)

(23)

Преобразование каждого пиксела перекрёстным оператором Робертса может показать производную изображения вдоль ненулевой диагонали, и комбинация этих преобразованных изображений может также рассматриваться как градиент от двух верхних пикселов к двум нижним [15].

Оператор Робертса всё ещё используется ради быстроты вычислений, но он проигрывает в сравнении с альтернативами с его значительной проблемой чувствительности к шуму. Он даёт линии тоньше, чем другие методы выделения границ.

Метод Кенни

Кенни изучил математическую проблему получения фильтра, оптимального по критериям выделения, локализации и минимизации нескольких откликов одного края. Он показал, что искомый фильтр является суммой четырех экспонент. Он также показал, что этот фильтр может быть хорошо приближен первой производной Гауссианы. Кенни ввел понятие Non-Maximum Suppression (подавление не-максимумов), которое означает, что пикселями границ объявляются пиксели, в которых достигается локальный максимум градиента в направлении вектора градиента.

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

Детектор границ Кенни использует фильтр на основе первой производной от гауссианы. Так как он восприимчив к шумам [19], применять метод на необработанные данные изображения не стоит. Для начала, исходные изображения нужно свернуть с гауссовым фильтром.

Вот пример 5×5 гауссовского фильтра с σ = 1,4:

(24)

Границы на изображении могут находиться в различных направлениях, поэтому алгоритм Кенни использует четыре фильтра для выявления горизонтальных, вертикальных и диагональных границ. Воспользовавшись оператором обнаружения границ ( например оператор Робертса , Превитта , Собеля) получим значение для первой производной в горизонтальном направлении (Gу) и вертикальном направлении (Gx). Из этого градиента и направления можно получить:

(20)

(21)

Угол направления границы округляется до одной из четырех углов, представляющих вертикаль, горизонталь и две диагонали (0, 45, 90 и 135 градусов).Затем идет проверка того, достигает ли величина градиента локального максимума в соответствующем направлении. Так, например, для сетки 3×3:

  • если угол направления градиента равен нулю, точка будет считаться границей, если её интенсивность больше чем у точки выше и ниже рассматриваемой точки,
  • если угол направления градиента равен 90 градусам, точка будет считаться границей, если её интенсивность больше чем у точки слева и справа рассматриваемой точки,
  • если угол направления градиента равен 135 градусам, точка будет считаться границей, если её интенсивность больше чем у точек находящихся в верхнем левом и нижнем правом углу от рассматриваемой точки
  • если угол направления градиента равен 45 градусам, точка будет считаться границей, если её интенсивность больше чем у точек находящихся в верхнем правом и нижнем левом углу от рассматриваемой точки.

Компьютерные модели некоторых техник изобразительного исскуства

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

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

Моделирование техники акварели

Одним из довольно простых методов моделирования техники акварели (watercolor rendering) является разбиение процесса построения изображения на отдельные слои. Для каждого такого слоя вычисляется его толщина (определяющая степень его влияния) и все они последовательно наносятся на бумагу [16].

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

Толщина этого слоя определяется по следующей формуле:

,            (22)

где – коэффициент диффузного освещения объекта,

– коэффициент отражённого освещения объекта,

n – вектор нормали,

h — вектор полупути (рассчитывается по формуле 8).

Следующий слой отвечает за неосвещенные части и его толщина задается следующей формулой:

(23)

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

Довольно простым способом композиции всех этих слоев является следующий:

(24)

где — цвет диффузного освещения,

– слой, моделирующий диффузное освещение,

– слой, отвечающий за неосвещенные части объекта,

– шум.

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


Рисунок 14. Изображение, полученное при моделировании техники акварели.

Моделирование рисования древесным углем

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

(25)

В этой формуле в качестве степени p используется величина, большая единицы. Типичным значением степени является 3,5.

Данное преобразование применяется к значению освещенности, полученной по формуле Фонга 17. В результате получается изображение с усиленным контрастом.

Полученная таким образом освещенность используется для индексирования в специальную текстуру, называемую Contrast Enhancement Texture. На рисунке 15 приводится пример такой текстуры.

Рисунок 15. Текстура для моделирования техники рисования углём.

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

Однако, если t-координата для наложения текстуры задается явно как модифицированная освещенность, то какую величину следует взять в качестве первой текстурной координаты s ?

Если в качестве s для обращения к текстуре взять одну из стандартных текстурных координат, связанных с изображаемым объектом, то это может привести к появлению заметных артефактов.

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

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

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

Еще одним характерным элементом рисунков углем является так называемое «размывание» (smuding), когда художник (обычно просто рукой) слегка размазывает уголь по бумаге для получения плавных полутонов.

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

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

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

Задачей фрагментного шейдера является наложение текстуры (рисунок 15), смешение текстурированной модели с нетекстурированной и наложения бумаги на получившееся значение. Результат можно увидеть на рисунке 16.

Рисунок 16. Изображение, полученное при моделировании техники рисования углём.

Реклама
Запись опубликована в рубрике Диплом. Добавьте в закладки постоянную ссылку.

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s