Оригинал статьи: https://www.fxguide.com/featured/the-tech-of-pixar-part-1-piper-daring-to-be-different/

Трейлер вы можете увидеть здесь:

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

piper-08

Пайпер рассказывает историю о смелой птичке, которая сталкивается с тяжелой проблемой, но пытается решить её творчески, как бы проводя параллели с работой команды разработчиков, с теми решениями, которые им приходится принимать.

piper-02a

Изначально, идея пришла из отдела разработки инструментов Pixar-а, который отвечает за создание передовых технологий, используемых во всех фильмах студии Pixar. Пайпер была единственной короткометражкой, которая начиналась создаваться в REYES (старый рендер движок) и перешла в RIS (новый рендер двидок). Начиналось всё с использования стандартных методов освещения и шейдинга с использованием карт смещения, карт теней, облака точек для глобального освещения и подповерхностного рассеивания, но когда они получили RIS, всё изменилось. «Наши первоначальные результаты с использованием RIS были многообещающими, персонажи и их окружение выглядели интегрированными, как будто они находятся в одном и том же мире,» сказал Эрик Смитт, TD по освещению в Пайпер. «Нам больше не нужно было создавать отдельную схему освещения для каждого персонажа, чтобы добиться их сплоченности в кадре, и это сильно упрощает задачу для создания финального изображения».

piper-sand-01-viewportHoudini Viewport

piper-sand-01-render

Final image

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

piper-06

Каждая сцена в Пайпер состоит из миллионов песчинок. Песчинка в свою очередь – это 5 000 полигонов. Не использовался ни бамп, ни смещение (дисплейсмент), только зерна, которые процедурно генерировались в Гудини. Дисплейсмент был первым методом для создания песка, но после многих тестов, требуемая детализация карты, которая использовалась при рендере с близкого расстояния, была примерно в 36 раз больше, чем стандартное разрешение карты, используемое в производстве. И это сделало использование карт смещения неэффективным.

Each sand grain was modeled like the real thing

Each sand grain was modeled like the real thing

Песчаные дюны были созданы в Mudbox и, полученный в результате смещения меш, управлял генерацией песка в Гудини с использованием модели Poisson Distribution. Полученные песчинки были смоделированы в Гудини (grain solver), который создавал тонкий слой песка на верхней части сетки. Результат создавался с учетом техник отсечения, включая усечение от камеры, углов наклона и расстояния, создавая вариацию песка разной плотности для достижения максимальной правдоподобности.

Poisson Distribution

Poisson Distribution

Разнообразие песка управлялось при помощи RenderMan Primvars для настроек разных вариантов шейдинга и перехода с «мокрого» состояния песка в «сухое», что давало команде шейдинга много возможностей по контролю, используя всего 12 песчинок. Зерна были разбросаны при помощи облака точек и geo instancing (клонирование меша). Оба варианта создавались посредством USD (Universal Scene Description), разработанного в Pixar, сейчас находящимся в опен-сорс (открытый код) формате, позволяет работать в очень сложных сценах.

piper-sand-zones

 

«Рендер такого количества данных был большой проблемой, но мы успешно использовали instancing и в некоторых сценах доходили до глубины луча (ray depth) 128, что было бы просто невозможным при старой технологии,» говорит Бретт Левин. Это делает рендер невероятно реалистичным, но традиционно – очень ресурсоемким. RIS был в состоянии справится с этими огромными вычислительными потребностями. «Мы смогли попробовать новые, разнообразные способы решения проблем физическим методом, полагаясь на технологи трассировки пути RenderMan (RenderMan’s pathtracing technology), который мы никогда не использовали до RIS.»

The sand's natural luminance was simulated by Light Transport

The sand’s natural luminance was simulated by Light Transport

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

Early Sand Look Dev CGI vs Photographic reference

Early Sand Look Dev CGI vs Photographic reference

Еще одной проблемой были полосы Маха (Mach bands). (ред. представляющий собой краевой контраст, возникающий при рассматривании двух равномерно окрашенных серых или цветных пятен, которые имеют разную яркость и разделены плавным переходом от одной яркости к другой. При этом субъективно воспринимается не плавный переход между пятнами, а иллюзорные полосы. Так, в области светлого пятна воспринимается еще более светлая полоса, а темного – еще более темная).

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

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

Sand wetness types

Sand wetness types

Также были созданы связывающие сети для песчинок, чтобы придать им липкости, который создавал небольшие ломтики при перемещении. После создания движка зерна (grain solver) в Гудини, команда была добавить эти небольшие различия по влажности, чтобы смоделировать поведение песчинок с разной влажностью.

piper-sand-tension-dry

Sand tension and clumping

Sand tension and clumping

Вода и пена создавалась при помощи FLIP solver в Гудини. Для коррекции таймингов, использовались простые волны, построенные на основе шейпов, с которых использовались дынные по кривой границы волны и направление движения. Далее строилась форма волны и настраивалась толщина на основе движения воды. С этой симуляции использовались точки для просчета FLIP симуляции низкого разрешения. И только потом полученный результат использовался для FLIP симуляции большого разрешения, используя скорости (velocities) от низкоуровневой симуляции. Иногда ретайм (изменение скорости движения) использовался для более художественного контроля.

Water Sim breakdown

Water Sim breakdown

Шейдинг пены был создан при помощи гибридного поверхностного шейдера volume/thin, который был просчитан с использованием более 100 отскоков луча. Это давало частицам пены нужную рефракцию (прозрачность), чтобы реалистично смотрелись водные пузыри. «RenderMan любит решать подобные задачи. Мы полагались исключительно на перемещение света, чтобы передать такой реализм пены и песка. RIS с такими сложными задачами справляется действительно хорошо,» сказал Эрик Смитт.

piper-foam-breakdown

Также было использовано несколько «внутренних» разработок компании для взаимодействия пузырьков, таких как GIN – система Pixar для создания полей в 3D, а также процедурные модели пены. Эти крошечные пузырьки были размещены на поверхности воды с использованием функции распределения. Плотность была основана на близости частиц друг к другу, и использовалась для создания эффекта «лопания» пузырьков и их притягивания.

GIN Bubble Breakdown

GIN Bubble Breakdown

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

Water tension and meniscus effect

Water tension and meniscus effect

В сочетании с процедурно генерируемым оттоком воды в Гудини, команда использовала волнистость как смещение на основе изображения (image based displacements) в Катане, добавляя тонкие штрихи к прекрасному пляжу.

Houdini to Katana: Water ripples

Houdini to Katana: Water ripples

В Пайпер использовались принципы макрофотографии и первоначально команда собиралась использовать глубину резкости в Нюке в паре с глубоким композитингом, но поняли, что RenderMan хорошо справляется с глубиной резкости (DOF) при рендере, и такой точности сложно добиться на постобработке. В некоторых сценах использовались комбинированные методы создания DOF, как с использованием проекции на USD геометрию, так и с добавлением экстра размытия при помощи глубоких изображений, создавая более стилизованный вид.

piper-07

Piper Was Heavily Influenced by Macro Photography

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

AOVs as Used in Piper

AOVs as Used in Piper

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

Comments

comments