USD: формат файлов для 3D, который вас поразит

В рубрике 3D, Open Source Отмечено , , , , , , ,
Сохранить и поделиться:

USD (Universal Scene Description, универсальное описание сцены) – это формат файлов, разработанный компанией Pixar для обмена 3D-сценами между различными приложениями для создания цифрового контента. Это расширяемый формат с открытым исходным кодом, который может хранить информацию о 3D-геометрии, шейдинге, освещении, физике и других областях, связанных с графикой. Он также позволяет компоновать и переопределять данные из нескольких источников, создавая единый граф сцены, который можно редактировать без необратимых изменений.

USD используется во многих отраслях, таких как дизайн, архитектура, анимация и игры, и поддерживается многими программными приложениями, такими как Blender, Cinema 4D, Houdini, Maya и SceneKit от Apple. USD также является основой 3D-графического конвейера Pixar и платформы Omniverse от Nvidia.

В спецификации Universal Scene Description (USD) используются несколько форматов файлов:

  • .usd – может быть в формате ASCII или в двоичной кодировке
  • .usda – кодировка ASCII
  • .usdc – двоичная кодировка
  • .usdz – файл-пакет, отформатированный как zip-архив без сжатия и шифрования. Может содержать файлы .usd, .usda, .usdc, .png, .jpeg, .m4a, .mp3 и .wav.

Blender (или любое другое 3D-программное обеспечение) облегчает вам жизнь, позволяя выполнять множество задач, используя только свой интерфейс, но как только вы начинаете вводить в свой пайплайн другое программное обеспечение, проблемы начинают возникать тут и там. Поэтому давайте поговорим о самых больших проблемах, с которыми вы, вероятно, уже сталкиваетесь сегодня, и о том, как Pixar создала решение, чтобы преодолеть их до бесконечности и дальше.

Видео о формате файлов USD от KaizenTutorials

Проблема

Если вы когда-либо текстурировали модель в Substance, импортировали свою работу в Unreal или пытались поделиться проектом с кем-то, кто работает в другом программном обеспечении, вы, вероятно, понимаете, насколько это может быть неприятно. Необходимость иметь дело с различными типами файлов, надлежащими процессами экспорта для каждого отдельного программного обеспечения и потеря драгоценных данных в процессе может заставить вас почувствовать, что вы намеренно бьетесь головой о стену.

И поверьте мне, когда я говорю, что это то, что испытывают все 3D-художники во всем мире – независимо от того, работаете ли вы в качестве самостоятельного создателя со своим собственным пользовательским пайплайном или в большой студии, такой как Pixar, где приходится соответствовать строгим ограничениям пайплайна, чтобы поддерживать надлежащий рабочий процесс для всех 1232 человек, работающих там. Проблема остается прежней.

Почему это происходит

В этом есть смысл, верно? Каждое программное обеспечение использует проприетарный тип файла, который подходит для его нужд. Так, например, файл из Blender был закодирован для работы в Blender, но не в Substance. Очевидно, что в компании каждому художнику требуется файл, совместимый с его собственным инструментом, чтобы упростить, а иногда даже сделать возможным продолжение работы над проектом.

Именно поэтому экспорт в более универсальный тип файла, такой как FBX или OBJ, является обязательным при переключении на другое программное обеспечение или передаче вашего проекта следующему человеку. Но даже эти типы файлов имеют множество ограничений, таких как невозможность правильного хранения симуляций, освещения и многих других аспектов ваших проектов Blender.

Представляем USD

Так в чем же решение этой проблемы? Universal Scene Description (USD), если кратко! Впервые опубликованный как программное обеспечение с открытым исходным кодом компанией Pixar в 2016 году в качестве их нового основного пайплайна, USD был в основном способом для их художников облегчить перемещение данных друг между другом и инструментами, которые они используют.

С момента своего выпуска USD постоянно претерпевает изменения и улучшения, что характерно для программного обеспечения с открытым исходным кодом, такого как Blender, который также постоянно обновляется и расширяется.

Что такое USD?

USD – это много чего, и если я углублюсь в это, то это может быть очень техническая и сложная вещь для описания. Но если сказать просто, USD – это способ заставить такие приложения, как Blender, Unreal, Houdini, Substance, Maya, Nvidia Omniverse и многие другие, разговаривать и понимать друг друга.

В компьютерной индустрии для этого есть даже модное слово – совместимость. Довольно сложно выговорить! Однако, каким бы модным это ни звучало, на самом деле это не так сложно, как вы думаете. Вы можете начать использовать его сегодня на своем собственном компьютере или даже с несколькими друзьями или коллегами по всему миру.

Чем USD отличается

Традиционно пайплайн – это очень однонаправленная вещь, где каждый человек может работать над чем-то только после того, как предыдущий человек закончил. Или для вас лично вы можете перейти к следующему шагу в процессе, например, к текстурированию, только если моделирование полностью завершено.

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

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

USD, однако, больше похож на Lego. Каждый блок представляет собой часть 3D-сцены – персонажей, объекты, окружение, что угодно – и вы можете собирать, разбирать и изменять эти блоки независимо.

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

