Нефотореалистичный рендеринг

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск

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

Введение[править | править вики-текст]

Существует множество различных методов решения задач НФР. Рассмотрим подробно 4:

  1. Генетическое рисование: Поиск выделяющихся объектов на изображении;
  2. Рисование с помощью релаксации;
  3. Стилизация и абстракция фотографий;
  4. Построение изображений с помощью кривых;

Техники НФР[править | править вики-текст]

Генетическое рисование: Поиск выделяющихся объектов на изображении[править | править вики-текст]

Цель данного алгоритма — создание изображений в стиле impasto (наложение красок густым слоем).

  • На первом этапе работы алгоритма определяется степень значимости каждого элемента исходного изображения, построить карту значимости и в соответствии с ней определять детализацию каждого элемента на результирующем изображении. Однако определение ключевых деталей на изображении является субъективным процессом. Поэтому предлагается использовать классификатор, который натренировывается вручную на определение разных классов выделяющихся деталей изображения (углов, границ и т. д.). Такой подход позволяет определять уровень детализации без интерактивного вмешательства пользователя и варьировать стиль с штриха в зависимости от класса артефакта (выделяющейся детали).
  • Построение результирующего изображения.
    • Уровень детализации в картине художника тесно связан с картой значимостей исходного изображения. С этой точки зрения, оптимальным критерием для искомой картины является измерение силы этого соответствия. Таким образом процесс построения изображения рассматривается как поиск оптимальной картины по этому определению. Стратегия поиска основана на генетическом алгоритме. Алгоритм принимает на вход исходное изображение I; картины порождённые I будут элементами пространства поиска. Сначала инициализируется фиксированный размер набора объектов. Каждый объект — один элемент пространства поиска, представленный как упорядоченный список штрихов.
    • Картина формируется поиском-преобразованием и композицией списка мазков кисти, представленных сплайновыми кривыми. Толщина кисти устанавливается обратно пропорциональной значимости, которая берётся как среднее по всем контрольным точкам. Цвет мазка един и задаётся как среднее значение по всем пикселам, захваченным областью мазка. Первыми накладываются мазки с наименьшей значимостью.
    • Генетический Алгоритм симулирует процесс естественного отбора посредством отбора последовательных поколений объектов через перекрестную, пропорционально-пригодную репродукцию и мутацию. В нашем случае геномы объектов — упорядоченные списки мазков. Итерации ГА повторяются до тех пор, пока преимущества достигнутые над предыдущими несколькими поколениями минимальны.

Рисование с помощью релаксации[править | править вики-текст]

Основная идея алгоритма построения изображения методом релаксации состоит в том, что картина формулируется как проблема снижения энергии.

Имея функцию энергии ~E(P),мы ищем картину ~P^* с наименьшей энергией:

~P^*=arg\min_{P\in\mathfrak P} E(P)

где ~\mathfrak P — пространство всех картин. Картина определяется как упорядоченный набор цветных штрихов вместе с закрашенной или текстурной канвой. Штрих кисти — толстая кривая, заданная списком контрольных точек, цветом и толщиной. Картина строится упорядоченным нанесением мазков на канву, представленных толстыми бикубическими сплайнами, в порядке их создания. Энергетическая функция создаётся как комбинация различных функций, позволяющих выразить желаемый результат картины, и их относительной значимости (веса функции). Каждая функция соответствует различным стилям рисования. Такая формулировка позволяет как можно более интуитивно выразить создание разнообразных стилей рисования, когда мы описываем желаемые особенности картины.

~E(P)=E_{app}(P)+E_{area}(P)+E_{nstr}(P)+E_{cov}

E_{app}(P)=\sum_{(x,y)\in X}w_{app}(x,y)||P(x,y)-G(x,y)||

E_{area}(P)=w_{area}\sum_{S\in P}Area(S)

E_{nstr}(P)=w_{nstr}*(number~of~strokes~in~P)

E_{cov}(P)=w_{nstr}*(number~of~empty~pixels~in~P)

~E_{app} рассчитывает попиксельную разницу между рисунком и исходным изображением;

~E_{nstr} контролирует размер кисти;

~E_{area} рассчитывает суммарную площадь поверхности, покрытой мазками кисти;

~E_{cov} контролирует степень закрашенности канвы.

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

Стилизация и абстракция фотографий[править | править вики-текст]

Это интерактивный НФР алгоритм для рендеринга изображений в line-drawing стиле с использованием жирных линий и однотонного заполненения областей. Цель — построение изображения с выделеннными в соответствии с особенностями человеческого восприятия объектами.

  • Выделение границ (усовершенствованный Canny);
  • Сегментация;
  • Сегментация изображения с разными разрешениями для построения иерархии;
  • Вычисление значимых областей с помощью eye-detector’а;
  • Последовательная «сборка» результирующего изображения. Уровень детализации прямо пропорционально зависит от степени значимости объекта на изображении, и заполнение однородных областей происходит в соответствии с иерархией, полученной на этапе сегментации изображения при разных значениях разрешения. Границы между однородными областями и границы, полученные с помощью Edge Detector’a сглаживаются.

Построение изображений с помощью кривых[править | править вики-текст]

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

  • На вход алгоритма подается изображение и список размеров кисти (радиусов). Далее алгоритм рисует серии слоёв для каждого значения радиуса соответственно (от самого большого до самого маленького).
  • Изначально канва представляет собой однотонное изображение.
  • Для каждого слоя создаётся эталонное изображение путём размытия исходного, размытие представляется свёрткой с ядром Гаусса со стандартным отклонением f (f-константа). Это изображение, которое мы пытаемся апроксимировать, рисуя кистью данного размера.
  • Каждая кисть покрывает только те детали, которые по крайней мере так же велики, как кисть. Кроме того, кистью покрываются только те участки изображения, которые отличаются по цвету от эталонного; те же, чьё отличие лежит внутри заданного порога, не изменяются.
  • Подход к заполнению каждого слоя — обход сетки в произвольном порядке и просмотр соседей каждого узла.
  • Для создания кривых используются кубические B-сплайны с заданным цветом и толщиной. Каждый мазок рисуется переносом круглой маски по изгибу сплайна.

Заключение[править | править вики-текст]

Было рассмотрено 4 разных подхода к построению нефотореалистичных изображений.

  1. Построение изображений с помощью кривых является базовым алгоритмом и отличается своей простотой. Однако с его помощью невозможно получить большого разнообразия впечатляющих результатов.
  2. Построение изображений методом релаксации позволяет получать различные результирующие изображения путём варьирования вкладов функций, составляющих функцию энергии. Однако он имеет некоторые сложности в построении.
  3. Генетический алгоритм позволяет получать неплохие результаты, учитывающие значимость отдельных элементов изображения, без интерактивного вмешательства пользователя, однако он ресурсоёмкий и требует больших временных затрат на построение.
  4. Стилизация и абстракция фотографий даёт впечатляющие результаты, однако достаточно специфичен и требует интерактивного вмешательства.

См. также[править | править вики-текст]

Ссылки[править | править вики-текст]