Formát USD pro 3D grafiku: Proč je tak úžasný

V rubrikách 3D, Open Source Štítky , , , , , , ,
Save and Share:

USD (Universal Scene Description, univerzální popis scény) je formát souborů vyvinutý společností Pixar pro výměnu 3D počítačově generovaných scén mezi různými aplikacemi pro tvorbu digitálního obsahu. Jedná se o rozšiřitelný open-source formát, který dokáže ukládat informace o 3D geometrii, stínování, osvětlení, fyzice a dalších oblastech souvisejících s grafikou. Umožňuje také skládat a překrývat data z více zdrojů, čímž vytváří jednotný graf scény, který lze nedestruktivně upravovat.

USD se používá v mnoha odvětvích, jako je design, architektura, animace a herní průmysl, a je podporován mnoha softwarovými aplikacemi, například Blender, Cinema 4D, Houdini, Maya a Apple SceneKit. USD je také jádrem grafického 3D pipeline společnosti Pixar a základem platformy Nvidia Omniverse.

Specifikace Universal Scene Description (USD) používá několik formátů souborů:

  • .usd – Může být kódován v ASCII nebo binárně
  • .usda – Kódován v ASCII
  • .usdc – Binárně kódován
  • .usdz – Balíčkový soubor formátovaný jako nekomprimovaný, nešifrovaný zip archiv. Může obsahovat soubory .usd, .usda, .usdc, .png, .jpeg, .m4a, .mp3 a .wav.

Blender (nebo jakýkoli jiný 3D software) vám usnadňuje život tím, že vám umožňuje provádět spoustu úkolů pouze pomocí jeho rozhraní, ale jakmile začnete do svého workflow zapojovat další software, problémy se začnou objevovat jeden za druhým. Pojďme se tedy bavit o největších problémech, na které pravděpodobně už dnes narážíte, a o tom, jak společnost Pixar vytvořila řešení, které je překonává – a to až do nekonečna a ještě dál.

Video o formátu USD od KaizenTutorials

Problém

Pokud jste někdy texturovali model v Substance, importovali svou práci do Unreal Engine, nebo se pokoušeli sdílet projekt s někým, kdo pracuje v jiném softwaru, pravděpodobně jste si uvědomili, jak otravné to může být. Muset se zabývat různými typy souborů, správnými exportními postupy pro každý jednotlivý software a ztrácet přitom cenná data, to všechno může vést k pocitu, že si úmyslně a opakovaně mlátíte hlavou o zeď.

A věřte mi, když říkám, že tohle je něco, co zažívají všichni 3D umělci – ať už pracujete jako sólový tvůrce s vlastním workflow, nebo ve velkém studiu jako Pixar a musíte se přizpůsobit přísným omezením workflow, abyste udrželi správný pracovní postup pro všech těch 1 232 lidí, kteří tam pracují. Problém zůstává stejný.

Proč se to děje

Ale dává to smysl, že? Každý software používá proprietární typ souboru, který vyhovuje jeho potřebám. Takže například soubor z Blenderu je naprogramován tak, aby fungoval v Blenderu, ale ne v Substance. Je jasné, že v podniku každý umělec potřebuje, aby byl soubor kompatibilní s jeho vlastním nástrojem, aby bylo snadné a někdy i vůbec možné pokračovat v práci na projektu.

To je důvod, proč je export do univerzálnějšího typu souboru, jako je FBX nebo OBJ, nutností při přechodu na jiný software nebo při předávání projektu další osobě. Ale i tyto typy souborů mají spoustu omezení, například neschopnost správně uložit simulace, osvětlení a mnoho dalších aspektů vašich projektů z Blenderu.

Představujeme USD

Takže jaká je odpověď na tento problém? Universal Scene Description (USD), zkráceně USD! Společnost Pixar jej poprvé zveřejnila jako open source software v roce 2016 jako svůj nový hlavní pipeline. USD byl primárně způsob, jak jejich umělcům usnadnit přesouvání dat mezi sebou navzájem a nástroji, které používají.

Od svého vydání se USD neustále mění a vylepšuje, což je běžné pro open source software, stejně jako Blender, který je také neustále aktualizován a rozšiřován.

Co je to USD?