Это недеструктивный подход, который позволяет экспериментировать и совместно работать без ущерба для ограничений пайплайна.

Цель USD

Цель всего этого с USD – создать способ свободного перемещения данных между приложениями, дать художникам и командам свободу сосредоточиться на создании, а не на экспорте и ожидании друг друга, чтобы иметь возможность продолжить работу. Художники не должны перезапускать работу, если команда концепт-художников решит что-то изменить позже. И не должно быть проблем с форматами файлов, поступающих из других программ, которые не работают в выбранном вами программном обеспечении.

На сервисном уровне USD кажется именно этим – высоко совместимым форматом файлов, которым можно легко обмениваться между различными программами. И, честно говоря, это то, чем он будет для большинства пользователей Blender, поскольку многие из нас склонны работать в одиночку. Но USD – это больше, чем просто тип файла…

Это способ собирать и организовывать любое количество ресурсов в виртуальные наборы, сцены, кадры и миры – используя их от приложения к приложению и неразрушающе редактируя их, часто в режиме реального времени.

Как работать с USD

Итак, давайте посмотрим, как мы можем работать с USD в рабочем процессе Blender. В своей самой простой форме USD был опцией экспорта в Blender, начиная с версии 3.6. Поэтому, если у вас есть файл, над которым вы работаете, и вы хотите сохранить его как файл USD, вы можете перейти в File > Export > Universal Scene Description, и откроется окно с предложением сохранить файл.

У него довольно много опций, но основные, на которые следует обратить внимание, это:

  • Selection Only – включит в экспорт только выбранные объекты
  • Animation and Hair – включает/исключает данные анимации и частиц волос для ваших объектов

Вот отличный пример того, как работает USD. Это файл из библиотеки образцов USD от Nvidia, который был создан в множестве программ, таких как 3ds Max и Substance. Если вы откроете его в Blender, импортировав его, он работает почти на 100% сразу!

Как видите, он содержит все данные, включая свет, глубину резкости, камеру, материалы и многое другое. Единственное, что не экспортируется должным образом, – это освещение HDRI, которое мы должны настроить самостоятельно. Но невероятно думать, что это выглядит почти идентично внутри рендерера Arnold 3DS Max, и просто было экспортировано в Blender и работает так же хорошо, используя один тип файла!

У него правильная иерархия, материалы и, в основном, все настроено. Это действительно очень круто! В любом случае, это показывает, как USD работает между различными приложениями и что он функционирует как совместимый формат файлов.

Практический пример USD

Но давайте рассмотрим более практический пример. Для этого примера конвейера я буду использовать типичный рабочий процесс использования Blender для моделирования объекта для игры.

Традиционный конвейер будет выглядеть примерно так:

  1. Создать модель в Blender
  2. UV-развертка модели
  3. Экспорт в формате FBX, поскольку Painter не может использовать файлы Blender
  4. Импорт FBX в Substance Painter
  5. Добавление материалов в Substance
  6. Экспорт текстур в виде изображений
  7. Импорт FBX в игровой движок
  8. Настройка текстур вручную
  9. Создание рендеров

С помощью USD мы можем значительно упростить этот процесс и сохранить в значительной степени недеструктивный рабочий процесс. Конвейер остается очень похожим, Blender и Substance являются основными компонентами.

Но поскольку USD изначально не работает в режиме реального времени между этими приложениями (главным образом потому, что Blender по-прежнему имеет ограниченную поддержку USD), я буду использовать Nvidia Omniverse для создания этой связи для нас.

Через Omniverse я могу получить доступ к более совместимой с USD ветке Blender, созданной Nvidia. Я могу включить коннектор Omniverse для Substance Painter, чтобы реализовать LifeLink. И я могу использовать USD Composer, чтобы преодолеть разрыв между приложениями и просмотреть конечный продукт.

После этой настройки мы можем открыть наш проект Blender в пользовательской ветке Blender. Если мы затем нажмем N и перейдем в правую часть, мы получим надстройку Nucleus, позволяющую нам экспортировать это как файл USD.

Если мы затем перейдем в USD Composer и откроем этот файл USD, мы получим своего рода живую связь между приложениями. Теперь я могу внести любые изменения в сетку, повторно экспортировать ее и автоматически получить ее в USD Composer.

Все становится еще лучше! Как только мы импортируем модель, мы можем открыть Substance Painter, включить коннектор Omniverse и перейти к Import Mesh, чтобы автоматически импортировать наш объект из USD Composer в Substance. На этом этапе, если мы внесем изменения в Blender, мы все равно можем повторно экспортировать и получить это в USD Composer, который автоматически связывается с Substance Painter.

Однако, как только мы добавим текстуры внутри Substance Painter, повторное выполнение этого действия удалит эти текстуры. Поэтому, как только вы будете довольны, добавьте свои материалы в Substance Painter, и с включенным Life Link они автоматически появятся в USD Composer.

