Конечная цель создания виртуальных людей или, иначе, синтетических актеров, которые обладали бы автономным поведением и выглядели реалистично, состоит в том, чтобы иметь возможность взаимодействовать с ними в виртуальных сценах, представляющих реальный мир. Во всяком случае, как бы не была прекрасна виртуальная сцена, она будет страдать незавершенностью в отсутствии людей, конечно, виртуальных. Сцены, включающие виртуальных людей, индуцируют множество сложных проблем, с которыми мы пытаемся справиться уже в течение нескольких лет [1]. Сегодня мы постепенно подходим к точке, в которой становится возможным реалистичное моделирование виртуальных людей в объеме, причем, принимая во внимание деформации тела, лица и одежды. Главный мотив нашего исследования - устранить из практики современной анимации такие приемы, как спецэффекты, 2D эффекты, прямые кинематические методы, например, ключевые кадры и ротоскопию. Мы пытаемся построить процедурные методы для моделирования жизненных функций. При наличии таких методов становиться возможным взаимодействие с актерами в виртуальной реальности - "актеры" сами имеют описание своего облика, знают как себя вести и реагировать на внешние стимулы из реального и виртуального миров.
Создание виртуальных людей
Степень реализма виртуальных людей во многом определяется тем, насколько актеры наделены присущими только им характерными чертами. Для широко известных персонажей ошибаться практически нельзя: любое отклонение будет замечено зрителем.
Лепка формы виртуального актера
Создание тела виртуального человека - это только первый шаг, характер актера зависит от движений тела, а индивидуальность определяется мельчайшими изменениями выражения лица и мимикой. Для конструирования всех этих форм мы предлагаем интерактивный подход. Поверхности человеческого лица и тела являются нерегулярными структурами и реализуются в виде полигональной сети. Для их построения мы предложили методологию [2] интерактивной лепки с использованием устройства ввода SpaceBall, обладающего 6 степенями свободы. Если оно используется вместе с обычной мышью, пользователь, держа мышь в одной руке и SpaceBall в другой, получает полное трехмерное средство взаимодействия. С помощью SpaceBall можно вращать объект, а мышь использовать для указаний и определения деформаций. Таким способом оператор не только может посмотреть объект с любого ракурса, но и интерактивно задать и подправить деформации.
Методы управления движением
Человеческое тело состоит из большого числа шарнирно связанных звеньев. Хотя известно много методов для управления такими многозвенными телами, обычно они применимы к значительно более простым системам. Многозвенные движущиеся системы называются локомоторными, и для общего случая с достаточной степенью эффективности реалистично описать их движение можно только используя комбинацию различных методов. Мы реализовали ряд таких методов: ключевые кадры; инверсную кинематику; прямую/обратную динамику (рис. 1); ходьбу, основанную на биомеханике; автоматическое схватывание и интегрировали их.
Рис. 1. Движение, основанное на динамике
Получение натурального движения, которое строится путем интеграции перемещений всех частей тела с использованием различных типов управления движением, является очень сложной проблемой. В нашем случае модуль, смешивающий различные движения основан на методе коррекции тренер-практикант, которые был разработан в контексте ходьбы. Этот метод позволяет вносить коррекцию в кинематику движения для объединенного пространства с учетом геометрических ограничений [3]. Таким способом можно модифицировать последовательность ключевых кадров, которые являются описанием движения низкого уровня, на более высокий уровень целеориентированных требований. Мы полагаем, что этот подход, существенно расширит сферу применимости предопределенных движений (записанное движение, специализированные модели, ключевые кадры и т.д.). Возникает новая методология для концепции движения, базирующаяся на методе коррекции тренер-практикант. Функциональная диаграмма на рис. 2 показывает, как производится композиция входных движений в смешивающем модуле перед выполнением модуля коррекции тренер-практикант.
Рис. 2. Функциональная диаграмма смешивания движений
С целью индивидуализации человеческой ходьбы была разработана [4] модель, которая основывается на экспериментальных данных в широком диапазоне нормализованных скоростей (рис. 3). Модель имеет двухуровневую структуру. На первом уровне генерируются глобальные пространственные и временные характеристики: нормализованная длина и время шага. На втором уровне по набору параметризованных траекторий определяется положение тела в пространстве и его конфигурация, в частности, позиции таза и ног. Для этого используется стандартная структура и усредненная конфигурация человеческого тела. Далее экспериментальный контекст уточняется: аниматором вносятся поправки в глобальные пространственные и временные параметры с целью достижения желаемого эффекта. Получение уточненной модели основывается на простом кинематическом подходе, который сохраняет существенные характеристики динамической модели. Важно, что данный подход позволяет индивидуализировать ходьбу интерактивно в реальном времени и годится для большинства ситуаций.
Рис. 3. Биомеханическая ходьба
Наш подход к моделированию схватывания базируется на трех шагах.
1) Обратная кинематика для получения финального положения руки.
2) Эвристики для определения способа схватывания.
Процедура схватывания выбирается автоматически, исходя из таксономии захватов (таблица 1). Например, система может самостоятельно решить использовать ли захват щепотью, если объект слишком мал, чтобы его можно было зажать больше, чем двумя пальцами. Если объект большой, она выберет захват двумя руками. Для сложных объектов решение принимается на основе анализа всех границ. На рис. 4 показаны примеры захватов.
|
|
|
|
|
|
|
|
|
|
|
|
Таблица 1. Выбор захвата.
Рис. 4. Различные способы захвата
3) Мультисенсорная рука.
Рука, моделируемая как многозвенная система (рис. 5) снабжается множеством тактильных датчиков - сенсоров. Радиус каждого сферического сенсора выбирается так, чтобы он соответствовал размеру звена. Когда активизируется некоторый сенсор пальца, все предшествующие ему суставы прекращают движение, а остальные сохраняют подвижность. В результате все пальцы в конце концов занимают естественное положение вокруг объекта.
Рис. 5. Расположение сенсоров при схватываниии
Деформации тела
Реалистическое моделирование деформаций человеческого тела представляет важную, но трудную проблему и для ее решения используется многоуровневый подход [6].
Общее поведение костей, мускулов и тканей моделируется эллипсоидальными меташарами, которые подгоняются к скелету и аппроксимируют анатомию. Конструирование кожи производится в три этапа. Во-первых, строится неявная поверхность, как объединение областей влияния меташаров. Точки поверхности получаются в результате отслеживания лучей (ray casting method) в поперечных сечениях. Во-вторых, построенные точки рассматриваются, как контрольные для кусков B-сплайновой поверхности, аппроксимирующих каждую часть тела (конечности, туловище, таз, шею). В-третьих, производится конструирование полигонального представления поверхности путем гладкого соединения этих B-сплайновых кусков, что, собственно обеспечивает гладкость кожи (рис. 6).
Рис. 6. Пример человеческого тела
В нашем редакторе меташаров работа начинается с создания многозвенного скелета моделируемого органического тела. Меташары аппроксимируют форму тех внутренних структур, которые вносят зримый вклад в форму объекта. Каждый меташар прикрепляется к смежному с ним суставу, который определен в локальной координатной системе скелета. Это удобно для размещения и редактирования примитивов меташаров, поскольку относительные пропорции, ориентация и размеры различных частей тела известны заранее.
В нашей модели поддерживается 5 преобразований масштабирования. С их помощью модификация размеров выполняется очень просто - путем изменения длин осей базовых направлений каждого меташара. На рис. 7 иллюстрируется, как операции масштабирования проявляются на конфигурации кожного покрова. Более того, путем интерполяции параметров меташаров между двумя ключевыми моделями можно получать 3D морфинг формы человеческого тела.
Рис. 7. Автоматическое масштабирование кожи
Анимация лица
Достаточно трудно создать такую модель анимации лица, которая была бы физически реалистична, соответствовала бы анатомическим деталям топологии лица, и в то же время была удобна для аниматора. Мы используем многоуровневый подход, который представляет проблему анимации лица в виде иерархии независимых друг от друга уровней. Чем выше уровень, тем большую степень абстракции он использует для определения своих элементов, таких, как эмоции или фразы речи, а это способствует тому, что аниматор работает с такими элементами естественно и интуитивно. Уровни абстракции приведены на рис. 8. Самый высший и самый абстрактный уровень определяет "что делать", а нижние уровни - "как делать". Каждый уровень рассматривается, как независимый, со своим собственным входом и выходом.
Рис. 8. Иерархическая структура многоуровневой системы анимации лица
На верхнем уровне системы механизм синхронизации требует от аниматора задания как элементов высшего уровня: эмоций, предложений, движений головы, так и их продолжительности. Эти элементы далее разлагаются на элементы нижних уровней и посылаются на конвейер управления. Временные характеристики анимации обычно контролируются на высших уровнях, а пространственные - на нижних.
Для анимации лица мы расширили концепцию свободных деформаций (FFD - Free Form Deformations). Концептуально FFD соответствует деформациям, применяемым к воображаемому параллелепипеду из прозрачного гибкого пластика. В этот параллелепипед встроены объекты, которые требуется деформировать. Объекты также считаются гибкими, так что они деформируются вместе с окружающим их пластиком. На параллелепипед налагается сетка контрольных точек. Для внутренних точек параллелепипеда деформации определяются смещениями контрольных точек. В качестве расширения базового метода FFD мы включаем в него базис рациональных функций [7]. Этот базис позволяет приписать каждой контрольной точке сетки некоторый вес. Выигрыш от использования рационального FFD заключается в добавлении одной дополнительной степени свободы для управления деформациями путем изменения весов контрольных точек.
Построение отдельных участков производится интерактивным подбором полигонов. Эти участки человеческого лица обычно соответствуют их анатомическому описанию, например, это нос, губы, глаза. Величина и направление растяжения мышц подбирается интерактивно, посредством изменения позиций и весов контрольных точек. Некоторые из точек можно "посадить на якорь", с тем, чтобы они не меняли своего расположения.
Выражения и фонемы в нашей системе рассматриваются, как моментальные снимки лица - определенные лицевые конфигурации. Для фонем учитывается только ротовая часть лица (губы), во время, когда издается звук. Моментальный снимок лица состоит из одного или нескольких минимально воспринимаемых действий (MPA), для которых задаются интенсивности. Минимально воспринимаемое действие - это базовый параметр движения лица. Каждое MPA имеет соответствующий набор видимых особенностей, таких, как движения бровей, челюсти, рта, которые происходят в результате сокращения или растяжения мышц. Включенный в реализацию набор MPA достаточно обширен для описания большинства выражений лица. Общий вид описания выражений можно представить следующим образом:
[expression[mpa intensity ] [mpa intensity ] ... ]
Пример описания выражения:
[expression surprise //удивление
[mpa openjaw intensity 0.17 ] //открыть рот
[mpa puffcheks intensity -0.41] //надуть щеки
[mpa stretch_cornerlips intensity -0.50] //напрячь углы губ
[mpa raise_eyebrows intensity 0.40] //поднять брови
[mpa close_lower_eyelids intensity -0.54] //закрыть нижнее веко
[mpa close_upper_eyelids intensity -0.20] //закрыть верхнее веко
]
Для обеспечения гладкости переходов между действиями необходим механизм синхронизации. Синхронизации задается с помощью языка HLSS - High Level Script Scheduler, в терминах действий и их продолжительности. С учетом зависимости действий определяется время начала и окончания каждого из них. Общий формат определения действия:
whiledo .
На рис. 9 приведен пример моделирования выражения лица.
Рис. 9. Выражение лица
Автономные виртуальные люди
Восприятие посредством виртуальных сенсоров
В приложениях ВР и мультимедиа цифровой актер должен быть способен реагировать на окружающую среду и действовать, основываясь на своих ощущениях. Проблему моделирования синтетического актера, погруженного в среду, можно разделить на две части:
1) получение знаний о среде,
2) реагирование на среду.
Модель можно описать, как параллельное выполнение этих функций, с помощью следующего поведенческого цикла:
t_global=0.0
код, инициализирующий среду анимации
while (t_global код обновления сценыfor каждого актеракод восприятия средыкод выбора действийfor каждого актеракод исполнения выбранных действийt_global+=t_interval}Первая проблема заключается в создании информационного потока от среды к актеру. Синтезируемая среда состоит из трехмерных геометрических форм. Одно из возможных решений - сделать доступным для актера информацию о точном положении каждого из объектов сцены - дать ему полный доступ к базе данных среды синтетического мира. Такое решение может работать только для очень "маленького мира" и становится практически непригодным, когда число объектов растет. Кроме того, этот подход не согласуется с реальностями нашего мира, в котором люди не имеют знаний обо всей среде. Лучшее решение - оснастить актеров виртуальными сенсорами: зрительными, слуховыми и осязательными.
Виртуальное зрение
В работе [8] мы ввели понятие синтетического зрения, как главного информационного канала между средой и виртуальным актером. Каждый пиксель зрительного входа несет семантическую информацию о проекции объекта на этот пиксель, и числовую информацию, задающую расстояние до объекта. Синтетический актер воспринимает свое окружение через маленькое окно, обычно 30x30 пикселей, в которое отображается среда. Поскольку ему известны z-буферные значения пикселей, цвета пикселей и собственная позиция, он может определить положение видимых объектов в 3D среде. Этой информации достаточно для локальной навигации.
Виртуальный слух
В реальной жизни на поведение людей и животных значительное влияние оказывают звуки. Эту задачу решает инструментарий для моделирования 3D акустической среды, в которой есть источники звука и микрофоны. Акустическая среда строится из источников звуков и проводящей субстанции. Источники звука могут порождать звуковые события, которые определяются положением в пространстве, типом звука, началом и концом. Проводящая субстанция управляет распространением звука, передавая его в ухо актера, пользователя или в устройство записи звуковой дорожки.
Виртуальное осязание
На базовом уровне восприятия люди способны чувствовать физические объекты, если какая-то часть тела касается их, и собирать о них тактильную информацию. Эта сенсорная информация используется, например, чтобы дотянуться до объекта, для навигации и т.д. Мы используем сферические мультисенсоры, о которых шла речь в разделе 2, для осязания и схватывания.
Действия на основе восприятия
Синтетическое зрение, слух и осязание позволяют актеру воспринимать окружение. Основываясь на этой информации его поведенческие механизмы определяют соответствующие действия, которые могут быть разного уровня сложности. Актер может просто двигаться в среде или взаимодействовать с ней или даже с другими актерами. Мы выделяем два типа действий: навигация и схватывание.
Виртуальные люди в Виртуальной Реальности
Система VLNET
Одним из самых заманчивых приложений ВР является моделирование в реальном времени и взаимодействие с автономными актерами в игровых ситуациях и при совместной работе.
Система VLNET (Virtual Life Network) [9] обеспечивает поддержку сетевой разделяемой виртуальной среды, давая возможность нескольким пользователям взаимодействовать друг с другом и с окружением в реальном масштабе времени. Пользователи представляются виртуальными людьми - актерами, которые служат агентами для взаимодействия со средой и другими агентами. Агенты имеют схожий с людьми внешний вид и поведение, что поддерживает у пользователей иллюзию присутствия в виртуальной среде. Кроме управляемых пользователями агентов в среду могут быть дополнительно помещены полностью автономные человекоподобные агенты, которые используются как дружественный к пользователю интерфейс для различных услуг, например навигации. Виртуальные люди могут использоваться и для замены временно отсутствующих партнеров, обеспечивая асинхронную кооперацию между удаленными партнерами. Среда включает различные субстанции: звук, 3D модели, взаимодействие между пользователями с помощью мимики, нанесенные в виде текстуры на 3D объекты изображения, фильмы в реальном времени. Среда используется как общее русло для предоставления различных видов информации.
Поскольку виртуальные актеры играют ключевую роль в VLNET, прежде всего мы поясним само понятие виртуального актера. Мы определяем виртуального актера, как человеко-подобную единицу, имеющую абстрактное представление в компьютере. Виртуальный актер реального времени - это такой виртуальный актер, который способен действовать со скоростью реального человека. Для ВР, систем интерактивного телевидения и игр существенны именно виртуальные актеры реального времени. В VLNET могут сосуществовать в одной разделяемой среде все три типа виртуальных актеров реального времени.
Актер-участник - является виртуальной копией реального пользователя. Его перемещения полностью копируют реальные перемещения пользователя. Проще всего этого можно достигнуть с помощью большого числа датчиков, отслеживающих все степени свободы реального тела, однако обычно это невозможно из-за технологических особенностей и ограничений на число воспринимающих устройств. Выход состоит в объединении регистрируемой информации с поведенческими знаниями и различными генераторами движения для того, чтобы "интерполировать" те части тела, которые не отслеживаются.
Управляемый актер полностью контролируется пользователем в реальном времени. В VLNET лучшим примером управления актером служит навигация.
Как уже отмечалось, автономный актер действует без какого-либо вмешательства пользователя. Включение автономных актеров, которые взаимодействуют с участниками, увеличивает реальность контакта со средой, и потому вносит вклад в создание эффекта присутствия. Автономные актеры соединяются с системой VLNET таким же образом, как и живые участники, что повышает используемость среды, предоставляя такие услуги, как замена отсутствующих партнеров и помощь в навигации.
Управление актером
В текущей реализации используются такие формы поведения, как ходьба и схватывание. Кроме того, для представления различных намерений мы включили набор жестов. Этот поведенческий набор может быть легко расширен, однако уже имеющихся форм достаточно для выполнения рутинных действий и они образуют минимальное множество форм поведения для участия в виртуальных встречах.
Что касается навигации, то здесь управление осуществляется следующим образом. Реальное лицо использует устройство ввода для задания параметров преобразования относительно позиции глаз виртуального актера. Это локальное управление пересчитывается в пошаговое изменение позиции глаз и, далее, в новые межзвенные углы тела. Используемое движущее устройство основано на модели гуманоидной ходьбы, которая интерактивно управляется пользователем, либо автоматически генерируется исходя из траектории. Межзвенные углы устанавливаются при ходьбе исходя из математической параметризации биомеханических экспериментальных данных.
Для схватывания мы используем инверсную кинематику правой руки виртуального актера. Позиция и ориентация руки виртуального актера обновляется в результате действий реального лица, которое использует устройство ввода. Исходя из вводных данных расчитывается реалистичная позиция правой руки с учетом межзвенных ограничений. Для расчета движений виртуального актера в реальном времени мы моделируем инверсную кинематику правой руки простой цепью. Хотя и можно применить более физически корректную модель, главной заботой для нас является то, как схватывание выглядит визуально.
Применения
Взаимодействовать с VLNET могут реальные пользователи, пользователи, осуществляющие управление и автономные актеры. Например, реальный пользователь может играть в шахматы против такого же реального пользователя или против автономного актера. Трехмерная головоломка может разгадываться двумя автономными актерами или реальным пользователем с помощью управляемого актера. VLNET сводит вместе 4 важные технологии:
1) сетевую кооперативную работу, поддерживаемую компьютером;
2) виртуальную реальность;
3) искусственную жизнь;
4) компьютерную анимацию.
Реализация системы VLNET
Существенный эффект могут иметь сетевые задержки, особенно при возрастании числа участников. Поэтому важно обеспечить высокую пропускную способность коммуникационных линий с небольшой задержкой. Эксперименты с нашей системой мы проводим в пилотной сети типа ATM, которая предоставлена Швейцарскому Федеральному Технологическому Институту и университету Женевы компаний Swiss Telekom.
Мы также включили в систему взаимодействие посредством мимики. Для этого на лицо пользователя накладывается текстура и результат изображается на голове виртуального актера. Подготовка этой функции включает несколько этапов. Вначале оцифровывается изображение пользователя, из него выделяется часть, содержащая лицо, и рассылается другим пользователям. Для получения нужной части изображения применяется следующий прием: вначале записывается фон изображения без пользователя. Затем в течение сеанса работы производится анализ изображений из видеопотока и разность между фоновым и текущим снимками используется для определения прямоугольника, который ограничивает лицо на изображении. Эта часть снимка рассылается другим пользователям после дополнительной компрессии, а получающая сторона автоматически распознает тип поступающего изображения.
Моделирование автономной одежды на основе физических моделей
До сих пор в программах моделирования пытались получить реалистичные результаты для предметов одежды, надетых на анимируемое тело. Предметы одежды рассматривались, как набор плоских полигонов, составленных регулярным образом из треугольных ячеек, которые удерживаются вместе сшивающими силами. Исходя из соображений скорости вычислений в зависимости от конкретной ситуации делались те или иные геометрические допущения, уменьшающие время обнаружения столкновений. Такой подход действительно создает довольно "простой" механический контекст с хорошо определенными ситуациями столкновений и довольно гладкой деформацией.
В нашей системе ставится цель избавиться от такой специфичности с тем, чтобы иметь возможность моделировать одежду в любой ситуации, которая может встретится в реальной жизни. Это включает и примеры одежды, надетой на тело, брошенной, сложенной, смятой. Такие ситуации, как смятая одежда, представляют собой очень трудные геометрические и механические задачи, так как здесь имеется бесчисленное количество взаимозависимых столкновений и очень сильные деформации. Система должна быть достаточно мощной, чтобы справиться со всеми возможными ситуациями. Наша система способна моделировать не только анимацию одежды на движущемся теле, но и очень широкий спектр деформируемых поверхностей в любой сцене, включающей движущиеся объекты.
Описание системы
Одежда, как и в реальной жизни, составляется из кусков ткани. Вначале производится 2D раскрой ткани, причем могут использоваться реальные модели одежды. Полученные куски сшиваются вместе путем механического моделирования. Предмет одежды становится целостным объектом, которым можно манипулировать разными способами.
Система моделирования одежды состоит из 2D редактора кусков и 3D моделирующей системы. Процесс конструирования разбивается на три шага.
Раскрой кусков ткани. Используя редактор плоских кусков, производится геометрическое определение кусков ткани, составляющих одежду. Редактор помогает производить геометрические построения, образмеривание и включает разнообразный набор инструментов: построение на сетке, дублирование, симметрия. Далее определяются линии швов между и внутри кусков. Дизайнер указывает, какие из краев должны быть сшиты друг с другом. Специальные средства позволяют обеспечить непротиворечивость сшивок.
Сборка одежды. Используя трехмерную систему моделирования, производится сшивка отдельных кусков в единое целое - предмет одежды. Пользователь определяет контекст, в котором должна производится сборка: либо "в воздухе", либо вокруг тела, на которое уже может быть одета другая одежда. Куски интерактивно переносятся на свои начальные позиции, которые должны обеспечивать правильность сборки. Швы ведут себя, как резиновые, благодаря чему можно подогнать соседние куски друг к другу. При этом производится механический расчет сил упругости. После того, как подогнаны линии швов, собраны вместе разные куски и получен готовый предмет одежды, им можно управлять, как любым другим объектом.
Анимация одежды. Предмет одежды помещается в среду анимации, состоящую из движущихся тел или любых других объектов, входящих в сцену. Механические вычисления преобразуют деформируемую поверхность в соответствии с ее механическими параметрами (упругость, толщина и т.д.) и внешними факторами:
- реакция на соударение (отталкивание или трение) с собой;
- реакция на соударение с другими неподвижными или анимированными объектами (другая одежда, тело, другой объект);
- внешние силовые поля (гравитация, ветер,...)
Пользователь может интерактивно изменить установленные механические параметры, заблокировать некоторые точки деформируемой поверхности или добавить эластичности между объектами, и тем самым модифицировать анимацию.
Механическая модель
Модели, основанные на глобальной минимизации или на уравнениях динамики в форме Лагранжа, в данном случае не годятся, так как ситуация имеет высокую степень нелинейности из-за очень большого числа столкновений. Главная идея нашей модели состоит в прямом интегрировании уравнений движения Ньютона (F=ma), чтобы сделать быстро расчитываемые шаги малыми по времени. Таким способом можно корректно справиться с нелинейным поведением и разрывами непрерывности. Более того, такая прямая формулировка позволяет нам легко и точно включать в модель любое нелинейное механическое поведение. В такой модели мы можем также непосредственно воздействовать на положение и скорость элементов и тем самым обойти проблему управления соударениями посредством сильных отталкивающих сил, которые вносят возмущения в моделирование.
Деформируемый объект представляется при анимации в виде системы частиц, расположенных в вершинах неоднородных треугольников. Таким образом может быть промоделированы поверхности любой формы. Предполагается, что объект является изотропным и имеет постоянную толщину. Упругие свойства объекта описываются стандартными параметрами:
- модулем Юнга;
- коэффициентом Пуассона;
- плотностью;
- толщиной.
Чтобы ткань не вела себя, как кусок резины, к ее реакции, соответствующей модулю Юнга, добавлена нелинейность.
При использовании второго закона Ньютона, уравнения движения сводятся к паре дифференциальных уравнений первого порядка для координат и скорости. Система уравнений решается методом Эйлера - Кремера второго порядка (метод средней точки).
Ограничения, налагаемые на движение деформируемого объекта, можно разбить на две категории:
- Непрерывные ограничения, включая внутренние и некоторые наружные, такие, как ветер (представляемый силой, пропорциональной относительной скорости поверхности и вязкой среды) и гравитация. К дополнительным внешним силам относятся упругие связи между вершинами. Эти силы позволяют реализовать сшивание и интерактивные манипуляции объектом.
- Разрывные ограничения, соответствующие соударениям с другими объектами. Они производят мгновенные изменения состояния объекта.
Внутренние напряжения действуют либо в плоскости - это силы плоского растяжения и разрыва, либо в пространстве - сгибание и кручение. Плоские и пространственные деформации обрабатываются раздельно.
Отслеживание и управление столкновениями
Чтобы справиться со сложными с точки зрения столкновений ситуациями, такими, как смятие, необходим эффективный детектор столкновений и самостолкновений, а также мощный механизм управления столкновениями. Время, затрачиваемое на обнаружение столкновений и в особенности самостолкновений часто становится узким местом приложений моделирования сложных сцен, поскольку требуется произвести огромное число геометрических тестов для определения, какие из элементов сталкиваются.
В нашем случае проблема еще более усложняется из-за того, что мы управляем дискретными поверхностями, которые могут состоять из тысяч полигонов. Кроме того, мы рассматриваем общую ситуацию, где нельзя сделать каких-либо предположений о близости областей. И последнее, мы должны эффективно определять самостолкновения внутри поверхности. Это не позволяет использовать стандартные алгоритмы ограничивающего прямоугольника, потому что потенциально сталкивающиеся области поверхности всегда касаются друг друга, являясь смежными.
Для решения этой проблемы в нашей системе реализован эффективный алгоритм, основанный на иерархическом упорядочении и используемый априорные сведения о близости. Комбинируя их с данными о кривизне поверхности, алгоритм пропускает большие области, в которых нет самостолкновений. На рис. 10 приведен пример кадра из анимационной последовательности.
Рис. 10. Анимация одежды
Моделирование волос, их анимация и рендеринг
Из всей области моделирования человека волосы представляют одну из наиболее сложных проблем. Трудности, связанные с обработкой волос, происходят от большого числа геометрических деталей, сложного взаимодействия света и тени в волосах, малой ширины отдельного волоса в сравнении с изображением в целом. Существуют 4 основные проблемы, которые необходимо решить, чтобы получить волосатого синтетического актера:
1) моделирование и создание волос,
2) движение волос,
3) детектирование столкновений,
4) рендеринг волос.
Моделирование волос
Целью модельера волос является изготовление файла сегментов волос для модуля анимации. Для создания прически используется интерактивная программа. Во-первых, создается криволинейный цилиндр, составленный из прямых цилиндрических сегментов, которые поточечно соединены. Точки, лежащие на стыках, можно перемещать в пространстве, убирать или добавлять. Каждой треугольной ячейке черепа можно приписать только один тип отдельного волоса. Один и тот же волос может быть приписан разным треугольникам. Чтобы выбрать нужную ориентацию волоса на кривой поверхности черепа, направление волоса можно менять путем вращения вокруг нормали треугольника.
После определения требующихся форматов волос и отнесения их к соответствующим треугольникам, можно определить прическу окончательно. Одна и та же прическа может быть разной длины и для того, чтобы выбрать нужную, можно удлинять или укорачивать волосы путем задания масштабного множителя. Обычно прическа имеет 100 - 150 тыс. волос, но при моделировании их плотность можно регулировать либо для отдельных треугольников, либо для всей головы. Вначале все волосы, помещенные в треугольник, имеют одну и ту же длину, ориентацию и расположены симметрично. Чтобы прическа выглядела более естественно, все эти параметры можно интерактивно изменить. Кроме того, на множестве волос в треугольнике можно определить случайное распределение длин, ориентаций и позиций. Поддерживается база данных с информацией, которая параметризует рост волос в каждом полигоне.
Анимация волос
Чтобы получить естественную анимацию волос, должно применяться физическое моделирование. Однако, точное моделирование, учитывающее столкновения, практически невозможно из-за большого числа отдельных волос. Курихара [10] предложил упрощенный метод учета столкновений, который и был реализован.
Рендеринг волос
Рендеринг волос в нашей системе включает несколько этапов:
- создание базы данных сегментов волос;
- создание буферов теней от всех источников света;
- рендеринг объекта без волос с использованием буферов теней;
- наложение волос на "лысую" поверхность.
В модуле рендеринга прически производится пошаговая обработка. Первоначально вычисляется тень сцены для каждого источника света i, и для тех же источников - тени прически. Тень прически вычисляется по поверхности объекта индивидуально по каждому волоску. Наконец, прическа включается в сцену с использованием всех буферов теней. В результате получается изображение с объемной реалистичной прической, на которой хорошо видно взаимодействие теней и световые эффекты. Более детально конвейер рендеринга можно описать следующим образом.
- Берется описание модели сцены и строятся проекции отдельно для каждого источника света. Каждый источник порождает отдельный буфер теней сцены.
- Берется модель волос и строится ее проекция отдельно для каждого источника света. Каждая проекция записывается в свой буфер тени. Это реализуется прорисовкой каждого сегмента волос в Z-буфер кадра и извлечением из него результирующей карты глубины.
- Производится наложение буфера теней сцены и буфера теней прически, в результате чего получается один составной теневой буфер для каждого источника света.
- Генерируется изображение сцены и ее Z-буфер, используя описание модели сцены и составные теневые буферы, как вход для рендеринга. В результате получается полный рендеринг сцены с тенями волос, но в нем отсутствуют сами волосы.
Сегменты волос включаются в изображение сцены путем использования ее Z-буфера сцены для определения видимости и составных буферов теней с целью определения закраски, давая окончательное изображение с волосами и полностью рассчитанными тенями. В этом процессе смешивания каждая прядь модели волос разбивается на отрезки. Интенсивность H каждой конечной точки отрезка задается уравнением. На рис. 11 приведен пример прически синтетической актрисы.
Рис. 11. Синтетическая актриса с прической
Литература
1. Magnenat-Thalmann N and Thalmann D, "Complex Models for Visualizing Synthetic Actors", IEEE Computer Graphics and Applications, September (1991).
2. Paouri A,Magnenat-Thalmann N and Thalmann D, Creating Realistic Three-Dimensional Human Shape Characters for Computer-Generated Films, Proc. Computer Animation "91, (1991), Springer-Verlag, Tokyo, pp.89-100.
3. Boulic R, Thalmann D, Combined Direct and Inverse Kinematic Control for Articulated Figures Motion Editing, Computer Graphics Forum, Vol.2, No.4, October 1992, pp.189-202.
4. Boulic R, Magnenat-Thalmann N and Thalmann D, A Global Human Walking Model with real time Kinematic Personification, The Visual Computer, Vol.6, No. 6,1990, pp.344-358.
5. Mas S.R., Thalmann D, A Hand Control and Automatic Grasping System for Synthetic Actors, Proc. Eurographic "94, 1994, pp.167-178.
6. Jianhua S, Thalmann D, "Interactive Shape Design Using Metaballs and Splines", Implicit Surface "95, Eurographics Workshop on Implicit Surfaces, Grenoble, France, 1995.
7. Kalra P, Mangili A, Magnenat-Thalmann N and Thalmann D, Simulation of Facial Muscle Actions Based on Rational Free Form Deformations, Proc. Eurographics "92, 1992, Cambridge, pp. 59- 69.
8. Renault O, Magnenat-Thalmann N and Thalmann D, "A Vision-based Approach to Behavioural Animation", The Journal of Visualization and Computer Animation, Vol.1, No.1, 1990, pp. 18-21.
9. Pandzic I, Capin T, Magnenat-Thalmann N, Thalmann D, "VLNET: A Networked Multimedia 3D Environment with Virtual Humans", Proc. Multi-Media Modeling MMM "95, 1995, World Scientific, Singapore.
10. Kurihara T, Anjyo K, Thalmann D, "Hair Animation with Collision Detection", in: Models and Techniques in Computer Animation, 1993, Springer-Verlag, Tokyo, pp.128-138.
Надя M. Тальман (thalmann@cui.unige.ch) — MIRALab, University of Geneva, Даниэль Тальман (thalmann@lig.di.epfl.ch) — Swiss Federal Institute of Technology (EPFL).