USD файлов формат за 3D: Защо е толкова невероятен

Categorized as 3D, Open Source Tagged , , , , , , ,
Save and Share:

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), или накратко USD! Първоначално публикуван като софтуер с отворен код от Pixar през 2016 г. като техен нов основен конвейер, USD беше главно начин за техните артисти да улеснят преместването на данни помежду си и инструментите, които използват.

От пускането си USD постоянно претърпява промени и подобрения, което е обичайно за софтуер с отворен код, точно като Blender, който също се актуализира и разширява постоянно.

Какво е USD?

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

В компютърната индустрия всъщност има сложна дума за това – оперативна съвместимост. Малко е трудно за произнасяне! Колкото и сложно да звучи, всъщност не е толкова сложно, колкото може да си помислите. Можете да започнете да го използвате днес на собствения си компютър или дори с множество приятели или колеги по целия свят.

Как USD се различава

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

Можете да сравните това с печене на торта – докато строите и създавате тази торта, трябва да завършите всяка стъпка, преди да можете да започнете следващата. Не можете да изпечете тортата, преди да сте смесили тестото, и не можете да я построите, преди да сте изпекли блатовете във фурната. Всяка стъпка зависи от завършването на предишната.

По-важното е, че след като сложите глазурата и пълнежа или решите, че блатът трябва да бъде шоколадов, няма връщане назад. Не можете да „разпечете“ тортата, да промените вкуса на ванилия или да премахнете глазурата. И това наричаме разрушителен работен процес.

USD обаче е по-скоро като Лего. Всеки блок представлява част от 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 – Ще включва/изключва данни за анимация и коса (particle 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 предоставят заедно, можете да намерите друга безплатна връзка за изтегляне, както и връзка за участие в сесиите на Open USD Day виртуално или лично на GTC през март.

Наистина препоръчвам да проверите това, защото това е истинското бъдеще на 3D работните процеси.

Още за USD

Освен този забавен пример, USD има много повече да предложи. И ако се възползвате добре от възможностите му, ще станете много по-ефективни като артист. И така, какво друго може да прави?

Е, освен факта, че универсален файлов формат би улеснил живота ви много, той е абсолютно бъдещето. От август 2023 г. USD стана официална организация с нестопанска цел, наречена The Alliance of Open USD (AO USD) накратко – с Pixar, Apple, Adobe, Autodesk и Nvidia като нейни основатели.

Мисля, че това наистина показва колко инвестирани са тези компании и как наистина виждат това като бъдещето на оперативния файлов формат – който всеки трябва да може да използва много лесно.

Освен че е файлов формат, USD съхранява почти всичко – от светлини и камери до кешове на симулации и данни за сцени – в слоеста структура, наречена „prims“ (съкратено от примитиви). Той съдържа всички тези данни, за да опише сложни сцени и активи във формат, четлив от широк спектър приложения.

Сега, знаейки това, името „Universal Scene Description“ всъщност има много смисъл!

Ако сте запознати с колекциите в Blender, USD работи подобно. Можете да вложите всичко в множество вложени колекции, с добавената полза, че USD третира всички тези слоеве като инстанции. Следователно той е в състояние много бързо да зарежда и чете всички данни по оптимизиран начин.

Това работи подобно на инстанциирането на колекции в Blender, което е добре, защото инстанциите изискват по-малко изчислителна мощност от действителните дублирани обекти. Също така е много подобно на предварителната композиция в After Effects или композирането в Nuke – вие основно групирате неща във вложени групи/слоеве, което улеснява и ускорява работата на компютъра с файла.

Чудесен пример за тази оптимизация е най-новият USD примерен проект на Nvidia, наречен „Работилницата на Да Винчи“. Използвайки тяхното приложение USD Composer (което е перфектно за преглед на USD проекти с осветление в реално време), мога да възпроизвеждам тази огромна 67GB библиотека от активи, текстури и светлини с милиони полигони при близо 120 FPS без никакво забавяне или проблеми. Това е възможно, защото колко ефективно USD зарежда файловете и текстурите по изключително оптимизиран начин.

По същия начин, за анимации, които преди се експортираха като Alembic файлове, USD кеширането вече е много по-бързо. Alembic файловете обикновено са огромни, много неоптимизирани и се четат бавно от вашия компютър – обикновено водят до накъсано възпроизвеждане. С USD, постигането на стабилен FPS не е проблем изобщо, а размерът на файла е много по-малък.

Още предимства

Друга наистина готина функция е, че можете лесно да получите достъп до слоевете във вашия USD проект извън файла. Например, ако има prim слой, съдържащ данните, че дадена сфера е зелена в USD файл, като просто променим този цвят на червен в USD-съвместим редактор като USD Composer, можем да променим цвета на сферата, без да отваряме файла в Blender! Това е невероятно мощно.

Въпреки че това очевидно е елементарен пример, той показва потенциала. Друго голямо предимство е, че USD все още ви позволява да работите само върху един слой от сложен файл в определен софтуер. Така че, дори ако файлът ви съдържа пълен проект с камери, светлини и т.н., вие все още можете да отворите само една част от него – например един модел – в Substance Painter, и да работите само върху тази част от проекта, без да засягате нищо друго.

Това важи и ако няколко души работят върху един и същи файл – друга основна сила на USD. Десет души могат да работят върху един и същи файл, така че промените, направени от артист номер едно, са веднага видими за артист номер две, което им позволява да адаптират работата си съответно. Възможността за сътрудничество с хора дистанционно е невероятно мощна.

Бъдещето на 3D конвейери

Безопасно е да се каже, че USD е много повече от просто файлов формат. Това е всеобхватна технологична платформа и екосистема, която в своята мисия наистина се привежда в съответствие с Blender: свободата да се твори без ограничения.

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

Всички трябва да сме благодарни на Pixar, че проправиха пътя с тази невероятна разработка, и на компании като Nvidia и Apple, че допринасят своя дял.

Leave a comment

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са отбелязани с *