Методы геометрического моделирования волос

advertisement
Методы геометрического моделирования волос
Авторы:
Александр Шубин
Введение.
Чем большими вычислительными мощностями мы обладаем, тем больше мы хотим от них
получить. И поэтому в наше время всё большое значение приобретают методы
моделирования объектов реального мира. Мы хотим, чтобы реальный и виртуальный
миры стали неотличимыми, чтобы погружение в созданную нами реальность было
полным. Поэтому сейчас мы ставим перед собой задачи, которые ещё несколько лет назад
казались невероятными по сложности и невозможными для компьютерного
моделирования. Такой, например, является задача реалистичного моделирования волос.
Мы уже не удовлетворяемся странными шапками на головах виртуальных персонажей,
которые нам пытались выдать за натуральные волосы. Мы хотим видеть развевающиеся
на ветру волосы, сложные причёски, причудливое рассеивание света. Однако
действительно точное представление волос с учётом их структуры, физики, движения и
визульных особенностей является весьма трудоёмким и малоизученным процессом.
Основная трудность возникает из-за того, что на голове человека больше 100000 волос. Но
при этом каждый такой волос весьма мал. Т.е. с одной стороны мы получаем довольно
заметный объект ("волосяной объём"), а с другой - огромное количество очень маленьких
и весьма сложных по структуре объектов. Из-за этого дуализма все исследования по
данной тематике можно разделить на две большие категории. Первая категория
исследований рассматривает все волосы как некий цельный объект и пытается
различными способами создать иллюзию его многосоставности. Вторая категория тем или
иным способом представляет волосы как множество мелких, взаимодействующих между
собой объектов. Некого стандарта моделирования волос на данный момент не существует.
Кроме обозначенной проблемы, есть ещё ряд других, которые заставляют исследователей
изрядно поломать голову. Одна из них - это форма волос. В реальном мире (а именно его
отображение в виртуальный является нашей первостепенной задачей) структура и
визуальное оформление волос практически у каждого человека разные. Поэтому задача
перенесения их в виртуальную реальность становится весьма сложной. Таком образом,
приложения и различные алгоритмы, которые пытаются учесть всевозможные аспекты
моделирования волос, обеспечивая нас тем самым красивой картинкой, не являются
интерактивными и не позволяют нам работать в реальном времени. Стоит также добавить,
что не существует физически "одобренной" модели волос, т.к. эта тема довольно мало
изучена.
Актуальность задачи
Прежде чем непосредственно переходить к описанию существующих методов
моделирования волос, рассмотрим данную задачу на предмет актуальности. В первую
очередь, что приходит на ум, когда говорят о трёхмерной графике и моделировании - это
компьютерная анимация и различные компьютерные спецэффекты в кино. Надо
сказать, что это направление вообще очень старое и является одним из двигателей и
непосредственныхм потребителем всех современных достижений трёхмерного
рендеринга. Однако и здесь задача реалистичного моделирования волос (и меха, что
фактически одно и тоже) стоит довольно остро и до конца не решена. Несмотря на то, что
в данной области не требуется интерактивности и работы в реальном времени, полностью
точное моделирование волос для большого количества объектов (с учётом полной физики,
взаимодействия волос друг с другом и между собой, а также с реалистичным освещением)
без каких-либо ухищрений остаётся невозможным. Для примера можно почитать про то,
как делался недавно вышедший на экраны мультфильм "Мадагаскар" (подробнее в
журнале "Компьютерра"[2]). Таким образом, даже в этой области требуется значительное
улучшение существующих методов рендеринга меха и волос. Второй областью, где
реалистичное моделирование человеческих волос очень сильно бы повысило реализм в
целом, является создание виртуальных трёхмерных презентаций и экскурсий. Обычно
в такого рода приложениях наличие виртуального помощника является очень большим
бонусом. Если этот помощник является человеком, то реалистичные волосы помогут ещё
сильнее погрузиться в соответствующую атмосферу. Ещё одним направлением, где
реалистичное виртуальное моделирование волос уже находит своё применение, является
косметическая промышленность . Виртуальное тестирование новых косметических
средств (лаков для волос, гелей, красок и пр.) даст возможность проводить его сразу на
моделях человеческих волос, тем самым позволив избежать дорогого лабораторного
исследования и сократить время разработки продукта. Следует отметить, что для данных
целей нас в первую очередь интересует точная физическая и химическая модель волос.
Поскольку нам необходимо знать не только, какое физическое воздействие окажет то или
иное средство (как точно изменится цвет волос, насколько хорошо лак зафиксирует
причёску), но и как это средство подействует на здоровье человека. Насколько новый
продукт будет безопасен с точки зрения медицины. Задача виртуального
моделирования причёсок - ещё одно направление, где реалистичная визуализация волос
внесла бы полезный вклад. Данное направление отчасти пересекается с предыдущей
областью применения, однако здесь больше делается уклон в работу различных
мастерских по причёске и укладке волос (парикмахерские, салоны и пр.). Сейчас активно
идёт развитие рынка предложений по разного рода экстравагантным причёскам и
стрижкам. В частности предлагаются причёски для различных случаев: свадьба,
выпускной бал, вечеринка (см., например, http://newwoman.ru/hair.html ). Возможность
виртуального создания причёсок позволила бы человеку самому создать интересующую
его форму и получить то, что он действительно хочет от своего стилиста. Также нельзя
обойти стороной интернет торговлю, как одну из возможных областей, где необходимы
реалистичные виртуальные волосы. Возможность реалистичной трёхмерной визуализации
париков (см., например, http://mirparikov.ru/ ) позволила бы клиентам интернет-магазина
не только в полной мере оценить модель, но и даже примерить её, при этом не выходя из
дома. Задача реалистичного рендеринга меха найдёт своё применение для магазинов,
торгующих шубами и другими меховыми изделиями. И, безусловно, в сфере рекламы
данные исследования также могут быть весьма востребованными. Это не только реклама
магазинов париков, шуб (как в предыдущем случае), но и различных салонов красоты,
сталинг студий, студий по созданию эксклюзивных причёсок и пр. Одним словом, задача
виртуального моделирования волос затрагивает очень многие области в нашем мире.
Постановка задачи
Как показывают исследования ([8]), исследования в области моделирования волос можно
разделить на три направления: дизайн (hairstyling), физическая модель (hair simulation),
визуализация (hair rendering). Под дизайном понимается моделирование формы причёски
с учётом геометрии волос, их густоты, распределения и пространственной ориентации.
Физическое моделирование волос включает в себя моделирование их динамики движения,
взаимодействия друг с другом и другими объектами (голова, плечи и пр.) Визуализация
решает задачи определения цвета волос, их освещения, затенения и самозатенения,
рассеивания света, а также проблемы алиасинга. Основная цель, эталон, которого мы
хотим достичь - это создание идеальной универсальной системы моделирования волос,
которая позволяет придавать волосам всевозможные формы, учитывает точную физику
волос и другие свойства, при этом предоставляя пользователю желаемый уровень
контроля, осуществляемого на интуитивном уровне, работающую в реальном времени и
выдающую фотореалистичный результат. Надо сказать, что до этого идеала ещё очень
далеко.
Некоторые простые методы
Прежде чем переходить к рассмотрению сложных методов реалистичного моделирования
волос, рассмотрим несколько простых подходов.
Метод слоёв
Простым, но довольно часто используемым методом рендеринга меха и волос является
метод слоёв ([3], [4]). Суть этого метода состоит в следующем. Задаётся трёхмерная
текстура меха, которая рассматривается как набор двухмерных текстур, каждая из
которых соответствует пересечению меха плоскостью, параллельной поверхности, на
которой мех растёт. Если мы хотим нарисовать, например, сферу, покрытую мехом, то мы
выводим не одну сферу, а несколько. Радиус каждой следующей сферы больше радиуса
предыдущей на некоторую небольшую величину. И на каждую сферу мы "натягиваем"
очередную текстуру из имеющегося у нас набора. При этом все сферы выводятся начиная
с самой внутренней и заканчивая самой внешней с соотвествующим режимом
полупрозрачности.
Рис. 1 Семейство сфер, необходимое для моделирования "мохнатой" сферы.
Рис. 2 Результат метода слоёв.
В данном алгоритме возможные различные модификации. Например, за счёт изменения
текстурных координат можно анимировать мех. Построение необходимых текстур можно
осуществить следующим образом. Рассматривается прямоугольный параллелепипед, у
которого отождествляются противоположные боковые грани (чтобы полученные текстуры
были периодическими). Из основания этого параллелепипеда выпускается набор частиц,
периодически слегка меняющих своё направление. Для этих частиц отслеживается
пересечение ими набора плоскостей и в каждой точке пересечения в соответствующие
текстуры заносятся цвет и направление частицы. После завершения моделирования мы
получаем набор текстур высокого разрешения, содержащий все необходимые данные. Эти
текстуры можно аккуратно сжать (чтобы уменьшить их размер и требования к памяти под
них). Несмотря на простоту, данный подход в некоторых случаях может давать весьма
реалистичные результаты. Однако надо отметить, что здесь мы идём "от формы к
содержанию", т.е. пытаемся показать результат (во многом статичный) практически
игнорируя реальную физику. Для освещения может быть использована анизотропная
модель (более подробно в разделе "Рендеринг").
Рис. 3 "Мохнатый" тор с освещением.
Рис. 4 Более продвинутая модификация метода из Nvidia SDK 10.
Статические модели
Следующий довольно простой, но опять-таки часто используемый метод - использование
статических моделей ([5], [6]). При данном подходе создаётся статическая модель волос.
Это может быть единственная модель ("шапка") или несколько слоёв. Дальше
используются различные текстуры, альфа-тест и альфа блендинг для создания иллюзии
многосоставности объекта. Реалистичность в таких подходах достигается за счёт
использования продвинутых моделей освещения (см. раздел "Рендеринг") и различных
ухищрений. Однако этот метод имеет те же недостатки, что и предыдущий: хороший
визуальный результат только с определённых углов зрения, отсутствие физической базы,
а значит и отсутствие реалистичной динамики волос при движении и взаимодействии с
другими объектами. Из достоинств можно отметить общую простоту реализации. По
крайней мере, что касается дизайна.
Рис. 5 Метод статических моделей.
Продвинутые методы
Теперь рассмотрим более сложные методы. Будем делать это последовательно,
продвигаясь по трём основным направлениям (дизайн, физика, рендеринг).
Дизайн
Существует огромное количество различных форм волос. В первую очередь это связано с
многообразием этнических групп, каждая из которых имеет свой определённый тип волос.
Кроме того, даже в одной этнической группе может быть большие различия. Например,
волосы могут быть кудрявыми или волнистыми. Геометрические параметры волос зависят
от различных структурных и физических параметров каждого отдельного волоса, в число
которых входят форма поперечного сечения, степень курчавости, особенности роста ([9]).
Учёные выделяют три основных типа волос: азиатский, африканский и кавказский.
Волосы азиатского типа гладкие и однородные с круглым поперечным сечением. Волосы
африканского типа имеют нерегулярную структуру и чётко выраженное эллиптическое
сечение. Кавказский тип является переходным между этими двумя, от полностью прямых
до очень курчавых. Кроме этнического фактора на форму волос влияют индивидуальные
стрижки и причёски(с чёлкой или без, косички, "конский хвост" и пр.). Ситуация
окончательно осложняется наличием различных косметических средств, которые
позволяют изменять форму волос временно (гели, муссы, лаки) или постоянно (завивка,
выпрямление и пр.). В связи с этим большинство методов виртуального моделирования
причёсок, используемых сегодня, на самом деле не учитывыют реальную физическую
модель. Т.е. они в первую очередь ориентированы на финальный результат, на
окончательную форму, а не на процесс её построения. Такой подход вполне
оправдывается тем, что именно окончательный результат нас и интересует в такого рода
приложениях. В результате мы получаем визуально очень хороший, но статичный
результат и не имеем возможности посмотреть на поведение получившейся формы в
динамике.
Прикрепление волос к черепу
Поскольку реальное количество волос на голове исчисляется десятками тысяч, то ручное
размещение каждого волоса является весьма утомительной задачей. Поэтому
используются различные подходы, позволяющие упростить этот процесс.
Двухмерное размещение
Первая группа методов не использует размещение волос напрямую на поверхности
головы. Вместо этого пользователь интерактивно размещает волосы на двухмерной карте,
которая потом проецируется на трёхмерую модель с использованием специальной
функции отображения. Также возможен вариант, когда пользователю даётся не просто
двухмерная карта, а патч параметрической поверхности, который пользователь может сам
"обернуть" вокруг черепа. Пользователь задаёт контрольные точки поверхности, а также
располагает пучки волос в двухмерном пространстве поверхности, определённом
параметрическими координатами патча([7]).
Рис. 6 Двухмерный патч "натягивается" на трёхмерную модель.
Расположение корней волос с использованием двухмерной геометрии не требует больших
усилий со стороны пользователя и даёт большую гибкость. Однако отображение
двухмерной карты на трёхмерный изогнутый череп может привести к появлению
неоднородностей. Для исправления данного недостатка некоторые подходы используют
продвинутые функции и статистические модели отображения.
Трёхмерное размещение
Альтернативный подход к размещению волос на голове заключается в непосредственной
работе с трёхмерной моделью головы. Один из возможных подходов - предоставление
пользователю интерактивного интерфейса, с помощью которого можно выбирать
треугольники модели ([12]). Множество выбранных треугольников определяет скальп область головы, к которой волосы должны быть прикреплены. При этом каждый
треугольник может определять начальное положение отдельного пучка волос. Также
существуют подходы, позволяющие пользователю определять плотность волос на скальпе
с помощью цвета ([11]). Пользователь просто раскрашивает скальп в определённые цвета,
тем самым задавая густоту волос и, возможно, другие параметры (такие как, например,
длина или курчавость).
Однородное распределение
Очень популярным подходом размещения волос является их однородное и равномерное
распределение по всей поверхности скальпа. Это даёт хорошее приближение того, как
волосы располагаются на голове человека в реальном мире. Существует модификация
этого алгоритма, которая равномерно распределяет не отдельно волосы, а пучки волос
([10]). Однако при таком подходе возможно перекрытие пучками друг друга, что повысит
густоту волос в областях перекрытия. Чтобы этого избежать, можно сначала равномерно
распределять волосы по всей поверхности скальпа, а потом приписать каждый волосяной
корень определённому пучку ([7]).
Придание общей формы
После того, как мы разместили волосы на голове, нам необходимо придать им некоторую
форму. Существует три основных группы методов для достижения данной цели:
геометрические, физические и на основе изображений.
Геометрические методы
Геометрические методы в большинстве своём основываются на параметрическом
представлении волос, чтобы предоставить пользователю интуитивный и простой в
использовании интерфейс.
Параметрические поверхности
Одним из популярных направлений в задаче придания общей формы волосам является
представление групп волос в виде двухмерных поверхностей. Обычно эти методы
используют патчи параметрических поверхностей, например, NURBS поверхностей, для
уменьшения числа геометрических объектов, используемых для представления пучков.
Такой подход позволяет ускорить физические расчёты и окончательную визуализацию.
Такие NURBS поверхности называют "полосами волос". Для них определяется положение
на скальпе, ориентация и весовые коэффициенты узлов, для определения желаемой
формы. После этого на "полосу" накладывается определённым образом текстура с
использованием соответствующего режима полупрозрачности для создания иллюзии
многосоставности. Полную форму можно получить, определяя всего несколько
контрольных кривых (прядей волос). Контрольные точки этих прядей соединяются
горизонтально и вертикально и определяют поверхность. Несмотря на отмеченные выше
достоинства, данный подход имеет один очень важный недостаток: мы ограничены в
наборе возможных моделируемых форм из-за использования плоских двухмерных
поверхностей. Для того чтобы по возможности избежать плоского вида получаемой
формы, были придуманы различные модификациии этого алгоритма. Например, можно
проецировать каждую точку двухмерной "полосы" на скальп и соединять вершину с её
проекцией. Также геометрические свойства формы волос можно использовать следующим
образом. Вся форма определяется одной параметрической поверхностью. Данная
поверхность смещается вдоль направления своей нормали. Отдельные волосы
распределяются внутри получившегося объёма. Этот метод получил название "метода
тонкого каркасного объёма" ([12]).
Рис. 7 NURBS поверхности.
Рис. 8 Тонкий каркасный объём.
Пучки и обобщённые цилиндры
Пожалуй, самый интуитивный метод расположения волос на голове состоит в
представлении пучков волос в виде обобщённых цилиндров. Такой подход уменьшает
количество контрольных параметров, необходимых для полного определения формы
волос. Расположение группы волос зависит от расположения одной кривой, которая
служит центром обобщённого цилиндра, определяемого радиусом своего поперечного
сечения. Пучок волос создаётся из группы волос, расположенной внутри обобщённого
цилиндра. Таким образом пользователь может контролировать полную форму волос,
воздействуя на направляющие кривые цилиндров. Данный подход позволяет создавать
многие популярные причёски, от косичек и различные завитков африканских причёсок до
"конского волоса". Однако, если причёску нельзя представить в виде набора пучков, то
использование данного метода будет затруднительно. Кроме того, само создание причёски
может быть довольно утомительным. Однако это зависит от конечного желаемого
результата.
Рис. 9 Метод пучков.
Иерархия обобщённых цилиндров
Сложная геометрия волос может быть также представлена в виде иерархии обобщённых
цилиндров ([7]). Такой подход позволяет пользователю выбирать желаемый уровень
детализации для контроля и изменения формы волос. Большие пучки позволяют быстро
задать общую форму. Маленькие дают возможность задавать детали, вплоть до
положения отдельного волоса.
Рис. 10 Иерархия обобщённых цилиндров.
Физические методы
Некоторые техники виртуального дизайна основаны на представлении волос в виде
определённой физической модели.
Метод консольных балок
В физике материалов консольная балка определяется как прямой брус, закреплённый
только одним концом. Некоторые исследователи нашли ([19]), что такая физическая
модель может быть применена и для случая человеческого волоса, т.к. волос прикреплён к
скальпу одним концом, а другой свободный. Считая силу тяжести главной причиной
изменения формы волоса, метод фактически моделирует физику консольной балки для
получения окончательного положения. Т.к. используется линейная модель, то необходимо
применение дополнительных сил для получения правильной формы.
Метод потоков жидкости
Ещё одна физическая модель, которая может быть использована для моделирования
поведения волос - это модель потоков жидкости. Суть подхода заключается в
предположении, что статичные волосы ведут себя точно так же, как и ниспадающие
потоки жидкостей. При таком подходе пользователь задаёт "источник" волоса,
направление потока, а также дополнительные детали, такие как водовороты, с помощью
которых моделируются кудри.
Рис. 11 Метод потоков жидкостей.
Метод полей векторов движения
Следующая физическая модель, которую также с успехом можно применить к
моделированию формы волос - метод статических полей векторов движения ([13]). И поля
векторов, и волосы имеют чёткую ориентацию в каждой точке. При этом оба объекта
представляют объёмные данные. Поля векторов можно использовать для определения
направления роста волоса в каждой точке. Волос начинает расти из определённой заранее
точки на скальпе и рост его происходит по шагам вдоль направления соответствующего
вектора, пока не достигнет необходимой длины. Для построения формы можно
использовать систему частиц. Частице даётся определённое время жизни и она
"запускается" в векторное поле. Путь частицы определяет отдельный волос. Этот метод
может быть улучшен путём добавления возможности задавать различные ограничения на
форму опосредованно (дополнительных векторов, вводящих какие-то ограничения), а не
путём прямой модификации векторного поля.
Рис. 12 Метод полей векторов движения.
Построение формы по изображениям
Существует ряд подходов, которые предлагают альтернативный способ получения формы
волос. Суть их заключается в автоматическом построении формы по изображениям.
Построение формы по фотографиям
Суть метода заключается в получении всей необходимой информации о форме волос из
фотографий. Один из первых подходов заключался просто в восстановлении объёма,
занимаемого волосами. Сами волосы генерируются внутри полученного объёма. Для
определения их направления и других параметров используются эвристические
алгоритмы, которые не гарантируют верность полученного результата. Однако для
простых причёсок такой подход идеален. Усложнением может быть осуществление
фотографирования с заранее заданных точек при контролируемых условиях освещения.
Такой подход позволяет с помощью различных фильтров, применяемых к фотографиям,
получить ориентацию волос в пространстве и тем самым более точно восстановить
требуемую форму([14], [15], [16]).
Рис. 13 Построение формы по фотографиям.
Построение формы по эскизам
Для моделирования нереалистичных форм волос для задач анимации можно использовать
упрощённые методы. Суть метода эскизов состоит в получении от пользователя
некоторой приблизительной формы волосы. Пользователь интерактивно очерчивает
границу желаемого объёма, а также определяет силуэт требуемой формы. После
получения этих простых данных система создаёт поверхность, определяющую силуэт
причёски. Кривые, представляющие отдельные пучки, создаются между силуэтной
поверхностью и скальпом. Эти кривые после становятся основой для "полос волос". Такой
подход позволяет быстро создавать стилизованные причёски для задач анимации с
минимальным вводом информации со стороны пользователя. Однако для создания
реальных причёсок такой метод мало пригоден.
Оценка методов придания общей формы
Табл. 1 Сравнение методов придания общей формы.
Как видно из приведенной таблицы, метод обобщённых цилиндров позволяет создать
большое количество разнообразных причёсок и в этом выигрывает по сравнению с
другими методами. Однако это преимущество не бесплатное и требует от пользователя
довольно больших временных затрат и ручного ввода большого количества информации.
Что касается контролируемости конечной формы со стороны пользователя, то здесь опять
метод обобщённых цилиндров оказывается лучше, по сравнению с другими
рассмотренными . Высокая контролируемость в случае метода поверхностей объясняется
возможностью управлять контрольными точками параметрических поверхностей. Однако
количество причёсок, которые мы можем получить с помощью данного метода, весьма
ограничено.
Изящные детали
После того, как мы разместили волосы на голове, придали им некоторую форму, нам бы
ещё хотелось добавить некоторые детали, которые сделали бы наши волосы ещё более
реалистичными. В некоторых случаях нам хочется добавить курчавость или
дополнительный объём, в других - создать эффект мокрых волос или действия различных
косметических средств.
Локоны и волнистость
Локальные детали, такие как кудри или локоны, могут очень сильно повысить
реалистичность создаваемой виртуальной причёски. Для их создания существует
несколько подходов. Один из них заключается в использовании тригонометрических
функций смещения ([13]). Таким образом можно создать различные формы и детали,
контролируя геометрические параметры (амплитуда, частота, фаза) функций смещения.
Чтобы волосы не выглядели слишком искусственно из-за полной идентичности отдельных
частей, соответствующие параметры комбинируются со случайными величинами,
которые отличаются для каждого пучка. Для создания различных эффектов курчавости
можно также использовать уже знакомый нам подход направляющих кривых (отдельных
контрольных волос). Общая форма пучка определяется формой направляющего волоса.
Внутри пучка уровень похожести между волосами контролируется функциями
отклонения. Геометрия направляющего волоса разделяетя на две компоненты: контур и
детали. Детальная компонента строится из прототипа отдельного волоса с использованием
марковских процессов. А уровень похожести может контролироваться с помощью
распределения Гиббса. Получающиеся результаты непротиворечивы и весьма
реалистичны.
Рис. 14 Метод тригонометрических функций.
Рис. 15 Направляющие кривые.
Рассмотренные методы локального изменения формы волос помогают смягчить
искусственный вид виртуальных волос. Тем не менее многие из них используют в том или
ином виде элемент случайности, что уменьшает возможности пользователя по контролю
деталей. Такие полуавтоматические алгоритмы помогают получить приемлимые
результаты с малыми затратами времени пользователя. При этом мы не застрахованы от
возможных артефактов. И в такого рода моделях мы совсем не учитываем реальную
физичекую базу. Относительно недавно (2005 год [20]) был представлен ещё один метод
для автоматической генерации красивой геометрии волос. Он использует механически
аккуратную модель статичных эластичных ветвей и базируется на минимизации
потенциальной энергии. Этот метод учитывает натуральную курчавость волос и
эллиптическую форму попереченого сечения. Он не подходит для создания сложных
причёсок, однако позволяет аккуратно учитывать особенности отдельных волос. Это
полезно, в частности, в задачах косметического тестирования.
Рис. 16 Метод статичных эластичных ветвей.
Создание объёма
В зависимости от того, какую модель мы используем для представления волос,
геометрическую или физическую, мы можем по-разному добиваться эффекта объёмности
волос. Геометрические методы создают эффект объёма с помощью объёмных примитивов.
Физические модели рассчитывают взаимодействие волос между собой и с окружающей
средой (голова, плечи, …). Поскольку честный расчёт всевозможных взаимодействий
огромного количества волос является весьма трудоёмкой с точки зрения вычислительной
сложности задачей, то довольно часто используются различного рода приближённые
модели. Например, разделение всех волос на слои и рассматривание взаимодействия
между ними.
Эффект мокрых волос и косметических продуктов
Косметические продукты, такие как гели для укладки волос, муссы, лаки и пр., очень
сильно влияют на внешний вид волос и их физическую реакцию на внешние и внутренние
воздействия. Учёт воздействия этих продуктов на волосы можно сделать путём введения
дополнительных сил. Эти силы будут отвечать за устойчивость формы волос при внешних
воздействиях. Можно также ввести различные статические и динамические связи,
используя дополнительные силы упругости между соседнимим пучками([17], [18]). Кроме
косметических продуктов на внешний вид волос очень сильно влияет вода. После того,
как вода впиталась в волосы, их масса возрастает на 45%, а эластичность уменьшается в
десятки. Таким образом мы получаем совершенно другую субстанцию - более
деформируемую и гораздо менее эластичную. Кроме того, после воздействия воды объём
волос уменьшается, т.к. волосы фактически склеиваются благодаря связывающей природе
воды. В зависимости от используемой модели представления волос, схожего эффекта
можно добиться варьированием различных параметров. Например, в случае физического
представления достаточно просто увеличить массу каждого волоса, а также изменить
модуль Юнга ([20], [18]). В случае использования геометрических свойств волос, их
объём легко контролируется путём уменьшения размера пучка.
Рис. 16 Сухие (a) и мокрые (b) волосы.
Заключение
В данной статье была произведена попытка рассмотреть всевозможные методы
геометрического моделирования волос. Было показано, что для создания сложной
геометрии волос можно использовать различные как геометрические, так и физические
подходы, не моделирующие точную физику самих волос. Было показано, что волосы сложный с геометрической точки зрения объект, воспроизведение которого является
трудоёмкой задачей. Необходимо учитывать не тольку общую форму "волосяного
объёма", но и поведение отдельных волос. Именно внимание к мелочам, к деталям
позволит обеспечить максимум реалистичности. Это становится ещё более ценным в свете
того, что в рассмотренных методах мы не пытаемся моделировать физику волос, как
объекта реального мира, а только создаём "внешнюю модель". Надо сказать, что
существует целый набор методов физического моделирования, в которых мы пытаемся
имитировать процесс взаимодействия волос друг с другом и с окружающей средой
(голова, плечи и пр.) Однако, как показывает проведённый обзор, даже без имитации
точной физики мы можем достичь реалистичных результатов для статических (а иногда и
для динамических) представлений.
Ссылки.
1. Kelly Ward, Florence Bertails, Tae-Yong Kim, Stephen R. Marschner, Marie-Paule Cani,
Ming C. Lin "A Survey on Hair Modeling: Styling, Simulation, and Rendering"
2. Компьютерра Online, "Мохнатые звери "Мадагаскара"
(http://www.computerra.ru/hitech/39178/)
3. А. В. Боресков, "Рендеринг меха" (http://steps3d.narod.ru/tutorials/fur-tutorial.html)
4. NVIDIA Direct3D SDK 10, "Fur - Shells and Fins"
(http://developer.download.nvidia.com/SDK/10/direct3d/samples.html#Fur)
5. ATI Research Inc., Thorsten Scheuermann, "Practical Real-Time Hair Rendering and
Shading"
6. ShaderX3, Thorsten Scheuermann, "Advanced Rendering with DirectX and OpenGL.
Hair Rendering And Shading"
7. Tae-Yong Kim, Ulrich Neumann, "Interactive Multiresolution Hair Modelling and
Editing"
8. N. Magnenat-Thalmann and S. Hadap, "State of the art in hair simulation"
9. L'Oréal, "Hair science," 2005, http://www.hair-science.com .
10. E. Plante, M.-P. Cani, and P. Poulin, "A layered wisp model for simulating interactions
inside long hair"
11. B. Hernandez and I. Rudomin, "Hair paint"
12. T.-Y. Kim and U. Neumann, "A thin shell volume for modeling human hair"
13. Y. Yu, "Modeling realistic virtual hairstyles"
14. S. Grabli, F. Sillion, S. R. Marschner, and J. E. Lengyel, "Image-based hair capture by
inverse lighting"
15. S. Paris, H. Briceno, and F. Sillion, "Capture of hair geometry from multiple images"
16. Y.Wei, E. Ofek, L. Quan, and H.-Y. Shum, "Modeling hair from multiple views"
17. J. T. Chang, J. Jin, and Y. Yu, "A practical model for hair mutual interactions"
18. K. Ward, N. Galoppo, and M. C. Lin, "Modeling hair influenced by water and styling
products"
19. K. Anjyo, Y. Usami, and T. Kurihara, "A simple method for extracting the natural beauty
of hair"
20. F. Bertails, B. Audoly, B. Querleux, F. Leroy, J.-L. Lévêque, and M.-P.Cani, "Predicting
natural hair shapes by solving the statics of flexible rods"
Download