Любые изменения, которые вы затем вносите, автоматически экспортируются и обновляются в USD Composer. Действительно, очень круто!

Для меня этот рабочий процесс просто потрясающий. Возможность вносить изменения в Blender и Substance Painter в режиме реального времени и иметь все это автоматически работать в дальнейшем и отражаться в конечном рендеринге – это нечто иное.

Если вам интересно попробовать все, что может предложить Nvidia Omniverse, вы можете скачать его бесплатно по ссылке в описании. И если вы хотите узнать больше обо всех технических случаях использования, которые USD и Omniverse вместе предоставляют, вы можете найти еще одну бесплатную ссылку для скачивания, а также ссылку для посещения открытых сессий USD в виртуальном или личном формате на GTC в марте.

Я действительно рекомендую проверить это, потому что это действительно будущее 3D-рабочих процессов.

Подробнее о USD

Помимо этого забавного примера, USD может предложить гораздо больше. И если вы хорошо используете его возможности, вы станете намного эффективнее как художник. Итак, что еще он может делать?

Ну, помимо того факта, что универсальный формат файлов значительно облегчит вам жизнь, это, безусловно, будущее. С августа 2023 года USD стал официальной некоммерческой организацией под названием The Alliance of Open USD (AO USD), сокращенно – с Pixar, Apple, Adobe, Autodesk и Nvidia в качестве ее членов-основателей.

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

Помимо того, что USD является форматом файлов, он хранит почти все – от источников света и камер до кешей симуляций и данных сцены – в многослойной структуре, называемой «примы» (сокращение от примитивы). Он содержит все эти данные для описания сложных сцен и ресурсов в формате, читаемом широким спектром приложений.

Теперь, зная это, название «Universal Scene Description» действительно имеет большой смысл!

Если вы знакомы с коллекциями Blender, USD работает аналогично. Вы можете вкладывать что угодно внутрь нескольких вложенных коллекций, с дополнительным преимуществом, заключающимся в том, что USD рассматривает все эти слои как экземпляры. Поэтому он может очень быстро загружать и читать все данные оптимизированным способом.

Это работает аналогично созданию экземпляров коллекций в Blender, что хорошо, потому что экземпляры требуют меньше вычислений, чем фактические дубликаты объектов. Это также очень похоже на предварительную композицию в After Effects или компаундирование в Nuke – вы в основном группируете вещи внутри вложенных групп/слоев, что упрощает и ускоряет работу компьютера с файлом.

Отличным примером этой оптимизации является новейший образец проекта USD от Nvidia под названием «Мастерская да Винчи». Используя их приложение USD Composer (которое идеально подходит для просмотра проектов USD с освещением в реальном времени), я могу воспроизводить эту огромную библиотеку ресурсов, текстур и источников света размером 67 ГБ с миллионами полигонов со скоростью около 120 FPS без каких-либо задержек или проблем. Это возможно благодаря тому, насколько эффективно USD загружает файлы и текстуры чрезвычайно оптимизированным способом.

Точно так же для анимаций, которые раньше экспортировались как файлы Alembic, кэширование USD теперь происходит намного быстрее. Файлы Alembic обычно огромны, очень не оптимизированы и медленно считываются вашим компьютером, что обычно приводит к прерывистому воспроизведению. С USD достижение стабильного FPS не является проблемой, а размер файла намного меньше.

Дополнительные преимущества

Еще одна действительно крутая особенность заключается в том, что вы можете получить доступ к слоям внутри вашего проекта USD извне файла довольно легко. Например, если есть прим-слой, содержащий данные о том, что сфера имеет зеленый цвет внутри файла USD, просто изменив этот цвет на красный в совместимом с USD редакторе, таком как USD Composer, мы можем изменить цвет сферы, даже не открывая файл в Blender! Это невероятно мощно.

Хотя это, очевидно, простой пример, он показывает потенциал. Еще одно важное преимущество заключается в том, что USD по-прежнему позволяет вам работать только с одним слоем сложного файла в определенном программном обеспечении. Так, даже если ваш файл содержит полный проект с камерами, источниками света и т. д., вы все равно можете открыть только одну его часть – например, одну модель – внутри Substance Painter и работать только над этой частью проекта, не затрагивая ничего остального.

Это также относится к случаю, когда несколько человек работают над одним и тем же файлом – еще одна важная сильная сторона USD. Десять человек могут работать над одним и тем же файлом, поэтому изменения, внесенные художником номер один, немедленно становятся видимыми для художника номер два, что позволяет им соответствующим образом адаптировать свою работу. Возможность удаленно сотрудничать с людьми невероятно мощна.

Будущее 3D-конвейеров

Можно с уверенностью сказать, что USD – это гораздо больше, чем просто формат файлов. Это комплексная технологическая платформа и экосистема, которая в своей миссии действительно соответствует Blender: свобода творить без ограничений.

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

Мы все должны быть благодарны Pixar за то, что она проложила путь с этой невероятной разработкой, и таким компаниям, как Nvidia и Apple, за то, что они внесли свой вклад.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *