Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!
![](https://habrastorage.org/r/w780q1/webt/pa/ju/qc/pajuqcaqnaxkkdwibem3wwcnc7q.jpeg)
Визуальные эффекты и анимация становятся всё более сложными, а вместе с ними растут и требования к вычислительным ресурсам. И художникам и графическим дизайнерам не помешает новый полезный инструмент. Тем более с открытым исходным кодом. DreamWorks Animation объявила о намерении выпустить свой собственный производственный рендерер MoonRay в качестве open source ПО к концу 2022 года.
Moonray — это программное обеспечение для рендеринга, которое Dreamworks использовала в таких фильмах, как «Как приручить дракона: Скрытый мир», «Семейка Крудс: Новый век», «Плохие парни» и грядущем «Кот в сапогах: Последнее желание». Moonray был разработан собственными силами инженеров Dreamworks и будет поставляться с обширной библиотекой проверенных на производстве инструментариев, Hydra Render Delegate, а также рендерингом на нескольких машинах и в облаке через Arras. Moonray может отображать изображения по всему спектру от гиперстилизованных до фотореалистичных.
Смогут ли художники делать качественные визуальные эффекты наравне с профессионалами DreamWorks, ещё предстоит выяснить.
Работа мечты
DreamWorks Animation (DWA), подразделение Universal Filmed Entertainment Group, входящее в состав NBC Universal, дочерняя компания Comcast Corporation, является мировой корпорацией, занимающейся семейными развлечениями, художественными фильмами и телевизионными сериалами. Портфель интеллектуальной собственности компании поддерживается также продажей потребительских товаров, которая включает лицензирование развлекательных центров по всему миру. Наследие художественных фильмов DWA включает многие из любимых (а может и нет, привет «Босс-молокосос») персонажей и франшиз, в том числе «Шрек», «Мадагаскар», «Кунг-фу Панда», «Как приручить дракона», «Дух», «Тролли» и другие. Компания собрала более 15 миллиардов долларов мировых кассовых сборов и транслирует в более чем 190 стран оригинальный контент через стриминговые сервисы.
![](https://habrastorage.org/r/w780q1/webt/8t/ja/_f/8tja_fe1evsqnbsbryflumctriq.jpeg)
В последние годы DreamWorks открыла исходный код некоторых своих технологий, и теперь её анимационное подразделение тоже готовится сделать больше инструментов бесплатными. DreamWorks Animation заявила, что выпустит свой модуль рендеринга с трассировкой лучей. С самого начала MoonRay был разработан, чтобы сосредоточиться на эффективности и масштабируемости. Рендерер полностью написан с нуля, у него нет предшествующего устаревшего кода, поэтому пользователи не увязнут в некачественном программировании из тех времён, когда Windows 95 был правящим королем операционных систем. 100 % трассировка лучей, никаких предварительных проходов. Он прост в использовании и предоставляет художникам очень быстрые итерации. Он интегрирован в широкий спектр инструментов, такие как Maya, Katana, собственные инструменты освещения и MotionBuilder. Moonray предоставляется клиентам как услуга через внутреннюю облачную структуру Arras. Это не только упрощает интеграцию приложений, но также позволяет Moonray преимущество массивного распределенного рендеринга в машинном масштабе.
Высокопроизводительные функции MoonRay включают поддержку распределённого рендеринга, режим XPU с сопоставлением пикселей, который обеспечивает повышенную производительность за счёт обработки пучков лучей на ЦП и ГП, обработку лучей с помощью Intel Embree, векторизацию шейдеров с использованием компиляции Intel ISPC и связанную трассировку пути. MoonRay включает Hydra Render Delegate для интеграции в инструменты создания контента, поддерживающие стандарт.
IPSC и Arras
IPSC (Intel SPMD Program Compiler) это компилятор, который обеспечивает очень высокую производительность ЦП благодаря эффективному использованию как нескольких процессорных ядер, так и векторных модулей SIMD. IPSC опирается на языки программирования графических процессоров, которые показали, что для многих приложений самый простой способ программирования блоков SIMD — это использование модели с одной программой и несколькими данными (SPMD), в которой каждый экземпляр программы отображается на одну дорожку SIMD.
Такие функции MoonRay, как рендеринг волос и меха, были разработаны в сотрудничестве с Intel. Полученные улучшения являются частью библиотеки ядра трассировки лучей Intel Embree и показывают, как использование открытого программного обеспечения приносит пользу всей экосистеме. Используя Intel ISPC, MoonRay предлагает векторный параллелизм инструкций для значительного повышения производительности.
![](https://habrastorage.org/r/w1560/webt/qk/n3/ec/qkn3ecfugsqfmxv2due1jnpvnym.png)
Пример кода IPSC
Moonray использует платформу распределенных вычислений Arras от Dreamworks, включённую в базу кода с открытым исходным кодом, для обеспечения поддержки нескольких компьютеров и нескольких контекстов. Рендеринг на нескольких машинах ускоряет интерактивное отображение для аниматора. При использовании MoonRay и Arras в многоконтекстном режиме, аниматор может визуализировать несколько условий освещения, различные свойства материала, несколько раз в кадре или последовательности, или даже несколько мест в окружающей среде одновременно.
![](https://habrastorage.org/r/w1560/webt/my/ed/uy/myeduyzlyapm87g7krhnfwpckzg.png)
Пример 9,5-кратного улучшения производительности. В обоих окнах художник использует простую клиентскую программу Arras под названием «arras_gui». Эта программа позволяет художнику манипулировать видом камеры и запрашивать результаты рендеринга с фиксированной частотой кадров (в данном случае 24 кадра в секунду). Обе программы производят точно такую же частоту кадров. Буфер кадра снэпшотируется каждые 24 секунды в обоих случаях. Слева художник подключен к сеансу Arras с двумя машинами, справа сессия из 19 машин. Обе сессии содержат идентичные 32 ядра машины.
Хотя DreamWorks и раньше делала общедоступными отдельные собственные технологии — в 2012 году она открыла исходный код для формата разрежённых объёмных данных OpenVDB — MoonRay — технология другого масштаба. MoonRay, разработанный для замены Moonlight, старого средства визуализации растеризации студии — представляет собой высокопроизводительный трассировщик лучей Monte-Carlo. Он был разработан с целью «постоянно загружать все векторные линии всех ядер всех машин» и имеет гибридный режим рендеринга GPU/CPU, обеспечивающий «100 % совпадение вывода» с рендерингом CPU.
Помимо стилизованной под торговую марку DreamWorks анимации, MoonRay способен к фотореалистичному выводу и обладает ключевыми функциями, которые ожидают от средства визуализации VFX, включая AOV/LPE, глубокий вывод и Cryptomatte. Он также должен хорошо работать в стандартном производственном конвейере, а также со своими собственными инструментами освещения.
Платформа Arras распределяет интерактивный и многоконтекстный рендеринг окончательного качества. Наряду с основным модулем рендеринга DreamWorks предоставляет Arras, свою распределённую вычислительную среду с открытым исходным кодом. Помимо вывода с окончательным качеством, его можно использовать для ускорения интерактивного рендеринга и для «многоконтекстного рендеринга» во время разработки внешнего вида, визуализации нескольких вариантов освещения или материалов в кадрах и последовательностях.
![](https://habrastorage.org/r/w1560/webt/bz/zh/ct/bzzhctare6mylu5gq10f162vhq4.png)
![](https://habrastorage.org/r/w1560/webt/nn/ys/th/nnysthquaw21mypmfrkgknln3be.png)
Пример рендеринга улицы из мультфильма «Тролли»
После того, как MoonRay станет проприетарным производственным рендерером, он будет выпущен под лицензией Apache 2.0. Поэтому это имеет большое значение для всех креативщиков. Загрузки будут доступны на новом веб-сайте OpenMoonRay и в репозитории DreamWorks на GitHub. Онлайн-документация, включая системные требования, «скоро появится». Стремление открыть средство рендеринга MoonRay для всех без исключения креативщиков — это веха, которой не было с тех пор, как Epic выпустила Unreal Engine для масс.
MCRT расшифровывается как трассировка лучей Monte-Carlo. Он получен из набора экспериментов, которые представляют собой «широкий класс вычислительных алгоритмов, основанных на повторной случайной выборке для получения числовых результатов». Они используются во всем, от науки и права до инженерии и компьютерной графики.
Трассировка лучей — это метод Монте-Карло компьютерной графики для визуализации изображений трёхмерных сцен таким образом, чтобы глобальное освещение соответствовало реальности. По сути, алгоритм интегрируется по всей освещённости, поступающей в одну точку на поверхности объекта. Затем эта освещённость уменьшается с помощью функции отражения поверхности (BRDF), чтобы определить, какая её часть будет направлена на камеру точки обзора. Эта процедура интегрирования повторяется для каждого пикселя выходного изображения. В сочетании с физически точными моделями поверхностей, точными моделями реальных источников света (лампочки) и оптически правильными камерами трассировка лучей может создавать неподвижные изображения, неотличимые от фотографий.
![](https://habrastorage.org/r/w1560/webt/ut/qg/05/utqg05nuiudzufwczsfosxlag3i.png)
Векторизация трассировки путей
Трассировка лучей естественным образом имитирует множество эффектов, которые должны быть специально добавлены к другим методам (традиционная трассировка лучей или рендеринг построчной развёртки), например, мягкие тени, глубина резкости, размытие в движении, каустика, окружающее затенение и непрямое освещение. Реализация рендерера, включающего эти эффекты, соответственно проще. Расширенная версия алгоритма реализована путем объёмной трассировки пути, которая учитывает рассеяние света в сцене. Благодаря своей точности, беспристрастности и простоте алгоритма трассировка пути используется для создания эталонных изображений при тестировании качества других алгоритмов рендеринга.
В компьютерной графике эти алгоритмы визуализируют сцены, случайным образом отслеживая образцы возможных световых путей. Это немного сложнее, но достаточно сказать, что это один из самых физически точных способов переделки 3D-графики. И это будет бесплатно. Это все равно, что получить возможность использовать RenderMan от Pixar для всего, что можно делать в домашних условиях.
То, что MoonRay будет частью ландшафта с открытым исходным кодом, означает, что любой креативщик может копаться в его кодовой базе (немного как Blender) и развивать её в соответствии со своими потребностями. DreamWorks не просто выпускает своё детище на волю. Любые заинтересованные могут отправить запрос на возможность раннего доступа к MoonRay или подписаться на обновления. С сообществом творческих людей, готовых помочь ему расти, MoonRay может стать чем-то намного большим, чем ещё один рендер. Так что, моделирование проекта, текстурирование, настройка, освещение и создание окончательной анимации поднимется на новый уровень.
![](https://habrastorage.org/r/w780q1/webt/oi/ld/yb/oildybx9qid7umy5av1hkabch2w.jpeg)
![](https://habrastorage.org/r/w1560/webt/co/e2/kh/coe2kha8u8_pypip-2k3wk3ppa0.png)