agio: как сделать производственный конвейер для CG-художников в облаке
Стартап agio создал облачную платформу для производства компьютерной графики (CG, Computer Graphics). Она помогает снизить до нуля капитальные затраты CG-студий и автоматизирует рутинные задачи. Как разработать такую платформу в облаке — рассказал CEO agio Антон Гридчин.
CG-художники создают изображения с помощью компьютера. Так появились Дейви Джонс в «Пиратах Карибского моря», Джа-Джа Бинкс в «Звёздных войнах» и многие другие персонажи. Создание таких героев и других спецэффектов связано с длинным и сложным производственным процессом, требует передачи данных между художниками разных специализаций и потребляет много вычислительных ресурсов, которые не всегда доступны творческим командам.
Мы в agio упростили эти задачи, разработав платформу для создания CG-студии в облаке. Для этого использовали вычислительные ресурсы Yandex Cloud, собственные и Open Source разработки для CG-производства и упаковали их в интерфейс, который привычен и понятен художникам. Наша платформа позволяет студиям легко и быстро масштабировать команду и вычислительные мощности, а маленьким проектам — организовать работу технологично и сконцентрироваться на творчестве.
Зачем творческим людям облака
Я и мой бизнес-партнёр, технический директор agio Илья Обухов, имея за плечами многолетний опыт в индустрии CG, хорошо знаем, как творческое развитие студии начинает спотыкаться о рутину и неразбериху. Всё потому, что нет производственного конвейера, который позволил бы эффективно и красиво творить.
Создание визуальных эффектов — это сложный процесс, в котором задействованы разные специалисты: аниматоры, художники, моделлеры (создают форму 3D-модели), риггеры (готовят 3D-модели к анимации), композеры (отвечают за финальную картинку) и другие. Чтобы дать больше времени на творческую проработку эффекта, нужна автоматизация. Система должна самостоятельно передавать результаты дальше по цепочке, как только человек закончит работу на своём этапе.
Предположим, что нужно создать монстра для фильма ужасов. Первым к работе приступает концепт-художник. Он рисует скетчи, прорабатывает характер и готовит эскизы, которые дальше передаются моделлеру. Далее моделлер создаёт 3D-геометрию — скульптуру в виртуальном пространстве.
Процесс создания 3D-модели в приложении ZBrush
Как только готова геометрия монстра, она одновременно поступает на два последующих этапа. Один из них — текстуринг и шейдинг — проработка материалов, из которых сделан персонаж. Например, если он одет в синий свитер, то ткань должна быть не просто синей, но и обладать вязаной фактурой и отражающими способностями настоящего свитера. На другом этапе готовят анимацию: наш монстр должен реалистично и угрожающе двигаться в кадре фильма.
Когда анимированный и одетый монстр готов, он попадает в отдел лайтинга. Это трёхмерная сцена, на которой специалисты по освещению ставят свет и добиваются правильной картинки в реальном окружении. Процесс очень напоминает работу кинооператора на съёмочной площадке. После этого сцена отправляется на просчёт в вычислительный кластер. В результате вычислений рождается последовательность изображений, разделённая на слои. На них находятся представления одной и той же сцены в разных деталях: цвет, блики, тени и так далее. Но это ещё не конец.
Полученные слои отправляются на стадию композитинга, где монстра объединяют со съёмочным материалом, добиваясь полной реалистичности. Каждая сцена фильма проходит этап сведения по цвету — цветокоррекции, чтобы готовый фильм выглядел целостно и так, как его задумали режиссёр и художник-постановщик.
Сервис agio.desktop и 3D-сцена освещения
Проблема в том, что все этапы сопровождаются рутиной: сохранение результатов в правильном формате, отслеживание нейминга и места хранения, передача файлов от одного человека к другому. Всё это нарушает креативный процесс и сбивает творческую концентрацию. Тут и помогает автоматизация. Система следит за названиями файлов, передаёт данные из рук в руки и оповещает людей, если нужен их комментарий. CG-специалистам остаётся только заниматься любимым делом — творить.
Что предлагает agio
Наш продукт рассчитан на команды разного масштаба. Фрилансерам и маленьким коллективам agio предоставляет доступ к облачным вычислениям и мощным рабочим станциям. Средним студиям agio помогает быстро масштабироваться и оперативно подключать дополнительные технические ресурсы. А крупные компании могут найти на платформе исполнителей и получать предсказуемый результат при работе с субподрядчиками — ими могут стать те самые небольшие команды, которые уже работают с платформой.
Сейчас agio находится на стадии MVP, но несмотря на это несколько команд уже полноценно используют в работе наш сервис. Их коллективы в основном разбросаны по разными странам, у них нет собственных мощностей для рендеринга и хранения данных. С помощью agio эти компании хранят свои проекты в облаке и получают к ним доступ в любое время и в любом месте, а также эффективно обмениваются результатами и просчитывают сложные эффекты за короткое время.
Ещё мы предоставляем дополнительные мощности, когда компании не хватает собственных ресурсов. Например, при необходимости просчитать (отправить на рендеринг) большую часть проекта накануне дедлайна. Это востребованная услуга, так как к концу крупных проектов почти всегда накапливаются ошибки и недоработки и интенсивность рендеринга возрастает в несколько раз. В такие моменты своих мощностей не хватает даже у крупнейших студий, поскольку ни одно производство не владеет ресурсами, кратно превосходящими обычную рабочую нагрузку.
agio в Yandex Cloud
Мы создали свой продукт в Yandex Cloud с нуля за восемь месяцев. Задача платформы — предоставлять CG-художникам облачные технические ресурсы и сервисы автоматизации, готовые к использованию. Нам предстояло перенести весь наш опыт технической организации on-premise-студии в облачную инфраструктуру.
В течение трёх месяцев Илья проводил исследование, чтобы понять, достаточно ли возможностей Yandex Cloud, как лучше размещать свои сервисы и какие использовать инструменты. В Yandex Cloud есть все основные функции, необходимые для облачного провайдера:
- детально конфигурируемые виртуальные машины для вычислений;
- API и SDK для менеджмента виртуальных машин;
- S3-совместимое хранилище для хранения больших объёмов клиентских данных.
Некоторые студии сотрудничают с облачными провайдерами напрямую, так как в целом несложно поднять несколько виртуальных машин и запустить на них рендеринг. Но мы не просто даём мощности для ренденринга, а предлагаем удобно выстроенный процесс для работы над проектом.
Одна из задач заключалась в том, чтобы изолировать друг от друга команды разных компаний, которые используют ресурсы параллельно. Данные проектов должны быть максимально защищены от распространения. Для этого мы в числе прочего написали собственный модуль управления запуском виртуальных машин. Он решает проблему изоляции, а ещё эффективно использует ресурсы, немедленно выключая узлы, если для них нет вычислительной работы. Это заметно сокращает затраты клиентов.
Сейчас мы используем Yandex Cloud для всех наших задач:
- Yandex Object Storage — основное хранилище данных клиентов;
- Yandex Managed Service for Redis™ — для хранения метаданных;
- Yandex Managed Service for GitLab — для разработки;
- Managed Service for PostgreSQL — база данных общего назначения;
- Managed Service for Kubernetes® — здесь развернуты все сервисы, которые составляют платформу agio;
- Yandex Cloud Functions — запускает сервисы, которые обрабатывают события и метрики вычислительного кластера;
- Managed Service for Apache Kafka® — для обмена событиями между сервисами платформы.
Архитектура сервиса для рендеринга agio.farm
Планы на будущее
Мы будем расширять клиентскую базу в России. Главная задача в этом направлении — дать молодым командам технологические возможности лидеров индустрии, когда все элементы производства собраны в одном месте: вычислительные мощности, настроенное взаимодействие, минимум ошибок координации, автоматический обмен данными. И всё это на базе облачных ресурсов, что снижает капитальные затраты клиентов до нуля.
Мы также хотим привлечь студии, которые уже активно используют облачные ресурсы, показав им комплексный подход в рамках платформы agio.
Ещё планируем развиваться на рынке Юго-Восточной Азии. Там большой спрос на подобные технологии, и мы можем предложить более выгодное решение в сравнении с западными облачными гигантами. Для этого мы хотим предоставлять вычислительные ресурсы в новых регионах и подключать к нашей платформе развивающихся облачных провайдеров.