Метод имитации акварельных красок, основанный на моделировании физических процессов

Авторы: 
Екатерина Титова
Авторы: 
Алексей Игнатенко
Авторы: 
Анна Дегтярева
Возможности акварели очень широки - ее краски сочны и звонки, едва воздушны, еле уловимы. Не случайно техника акварели - одна из самых привлекательных техник не только для профессионалов, но и для художников-любителей. Моделирование акварели средствами компьютерной графики - одна из интереснейших подзадач нефотореалистичной визуализации (Non-Photorealistic Rendering, NPR). В этой статье описывается метод имитации акварели, основанный на моделировании физических процессов течения воды и рассеивания пигмента.

Содержание

  1. Введение
  2. Описание модели
    1. Многоуровневая модель
    2. Моделирование бумаги
    3. Описание процесса имитации течения жидкости
  3. Результаты
  4. Литература

Введение

В этой статье подробно описывается метод, основанный на моделировании физических процессов течения воды и рассеивания пигмента. Акварель - это уникальное средство. Она позволяет создавать необыкновенные текстуры и образы, отражающие движение воды по бумаге. Живые цвета и спонтанные формы придают акварельным краскам особый шарм. Их можно наносить очень тонкими слоями, получая самые неуловимые оттенки, что придает различным объектам прозрачность и способность "светиться". Моделирование акварели средствами компьютерной графики - одна из интереснейших подзадач NPR.

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

Описание модели

Акварелью можно работать по-разному. Существуют 2 основные техники рисования: по мокрой бумаге (wet-in-wet), когда художник сначала смачивает бумагу водой и лишь потом наносит краску, что позволяет краске свободно растекаться, и по сухой бумаге (wet-in-dry). С помощью этих техник можно получить ряд стандартных эффектов акварели, применяемых художниками:

  • Эффект сухой кисти (dry-brush effect).
  • Затемнение краев (edge darkening).
  • Эффект обратного течения воды (intentional backruns).
  • Грануляция и разделение пигментов (granulation and separation of pigments).
  • Свободное растекание пигмента (flow patterns).
  • Еще одна очень важная техника рисования акварелью - наложение слоев (color glazing).

(более подробно об этом в статье Нефотореалистичная визуализация: методы имитации акварельных красок)

Многоуровневая модель

Рассмотрим математическую модель акварельного рисунка, описанную в [1]. Она представляет собой набор слоев, каждый из которых создается отдельно запуском процесса имитации течения жидкости (fluid simulation), который рассчитывает распределение пигмента в результате его растекания по бумаге. Этот процесс принимает в качестве входных данных параметры, которые отвечают за физические свойства пигментов, бумаги и др. А также имитация использует в своей работе маску, которая определяет, где бумага мокрая, а где нет (Wet-area mask). Эта маска определяет границы области свободного растекания воды. Когда все подсчитано, слои комбинируются для получения окончательного результата.

Каждый слой имитируется с использованием 3х-уровневой модели. Снизу вверх она включает 3 уровня:

  • Уровень течения воды, где вода с пигментом течет по поверхности бумаги (shallow-water layer)
  • Уровень передвижения пигмента, где пигмент осаждается на бумагу и всплывает обратно (pigment deposition layer)
  • Капиллярный уровень, где вода впитывается в бумагу и распределяется в ней (capillary layer)

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

  • Маска мокрой области M (=1, если бумага мокрая, =0 - иначе)
  • Скорости u, v течения воды по горизонтали и вертикали
  • p - давление воды в каждой точке
  • концентрация gk каждого пигмента k в воде
  • уклон (разница высот) ∆h неровной бумаги
  • физические свойства акварели, включая вязкость (viscosity) μ и вязкостное сопротивление (viscous drag) κ

Каждый пигмент перемещается между уровнем течения воды и уровнем перемещения пигмента посредством осаждения и всплытия. Будем обозначать gk - пигмент на уровне течения воды и dk - осажденный пигмент. На осаждение и всплытие влияют свойства конкретного пигмента, такие как: густота (density) - ρ, красящая способность (staining power) - ω и уровень зернистости (granularity) - γ.

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

  • Насыщенность водой бумаги - s, определяется как отношение объема воды к общему объему
  • Способность впитывания воды - с, определяется как объем воды, который еще может впитать бумага

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

Моделирование бумаги

Для реальной акварели структура бумаги влияет на течение жидкости и грануляцию. Механизм этих эффектов может быть очень сложен, может зависеть от связей между конкретными волокнами, от точного соотношения пиков и впадин на бумаге. В данном методе используется значительно более простая модель - текстура бумаги моделируется полем высот h и полем способности впитывания воды c. Поле высот h генерируется с использованием псевдослучайных процессов - шум Перлина (Perlin noise). Разница высот используется для изменения скоростей течения жидкости в динамической имитации. Способность впитывания воды с рассчитывается с помощью поля высот по формуле:

c = h * (cmax - cmin) + cmin.

Описание процесса имитации течения жидкости

Основной цикл

Основной цикл принимает на вход: начальную маску мокрой области M, начальные скорости воды u и v, начальное давление воды p, начальные концентрации пигментов gk, начальная насыщенность бумаги водой s. В основном цикле несколько раз повторяется по очереди движение воды с пигментом, перенос пигмента на уровень передвижения пигмента и обратно, и имитация капиллярного уровня.

proc MainLoop(M, u, v, p, g ,:, gn, d1 ,:, dn, s):

for each time step do:

MoveWater (M, u, v, p)

MovePigment (M, u, v, g1 ,:, gn)

TransferPigment (g1 , :, gn, d1,:,d n )

SimulateCapillaryFlow (M, s)

end for

end proc

Движение воды на уровне течения воды

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

Рассмотрим условия, которым должно удовлетворять поведение воды для достижения реалистичного эффекта:

  1. Течение должно быть ограничено так, чтобы вода оставалась в пределах маски мокрой области.
  2. Избыток воды в какой-то области должен вызывать течение воды из этой области в соседние.
  3. Течение должно ослабляться, чтобы избежать колебательных волн
  4. Течение должно искажаться из-за неровностей бумаги, что вызывает появление прожилок параллельно направлению течения.
  5. Локальные изменения должны иметь глобальный эффект. Например, добавление воды в некую область должно сказаться на всей имитации.
  6. Должно быть течение воды к краям для достижения эффекта затемнения краев.

Первые два условия удовлетворяются непосредственно уравнениями Навье-Стокса с определенными граничными условиями.

Эти уравнения реализованы в функции UpdateVelocities (). Условия 3 и 4 выполняются посредством добавления в функцию выражений с использованием вязкостного сопротивления и уклона бумаги, как видно из псевдокода функции. Условия 5 и 6 удовлетворяются с помощью введения дополнительных функций RelaxDivergence () и FlowOutward(). Итак:

proc MoveWater(M, u, v, p):

UpdateVelocities (M, u, v, p)

RelaxDivergence (M, u, v, p)

FlowOutward (M, p)

end proc

Изменение скоростей воды

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

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

Для дискретизации используется метод Эйлера решения дифференциального уравнения.

Рассмотрим этот процесс подробнее.

Приведем первое уравнение Навье-Стокса (изменение горизонтальной скорости) к такому виду:

Обозначим:

и дискретизируем по x и по y:

Аналогично, обозначим:

Аналогично для второго уравнения Навье-Стокса.

Итак, функция изменения скоростей:

Процедура EnforceBoundaryConditions() просто приравнивает к нулю все скорости в клетках, где маска мокрой области = 0.

Релаксация

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

Затемнение краев

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

Функция FlowOutward() убирает на каждом временном шаге некоторое количество воды из каждой клетки на расстоянии не больше некоторой величины от края. Расстояние до края аппроксимируется с помощью гауссовского размытия (K x K) маски мокрой области, далее в соответствии со значением размытой маски М каждая клетка уменьшается на значение:

p ← p - η (1 - M-)M

Движение пигмента

В этой части имитации пигмент перераспределяется в воде в соответствии с вычисленными скоростями.

Перемещение пигмента

На этом этапе часть пигмента оседает на бумаге, а часть всплывает обратно.

Обратное течение воды

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

Эффект сухой кисти

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

Результаты

Литература

  1. Cassidy J. Curtis, Sean E. Anderson, Joshua E. Seims, Kurt W. Fleischer, and David H. Salesin. Computer-generated watercolor. Proceedings of SIGGRAPH 97, pages 421-430, August 1997.
  2. Gershon Elber. Line Art Illustrations of Parametric and Im-plicit Forms. IEEE Transactions on Visualization and Computer Graphics, 4(1), January - March 1998. ISSN 1077-2626.
  3. Adam Finkelstein, Lee Marcosian. Non-photorealistic rendering
  4. Aaron Hertzmann. Algorithms for rendering in Artistic styles. Dissertation, 2001
  5. Aaron Hertzmann. Painterly rendering with curved brush strokes of multiple sizes. Proceedings of SIGGRAPH 98, pages 453-460, July 1998. ISBN 0-89791-999-8.
  6. S.C. Hsu and I.H.H. Lee. Drawing and animation using skeletal strokes. In Proceedings of SIGGRAPH 1994, pp.109-118, July 1994.
  7. Allison W. Klein, Wilmot W. Li, Michael M. Kazhdan, Wag-ner T. Correa, Adam Finkelstein, and Thomas A. Funkhouser. Non-photorealistic virtual environments. Proceedings of SIGGRAPH 2000, pages 527-534, July 2000. ISBN 1-58113-208-5.
  8. Peter Litwinowicz. Processing Images and Video for an Impressionistic Effect. In. SIGGRAPH 97 Conference Proceedings, August 1997.
  9. Eric B. Lum, Kwan-Liu Ma. Non-Photorealistic Rendering using Watercolor Inspired Textures and Illumination. Proc. of Pacific Graphics '01
  10. Barbara J. Meier. Painterly rendering for animation. Proceed-ings of SIGGRAPH 96, pages 477-484, August 1996. ISBN0-201-94800-1.
  11. Diego Nehab, Luiz Velho. Multiscale Moment-Based Painterly Rendering. SIBGRAPI 2002: 244-251
  12. J.D. Northrup, L. Markosian. Artistic silhouettes: a hybrid approach. In Proceedings of NPAR 2000, pp. 31-38, June 2000.
  13. Victor Ostromoukhov. Digital facial engraving. Proceedings of SIGGRAPH 99, pages 417-424, August 1999. ISBN 0-20148-560-5.
  14. Yachin Pnueli and Alfred M. Bruckstein. Digdurer - a digital engraving system. In The Visual Computer, volume 10, pages 277-292, August 1994.
  15. Emil Praun, Hugues Hoppe, Matthew Webb, and Adam Finkelstein. Real-time hatching. Proceedings of SIGGRAPH 2001, pages 579-584, August 2001. ISBN 1-58113-292-1.
  16. David Small. Simulating watercolor by modeling diffusion, pigment, and paper fibers. Proceedings of SPIE '91, February 1991.
  17. Mario Costa Sousa and John W. Buchanan. Observational models of graphite pencil materials. Computer Graphics Forum, 19(1):27-49, March 2000. ISSN 1067-7055.
  18. Sara L. Su, Ying-Qing Xu, Heung-Yeung Shum, Falai Chen. Simulating artistic brushstrokes using interval splines
  19. Saeko Takagi, Masayuki Nakajima, and Issei Fujishiro. Volumetric modeling of colored pencil drawing. Pacific Graphics'99, October 1999.
  20. Georges Winkenbach and David H. Salesin. Computer-generated pen-and-ink illustration. Proceedings of SIG-GRAPH 94, pages 91-100, July 1994. ISBN 0-89791-667-0.
  21. Thomas Strothotte, Stefan Schlechtweg. Non-photorealistic computer graphics: modeling, rendering and animation.
  22. А.Щипанов "Художнику любителю" "Советский художник", Москва 1970г.


Дополнительная информация
Ссылка: 
Екатерина Титова, Алексей Игнатенко, Анна Дегтярева. Метод имитации акварельных красок, основанный на моделировании физических процессов. Компьютерная графика и мультимедиа. Выпуск №3(1)/2005. http://cgm.computergraphics.ru/content/view/72
Выпуск: 
Выпуск №3(1)/2005

Комментарии

Отправить комментарий

Содержание этого поля является приватным и не предназначено к показу.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Строки и параграфы переносятся автоматически.

Подробнее о форматировании

CAPTCHA
Тест предназначен для отсеивания спама
Fill in the blank