Pull to refresh

Sintel: о технологичности искусства

Reading time6 min
Views8.5K
Вот и прошёл 2011 год… Впереди новый год — год Дракона. Традиционно важный и успешный год, год сражений и побед. Предыдущий год прошёл в типичной обстановке патентных волнений, перестроений кодовых баз множества продуктов и постоянном развитии технологий. И всё же статья о другом. Рассказ пойдёт о девушке по имени Синтел и драконе из короткометражного фильма Sintel, выпущенного Blender Foundation уже больше года назад, но ставшего огромным стимулом в развитии 3D-редактора Blender на весь 2011 год. Безусловно, эта статья была бы хороша и год назад, но лучше поздно, чем никогда.

Дьявол скрывается в мелочах. В рамках информатики нет такого проекта, в котором удалось бы обойтись от перехода к упрощённой модели, не соответствующей реальному миру. Пример — освещение, волосы, ткани и множество других вещей. Поэтому будет много кликабельных изображений (осторожно, трафик!). Все модели и сцены из фильма распространяются по лицензии CC-BY 3.0 и доступны в виде архивов svn проекта.

Итак, приступим.


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


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



При просмотре старых версий этого места нас ждёт сюрприз: там три охранника вместо одного.



Вот они: слева-направо — Smith, Lao Tseu и Dark. Кроме того, планировался ещё один охранник внутри города. Четыре модели с полным риггингом и лицевыми эмоциями, но окончательный кастинг проходит только Lao Tseu.



Назад к сюжету. Теряя сознание, она замечает неподалёку юрту и, из последних сил сделав несколько шагов, падает навзничь…

Новая сцена. Синтел просыпается от голоса хозяина юрты — шамана, который спас и приютил её.

(изображение разрешением 4096x1744).

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

Немного о модели Синтел. Это крайне сложная модель с большой сеткой и огромными текстурами, использовать её на Core2 + 4гб RAM практически невозможно, поэтому я опишу модель Sintel Lite (ссылка на модель). В ней около 800 000 полигонов. В момент создания модели моделировщики несколько раз меняли метод создания волос. Есть традиционный вид волос в виде полигонов с текстурой волос. Этот метод активно используется в игровой индустрии, но даже с учётом возможности анимации с помощью физики мягких тел, результат получается не очень реалистичным. Гораздо лучше получается результат в ходе использования специальных алгоритмов. Однако на то время симулятор волос находился в нестабильном состоянии. В ходе создания симулятор был стабилизирован и в итоге мы наблюдаем волосы из частиц. В полном варианте используется 25 тысяч волос (для сравнения: у среднего человека их около 100 тысяч). Траектория движения определяется для каждой сотни волос, вследствие чего наблюдаются пряди параллельно идущих волос. Физика волос в Sintel не используется, на каждой сцене Синтел причёсана вручную. А так выглядит модель Sintel Lite до и после рендера:





Повествование Синтел возвращает нас в её родной город, в день, когда она встретила дракончика. Синтел ищет еду, держит в руках 250000-полигональный плод дуриана.



Вокруг активно летают мошки. И лишь в ультравысоком разрешении можно заметить, что среди мошек летает ещё одна крошечная голова Сюзанны. Но вот внимание Синтел привлекает звук с крыши.


На что здесь стоит обратить внимание? Правильно, на фон, размытый эффектом глубины резкости. За этим эффектом скрывается ещё одна низкополигональная модель Сюзанны.

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

Новая сцена, показывающая уход ночи и приход рассвета.


Новый день в городе. Дракончик Scales бегает/летает по городу, что позволяет разглядеть много мелких деталей. Во-первых, это жители. Сразу в глаза бросается Брук, главный герой Elephants Dream. Пруг пришёл из 2005 года, поэтому он лысый и даже без бровей, благодаря чему в нём всего лишь 238000 полигонов. И ещё 12 подобных случайных персонажей.



Кому нужно солнечное освещение? Сцену с городом освещают 40 направленных источников.



Дракончик бежит за курицей, Синтел бежит за дракончиком. На развороте Синтел рассыпает корзину с фруктами по 10000 полигонов в каждом. Город забросан высокополигональным мусором ещё более высокополигональными статуями.

Неудивительно, что нашлись люди, которые на фоне всех случайных совпадений увидели в небе силуэт Big Buck Bunny.



Новая сцена — храм города Иштар на горе. Вокруг неё не очень случайным образом расположены дома.



Вот так оно выглядит без птичек и постобработки:


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

Вот тот же храм с постобработкой:


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

Модель детёныша дракона в момент анимации (до применения скульптинга) около 8 тысяч полигонов (видео модели). Это достаточно немного, так как у него нет шерсти, волос или частиц. Зато после применения 4-х уровней скульптинга получается 8178*4^4 — больше 2 миллионов микрополигонов.



Черновой вид с шейдерами GLSL и картой нормалей вместо скульптинга:


Не в пример больше полигонов у взрослого дракона, который появляется на той же сцене (видео модели). Если учесть четырёхуровневый скульптинг (скульптинг головы, сжатый до 6 минут), получается 5 миллионов полигонов. Ниже будет рендер лица с высоким разрешением. А так выглядит взрослый дракон в позе привязки:


Итак, во время очередной прогулки Scales был захвачен взрослым драконом. Синтел покидает стены города, пробирается по джунглям (рендер в разрешении 4k):


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


Идёт по пустыне (изображение снова 4k, а вот blend-файл). Эффект засвечивания от солнца (flare, нет на кадре). На момент создания фильма в Blender не было функционала Dynamic Paint, поэтому заранее нарисованные следы на песке проявляются с помощью масок. С выходом версии 2.6 такой эффект можно получить намного проще.


Идёт по снежным просторам. Здесь лучше всего виден эффект виньетирования: затемнения изображения по краям кадра для привлечения внимания зрителя к месту действий. Также виден искусственный для 3D-графики фотооптический шум. Впрочем, эти два элемента используются во всём фильме.


История приходит к началу, в котором на Синтел сидит в хижине шамана и рассказывает ему эту историю. Лицо Синтел крупным планом:


В отражении то же лицо, но израненное и постаревшее:


Выслушав рассказ, шаман указывает Синтел, где находится цель её поисков. Наконец она находит пещеру. Пещера, подобно снежной равнине выполнена методом скульптинга. У входа в пещеру — дерево, изображённое на рукоятке оружия хранителя. Это же дерево — логотип проекта Sintel.


Шестиугольные объекты — результат эффекта Боке — симуляции диафрагмы объектива с шестью лепестками.


Взрослый дракон поедает коровью тушу. В низкополигональной модели коровы 1230 граней. После применения пяти уровней скульптинга в модели около 1.2 миллионов граней. И всё это (как и у большинства других объектов) под тремя текстурами 4096x4096: цвет, блики и bump-карта.


Дракон-детёныш не признаёт Синтел, после чего взрослый дракон обнаруживает и нападает на неё. Симулятор частиц и дыма во всей красе:


Скульптинг на голове дракона в разрешении 4k:


В ходе схватки дракон сбивает Синтел с ног, но вместо того чтобы убить её, он колеблется, а она, пользуясь моментом, поражает дракона смертельным ударом копья — и только тогда видит знакомый шрам и понимает, что её маленький Scales вырос и именно его она только что убила… Глядя на своё отражение в луже крови, она осознает, что не только дракон сильно изменился — в поисках друга прошло слишком много времени.

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



Здесь и заканчивается история, описываемая в сюжете. Однако эти 15 минут стали огромным толчком в развитии и мотивом к стабилизации ветки 2.5 редактора Blender. Уже сегодня можно скачать версию 2.61 с новым движком фотореалистичного рендера на GPU Cycles, системой 3d-трекинга, симулятором океана и динамическим рисованием.

В планах у Blender Foundation ещё один короткометражный фильм под кодовым названием Mango. Что мы в нём увидим? 2012 год покажет!
Tags:
Hubs:
+111
Comments29

Articles

Change theme settings