USD je spousta věcí, a pokud bych se do toho opravdu ponořil, může být jeho popis velmi technický a komplikovaný. Ale abych to zjednodušil, USD je způsob, jak zajistit, aby spolu aplikace jako Blender, Unreal, Houdini, Substance, Maya, Nvidia Omniverse a spousta dalších mohly komunikovat a rozumět si.

V počítačovém průmyslu pro to existuje dokonce i honosné slovo – interoperabilita. Těžko se to vyslovuje! Ale i když to zní honosně, ve skutečnosti to není tak složité, jak by se mohlo zdát. Můžete to začít používat ještě dnes na svém vlastním počítači, nebo dokonce s více přáteli či kolegy po celém světě.

V čem je USD jiný

Tradičně je pipeline velmi jednosměrná záležitost, kdy každý člověk může na něčem pracovat, až když předchozí člověk skončí. Nebo pro vás osobně – můžete přejít k dalšímu kroku v procesu, například texturování, až když je modelování zcela hotové.

Můžete to přirovnat k pečení dortu – jak dort stavíte a vytváříte, musíte dokončit každý krok, než budete moci začít s dalším. Nemůžete dort upéct dřív, než umícháte těsto, a nemůžete ho postavit, než upečete korpusy v troubě. Každý krok je závislý na dokončení předchozího kroku.

A co je důležitější, jakmile dáte na dort polevu a náplň, nebo se rozhodnete, že korpus má být čokoládový, není cesty zpět. Nemůžete dort rozpéct, změnit chuť na vanilkovou nebo sundat polevu. A tomu říkáme destruktivní workflow.

USD je ale spíš jako Lego. Každý blok představuje část 3D scény – postavy, objekty, prostředí, cokoli – a vy můžete tyto bloky skládat, rozkládat a upravovat nezávisle na sobě.

V tradičním pipeline by změna jednoho bloku vyžadovala úpravu zbytku konstrukce. Ale s USD se dá s každým stavebním blokem pracovat nezávisle a já mohu jednoduše změnit například barvu jednoho bloku, aniž bych musel přestavět celý model.

Je to nedestruktivní přístup, který umožňuje experimentování a kolaborativní workflow bez toho, abyste byli svázáni omezeními pipeline.

Cíl USD

Cílem USD je vytvořit způsob, jak data mohou volně proudit mezi aplikacemi, dát umělcům a týmům svobodu soustředit se na tvorbu, a ne na exportování a čekání jeden na druhého, aby mohli pokračovat v práci. Umělci by neměli muset začínat znovu, pokud se koncepční tým později rozhodne něco změnit. A neměly by nastávat problémy s formáty souborů z jiných programů, které nefungují ve vašem softwaru.

Na obecné úrovni se zdá, že USD je – vysoce interoperabilní formát souborů, který lze snadno vyměňovat mezi různými softwary. A upřímně řečeno, pro většinu uživatelů Blenderu to tak bude, protože mnozí z nás mají tendenci pracovat sólo. Ale USD je víc než jen typ souboru…

Je to způsob, jak sestavit a uspořádat libovolné množství assetů do virtuálních scén, prostředí, záběrů a světů – používat je z aplikace do aplikace a nedestruktivně je často upravovat v reálném čase.

Jak pracovat s USD

Podívejme se tedy, jak můžeme pracovat s USD ve workflow Blenderu. V nejzákladnější podobě je USD možnost exportu v Blenderu už od verze 3.6. Pokud tedy máte soubor, na kterém pracujete a chcete ho uložit jako soubor USD, můžete jít do Soubor > Export > Universal Scene Description a objeví se okno s výzvou k uložení souboru.

Má docela dost možností, ale hlavními, na které je třeba si dát pozor, jsou:

  • Pouze vybrané – Zahrne do exportu pouze vybrané objekty
  • Animace a vlasy – Zahrne/vyloučí animace a data vlasových částic pro vaše objekty

Zde je skvělý příklad toho, jak USD funguje. Toto je soubor z knihovny vzorků USD společnosti Nvidia, který byl vytvořen v řadě softwarů, jako je 3ds Max a Substance. Pokud ho otevřete v Blenderu importem, funguje téměř stoprocentně okamžitě!

Jak vidíte, obsahuje všechna data včetně světel, hloubky ostrosti, kamery, materiálů a mnoho dalšího. Jediná věc, která se neexportuje správně, je HDRI osvětlení, které si musíme nastavit sami. Ale je neuvěřitelné, že to vypadá téměř totožně v Arnold rendereru 3DS Maxu a po exportu do Blenderu funguje stejně dobře s jediným typem souboru!

Má správnou hierarchii, materiály a v podstatě je vše nastaveno. Je to opravdu, opravdu super! Každopádně to ukazuje, jak USD funguje mezi různými aplikacemi a že funguje jako interoperabilní formát souborů.

Praktický příklad s USD

Podívejme se ale na praktičtější příklad. Pro tento příklad pipeline budu používat typické workflow modelování objektu pro hru v Blenderu.

Tradiční pipeline by probíhal nějak takto:

  1. Vytvořit model v Blenderu
  2. UV mapování modelu
  3. Exportovat jako FBX, protože Painter neumí soubory Blenderu
  4. Importovat FBX do Substance Painter
  5. Přidat materiály v Substance
  6. Exportovat textury jako obrázky
  7. Importovat FBX do herního enginu
  8. Ručně nastavit textury
  9. Vytvořit rendery

S USD můžeme tento proces výrazně zjednodušit a zachovat do značné míry nedestruktivní workflow. Pipeline zůstává velmi podobný, s Blenderem a Substance jako hlavními komponentami.

Protože ale USD nativně nefunguje v reálném čase mezi těmito aplikacemi (hlavně proto, že Blender má stále omezenou podporu USD), použiji Nvidia Omniverse, abych toto propojení vytvořil za nás.

Prostřednictvím Omniverse získám přístup k USD kompatibilnější verzi Blenderu, kterou vytvořila Nvidia. Můžu povolit Omniverse konektor pro Substance Painter, abych zrealizoval LifeLink. A můžu použít USD Composer k překlenutí propasti mezi aplikacemi a zobrazení finálního produktu.

S tímto nastavením můžeme nyní otevřít náš projekt Blenderu ve vlastní verzi Blenderu. Pokud pak stiskneme N a přejdeme na pravou stranu, dostaneme Nucleus add-on, který nám umožní exportovat to jako soubor USD.

Pokud pak přejdeme do USD Composer a otevřeme tento soubor USD, získáme jakési živé propojení mezi aplikacemi. Nyní mohu provést jakoukoli změnu v mesh, reexportovat ji a ta se automaticky promítne do USD Composeru.

A je to ještě lepší! Jakmile model importujeme, můžeme otevřít Substance Painter, povolit Omniverse konektor a jít na Import Mesh, abychom automaticky importovali náš objekt z USD Composeru do Substance. V tomto bodě, pokud provedeme změny v Blenderu, můžeme je stále reexportovat a promítnout do USD Composeru, který se automaticky propojí se Substance Painterem.

Jakmile ale přidáme textury v Substance Painteru, opětovné provedení tohoto postupu tyto textury odstraní. Takže až budete spokojeni, přidejte materiály v Substance Painteru a s povoleným Life Linkem se tyto materiály automaticky objeví v USD Composeru.

Jakékoli změny, které pak provedete, se automaticky exportují a aktualizují v USD Composeru. Opravdu, opravdu skvělé!

Podle mě je toto workflow naprosto ohromující. Možnost provádět změny v Blenderu a Substance Painteru v reálném čase a mít to vše automaticky funkční až do finálního renderu, to je něco jiného.

Pokud máte zájem vyzkoušet vše, co Nvidia Omniverse nabízí, můžete si ho zdarma stáhnout prostřednictvím odkazu v popisku. A pokud se chcete dozvědět více o všech technických případech použití, které USD a Omniverse společně poskytují, můžete si zdarma stáhnout další materiál, stejně jako odkaz na virtuální nebo osobní účast na otevřených USD day sessions na GTC v březnu.

Opravdu doporučuji se na to podívat, protože tohle je skutečně budoucnost 3D workflow.

Více o USD

Kromě tohoto zábavného příkladu nabízí USD mnohem víc. A pokud dobře využijete jeho schopnosti, stanete se jako umělec mnohem efektivnější. Takže, co ještě umí?

No, kromě toho, že univerzální formát souborů by vám usnadnil život, je to absolutní budoucnost. Od srpna 2023 se USD stal oficiální neziskovou organizací s názvem The Alliance of Open USD (AO USD) – s Pixarem, Apple, Adobe, Autodesk a Nvidia jako zakládajícími členy.

Myslím, že to jasně ukazuje, jak moc jsou tyto společnosti investovány a jak to skutečně vidí jako budoucnost interoperabilního formátu souborů – který by měl být schopen snadno používat každý.

Kromě toho, že je USD formát souborů, ukládá téměř vše – od světel a kamer po cache simulací a data scén – ve vrstvové struktuře zvané „primy“ (zkratka pro primitiva). Obsahuje všechna data pro popis komplexních scén a assetů ve formátu čitelném širokou škálou aplikací.

Když to víte, název „Universal Scene Description“ dává ve skutečnosti velký smysl!

Pokud znáte kolekce v Blenderu, USD funguje podobně. Můžete vnořit cokoliv do několika vnořených kolekcí s přidanou výhodou, že USD považuje všechny tyto vrstvy za instance. Díky tomu je schopen velmi rychle načítat a číst všechna data optimalizovaným způsobem.

Funguje to podobně jako instance kolekcí v Blenderu, což je dobře, protože instance vyžadují menší výpočetní výkon než skutečné duplicitní objekty. Je to také velmi podobné pre-compingu v After Effects nebo compoundingu v Nuke – v podstatě seskupujete věci uvnitř vnořených skupin/vrstev, což usnadňuje a urychluje počítači práci se souborem.

Skvělým příkladem této optimalizace je nejnovější vzorový projekt USD společnosti Nvidia s názvem „Da Vinci’s Workshop“. Pomocí jejich aplikace USD Composer (která je ideální pro prohlížení projektů USD s osvětlením v reálném čase) mohu přehrávat tuto masivní 67GB knihovnu assetů, textur a světel s miliony polygonů s rychlostí blížící se 120 FPS bez jakéhokoli lagování nebo problémů. To je možné díky tomu, jak efektivně USD načítá soubory a textury extrémně optimalizovaným způsobem.

Podobně je pro animace, které se dříve exportovaly jako soubory Alembic, USD caching nyní mnohem rychlejší. Soubory Alembic jsou obvykle obrovské, velmi neoptimalizované a počítač je čte pomalu – což obvykle vede k trhanému přehrávání. S USD není dosažení stabilního FPS vůbec žádný problém a velikost souboru je mnohem menší.

Další výhody

Další opravdu skvělou funkcí je, že máte snadný přístup k vrstvám uvnitř vašeho projektu USD zvenčí souboru. Pokud je například v souboru USD prim vrstva obsahující data o tom, že koule je zelená, pouhou změnou barvy na červenou v editoru kompatibilním s USD, jako je USD Composer, můžeme změnit barvu koule, aniž bychom soubor vůbec otevírali v Blenderu! To je neuvěřitelně silné.

I když je to samozřejmě jen základní příklad, ukazuje to potenciál. Další velkou výhodou je, že USD stále umožňuje pracovat pouze na jedné vrstvě komplexního souboru v určitém softwaru. Takže i když váš soubor obsahuje kompletní projekt s kamerami, světly atd., stále jste schopni otevřít si z něj jen jeden díl – například jediný model – v Substance Painteru a pracovat pouze na této části projektu, aniž byste ovlivnili cokoli jiného.

To platí i v případě, že na stejném souboru pracuje více lidí – což je další velká silná stránka USD. Deset lidí by mohlo pracovat na stejném souboru, takže změny provedené umělcem číslo jedna jsou okamžitě viditelné pro umělce číslo dva, což jim umožňuje přizpůsobit svou práci. Možnost spolupracovat s lidmi vzdáleně je neuvěřitelně silná.

Budoucnost 3D Pipeline

Dá se s jistotou říci, že USD je mnohem víc než jen formát souborů. Je to komplexní technologická platforma a ekosystém, který se svým posláním opravdu shoduje s Blenderem: svoboda tvořit bez omezení.

USD je stále ve vývoji. Sen je reálný – univerzální formát softwarových souborů použitelný jakýmkoli softwarem v oboru, editovatelný v reálném čase více umělci.

Měli bychom být všichni vděčni společnosti Pixar za to, že prošlapává cestu tímto neuvěřitelným vývojem, a společnostem jako Nvidia a Apple za jejich přínos.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *