Az USD (Universal Scene Description, azaz Univerzális Színtérleírás) egy fájlformátum, amelyet a Pixar fejlesztett ki a 3D számítógépes grafikai jelenetek digitális tartalomkészítő alkalmazások közötti cseréjére. Ez egy bővíthető, nyílt forráskódú fájlformátum, amely 3D geometriára, árnyékolásra, világításra, fizikára és más grafikai területekre vonatkozó információkat tárolhat. Emellett több forrásból származó adatokat is képes összeállítani és felülírni, létrehozva egyetlen, roncsolásmentesen szerkeszthető színtérgráfot.
Az USD-t számos iparágban használják, például a tervezés, az építészet, az animáció és a játékipar területén, és számos szoftveralkalmazás támogatja, mint például a Blender, a Cinema 4D, a Houdini, a Maya és az Apple SceneKitje. Az USD a Pixar 3D grafikai folyamatának magja, és az Nvidia Omniverse platformjának alapja is egyben.
Az Universal Scene Description (USD) specifikációja többféle fájlformátumot használ:
- .usd – Lehet ASCII vagy bináris kódolású
- .usda – ASCII kódolású
- .usdc – Bináris kódolású
- .usdz – Csomagfájl, amely tömörítés nélküli, titkosítatlan zip archívumként van formázva. .usd, .usda, .usdc, .png, .jpeg, .m4a, .mp3 és .wav fájlokat tartalmazhat.
A Blender (vagy bármely más 3D szoftver) megkönnyíti az életedet azzal, hogy rengeteg feladatot elvégezhetsz kizárólag a felületén belül, de amint más szoftvereket is bevezetsz a munkafolyamatodba, problémák kezdenek felbukkanni mindenhol. Beszéljünk tehát a legnagyobb problémákról, amelyekbe valószínűleg már most is belefutottál, és arról, hogy a Pixar hogyan hozta létre a megoldást ezek leküzdésére, egészen a végtelenségig és tovább.
A probléma
Ha valaha textúráztál modellt a Substance-ben, importáltad a munkádat az Unrealbe, vagy megpróbáltál megosztani egy projektet valakivel, aki más szoftverben dolgozik, valószínűleg rájöttél, hogy mennyire idegesítő is lehet ez. Különböző fájltípusokkal, minden egyes szoftverhez megfelelő export munkafolyamatokkal kell foglalkoznod, és értékes adatokat veszíthetsz a folyamat során, ami miatt úgy érezheted, mintha szándékosan vernéd a fejedet a falba.
És hidd el nekem, amikor azt mondom, hogy ezt minden 3D művész megtapasztalja mindenhol – függetlenül attól, hogy egyéni alkotóként dolgozol a saját egyedi munkafolyamatoddal, vagy egy nagy stúdióban, mint a Pixar, ahol szigorú munkafolyamat-korlátozásoknak kell megfelelned, hogy fenntartsd a megfelelő munkafolyamatot az ott dolgozó összes többi 1232 ember számára. A probléma ugyanaz marad.
Miért történik ez?
Pedig van benne ráció, nem igaz? Minden szoftver saját, védett fájltípust használ, amely megfelel az igényeinek. Tehát például egy Blender fájlt úgy kódoltak, hogy a Blenderben működjön, de a Substance-ben nem. Nyilvánvalóan egy cégnél minden művésznek kompatibilis fájlra van szüksége a saját választott eszközével, hogy megkönnyítse, sőt, néha lehetővé tegye a projekten való további munkát.
Ezért szükséges univerzálisabb fájltípusra, például FBX-re vagy OBJ-re exportálnod, amikor másik szoftverre váltasz, vagy átadod a projektet a következő személynek. De még ezeknek a fájltípusoknak is sok korlátjuk van, például képtelenek megfelelően tárolni szimulációkat, világítást és a Blender projektek sok más aspektusát.
Bemutatkozik az USD
Tehát mi a válasz erre a problémára? Universal Scene Description (USD), röviden! A Pixar 2016-ban nyílt forráskódú szoftverként publikálta először, mint új alapvető munkafolyamatukat. Az USD elsősorban egy módja volt annak, hogy a művészeik könnyebben tudjanak adatokat mozgatni egymás és az általuk használt eszközök között.
Megjelenése óta az USD folyamatosan változásokon és fejlesztéseken megy keresztül, ami gyakori a nyílt forráskódú szoftverek esetében, mint például a Blender, amelyet szintén folyamatosan frissítenek és bővítenek.
Mi az az USD?
Az USD sok minden, és ha nagyon mélyre ásnék benne, akkor valójában egy nagyon technikai és bonyolult dolog lehet a leírása. De ha egyszerűen fogalmazok, az USD egy módja annak, hogy az olyan alkalmazások, mint a Blender, Unreal, Houdini, Substance, Maya, Nvidia Omniverse és sok más tudjanak kommunikálni és megérteni egymást.
A számítástechnikai iparban valójában van egy elegáns szó erre: interoperabilitás. Elég nehéz kimondani! De bármilyen előkelően is hangzik, valójában nem olyan bonyolult, mint gondolnád. Már ma elkezdheted használni a saját számítógépeden, vagy akár több barátoddal vagy kollégáddal is világszerte.
Miben más az USD?
Hagyományosan a munkafolyamat egy nagyon egyirányú dolog, ahol mindenki csak akkor kezdhet el dolgozni valamin, ha az előző személy befejezte. Vagy személyesen neked, csak akkor léphetsz a következő lépésre a folyamatban, például a textúrázásra, ha a modellezés teljesen kész van.
Ezt összehasonlíthatnánk egy torta sütésével – ahogy építed és készíted ezt a tortát, minden lépést be kell fejezned, mielőtt elkezdhetnéd a következőt. Nem sütheted meg a tortát, mielőtt összekevernéd a tésztát, és nem építheted meg, mielőtt megsütnéd a piskótákat a sütőben. Minden lépés az előző befejezésétől függ.
És ami még fontosabb, ha egyszer feltetted a krémet és a tölteléket, vagy úgy döntöttél, hogy csokoládés legyen a piskóta, nincs visszaút. Nem sütheted vissza a tortát, nem változtathatod meg az ízét vaníliára, és nem veheted le a krémet. És ezt roncsoló munkafolyamatnak nevezzük.
Az USD azonban inkább olyan, mint a LEGO. Minden kocka egy 3D jelenet egy részét képviseli – karaktereket, objektumokat, környezeteket, bármit –, és ezeket a kockákat függetlenül összeállíthatod, szétszerelheted és módosíthatod.
Egy hagyományos munkafolyamatban egy kocka megváltoztatása a teljes struktúra többi részének kiigazításával járna. De az USD-vel minden építőelemen függetlenül lehet dolgozni, és egyszerűen megváltoztathatok például egy kockát egy másik színűre anélkül, hogy újra kellene építenem az egész modellt.
Ez egy roncsolásmentes megközelítés, amely lehetővé teszi a kísérletezést és az együttműködő munkafolyamatokat anélkül, hogy a munkafolyamat korlátai megkötnének.
Az USD célja
Az USD célja mindebben az, hogy létrehozzanak egy módot az adatok szabad mozgatására az alkalmazások között, hogy szabadságot adjanak a művészeknek és csapatoknak, hogy a teremtésre összpontosíthassanak, és ne az exportálásra és arra, hogy egymásra várjanak, hogy folytathassák a munkát. A művészeknek nem kellene újrakezdeniük, ha a koncepció csapat úgy dönt, hogy később megváltoztatja a dolgokat. És nem lennének problémák azzal, hogy más programokból származó fájlformátumok nem működnek a választott szoftveredben.
Szolgáltatási szinten nézve az USD látszólag egy rendkívül interoperábilis fájlformátum, amely könnyen cserélhető a különböző szoftverek között. És igazság szerint a legtöbb Blender felhasználó számára ez is lesz, mivel sokan közülünk egyénileg dolgoznak. De az USD több, mint egyszerűen egy fájltípus…
Ez egy módja annak, hogy tetszőleges számú elemet virtuális díszletekbe, jelenetekbe, beállításokba és világokba állítsunk össze – alkalmazásról alkalmazásra használva őket, és roncsolásmentesen, gyakran valós időben szerkesztve őket.
Hogyan dolgozzunk az USD-vel?
Nézzük meg, hogyan dolgozhatunk az USD-vel egy Blender munkafolyamatban. Az USD legegyszerűbb formájában exportálási lehetőségként már a Blender 3.6-os verziója óta elérhető. Tehát ha van egy fájlod, amin dolgozol, és USD fájlként szeretnéd elmenteni, akkor a Fájl > Exportálás > Universal Scene Description menüpontra kattintva megjelenik egy ablak, ahol elmentheted a fájlt.
Van néhány opciója, de a legfontosabbak a következők:
- Csak kijelölés – Csak a kijelölt objektumokat tartalmazza az exportálás során
- Animáció és haj – Tartalmazza/kizárja az objektumok animációját és hajszálrendszer adatait
Íme egy nagyszerű példa arra, hogyan működik az USD. Ez az Nvidia USD mintakönyvtárából származó fájl, amely számos szoftverben készült, például 3ds Max és Substance. Ha megnyitod ezt Blenderben importálással, szinte 100%-ban azonnal működik!
Mint látható, minden adatot tartalmaz, beleértve a fényeket, a mélységélességet, a kamerát, az anyagokat és még sok mást. Az egyetlen dolog, ami nem exportálódik megfelelően, az a HDRI világítás, amelyet nekünk kell beállítanunk. De hihetetlen belegondolni, hogy ez szinte teljesen megegyezik a 3DS Max Arnold renderelőjében láthatóval, és most exportálták át Blenderbe, és ugyanilyen jól működik egyetlen fájltípus használatával!
Megfelelő hierarchiával, anyagokkal rendelkezik, és gyakorlatilag minden be van állítva. Nagyon, nagyon menő! Mindenesetre ez megmutatja, hogyan működik az USD a különböző alkalmazások között, és hogy interoperábilis fájlformátumként funkcionál.
Egy gyakorlati USD példa
De nézzünk meg egy gyakorlatiasabb példát. Ehhez a munkafolyamat-példához egy tipikus munkafolyamatot fogok használni, amelyben Blendert használok egy játékhoz készülő objektum modellezéséhez.
A hagyományos munkafolyamat valahogy így nézne ki:
- Modell létrehozása Blenderben
- Modell UV kibontása
- Exportálás FBX formátumban, mivel a Painter nem tud Blender fájlokat használni
- FBX importálása Substance Painterbe
- Anyagok hozzáadása a Substance-ben
- Textúrák exportálása képként
- FBX importálása játékmotorba
- Textúrák manuális beállítása
- Renderelés létrehozása
Az USD-vel jelentősen leegyszerűsíthetjük ezt a folyamatot, és nagyrészt roncsolásmentes munkafolyamatot tarthatunk fenn. A munkafolyamat nagyon hasonló marad, a Blender és a Substance maradnak a fő összetevők.
De mivel az USD nem natívan működik valós időben ezen alkalmazások között (főleg azért, mert a Blender még mindig korlátozott USD támogatással rendelkezik), az Nvidia Omniverse-t fogom használni, hogy létrehozzuk ezt a kapcsolatot számunkra.
Az Omniverse-en keresztül hozzáférést kaphatok a Blender egy USD-kompatibilisebb ágához, amelyet az Nvidia épített. Engedélyezhetem az Omniverse csatlakozót a Substance Painterhez, hogy megvalósítsam a LifeLinket. És használhatom az USD Composert az alkalmazások közötti szakadék áthidalására és a végső termék megtekintésére.
Ezzel beállítva, most megnyithatjuk a Blender projektünket az egyedi Blender ágban. Ha ezután megnyomjuk az N betűt, és ide megyünk a jobb oldalra, megkapjuk a Nucleus bővítményt, amely lehetővé teszi számunkra, hogy ezt USD fájlként exportáljuk.
Ha ezután az USD Composerbe megyünk, és megnyitjuk azt az USD fájlt, akkor egyfajta élő kapcsolatot kapunk az alkalmazások között. Most már bármilyen változtatást végrehajthatok a hálón, újraexportálhatom, és ezt automatikusan felveszi az USD Composer.
Még jobb! Miután importáltuk a modellt, megnyithatjuk a Substance Paintert, engedélyezhetjük az Omniverse csatlakozót, és az Import Mesh gombra kattintva automatikusan importálhatjuk az objektumunkat az USD Composerből a Substance-be. Ezen a ponton, ha változtatásokat hajtunk végre a Blenderben, továbbra is újraexportálhatjuk, és felvehetjük az USD Composerben, ami automatikusan kapcsolódik a Substance Painterhez.
Azonban, ha egyszer textúrákat adunk hozzá a Substance Painterben, ennek újbóli megtétele eltávolítja ezeket a textúrákat. Tehát ha már elégedett vagy, add hozzá az anyagaidat a Substance Painterben, és a Life Link engedélyezésével ezek automatikusan megjelennek az USD Composerben.
Bármilyen változtatás, amelyet ezután végrehajtasz, automatikusan exportálásra kerül és frissül az USD Composerben. Nagyon, nagyon menő!
Számomra ez a munkafolyamat elképesztő. Valós időben változtatásokat végrehajtani a Blenderben és a Substance Painterben, és mindennek automatikusan működni a vonalon lefelé, és tükröződni a végső renderelésben, az valami egészen más.
Ha érdekel az Nvidia Omniverse összes funkciójának kipróbálása, letöltheted ingyenesen a leírásban található linken keresztül. És ha többet szeretnél megtudni az USD és az Omniverse együttesen biztosított összes technikai felhasználási esetéről, akkor találhatsz egy másik ingyenes letöltési linket is, valamint egy linket a nyílt USD napok virtuális vagy személyes részvételére a GTC-n márciusban.
Nagyon ajánlom, hogy nézz utána, mert ez valóban a 3D munkafolyamatok jövője.
További információk az USD-ről
Ezen a szórakoztató példán kívül az USD még sokkal többet kínál. És ha jól kihasználod a képességeit, sokkal hatékonyabb művész leszel. Tehát mit tud még?
Nos, amellett, hogy egy univerzális fájlformátum sokkal könnyebbé tenné az életedet, ez abszolút a jövő. 2023 augusztusa óta az USD hivatalos nonprofit szervezet lett, Alliance of Open USD (AO USD) néven – a Pixar, az Apple, az Adobe, az Autodesk és az Nvidia alapító tagokkal.
Azt hiszem, ez igazán megmutatja, mennyire befektetnek ezek a cégek, és hogy mennyire látják ezt az interoperábilis fájlformátum jövőjének – amelyet mindenkinek nagyon könnyen kellene tudnia használni.
Amellett, hogy fájlformátum, az USD szinte mindent tárol – a fényektől és kameráktól a szimulációs gyorsítótárakig és jelenetadatokig – egy rétegszerű struktúrában, amelyet „prims”-nek (primitívek rövidítése) neveznek. Mindezeket az adatokat tartalmazza, hogy összetett jeleneteket és elemeket írjon le egy széles körű alkalmazás által olvasható formátumban.
Most már tudva ezt, az „Universal Scene Description” név valójában sokkal érthetőbb!
Ha ismered a Blender gyűjteményeit, az USD hasonlóan működik. Bármit beágyazhatsz többszörösen beágyazott gyűjteményekbe, azzal az előnnyel, hogy az USD ezeket a rétegeket példányokként kezeli. Ezért képes nagyon gyorsan betölteni és olvasni az összes adatot optimalizált módon.
Ez hasonlóan működik, mint a Blenderben a gyűjtemények példányosítása, ami azért jó, mert a példányok kevesebb számítást igényelnek, mint a ténylegesen duplikált objektumok. Nagyon hasonlít az After Effects előrendereléséhez vagy a Nuke összetevőzéséhez is – alapvetően csoportosítod a dolgokat beágyazott csoportokba/rétegekbe, ami megkönnyíti és felgyorsítja a számítógép számára a fájllal való munkát.
Ennek az optimalizálásnak egy nagyszerű példája az Nvidia legújabb USD mintaprojektje, a „Da Vinci’s Workshop”. Az USD Composer alkalmazásukkal (amely tökéletes az USD projektek valós idejű világítással történő megtekintésére) le tudom játszani ezt a hatalmas, 67 GB-os elemkönyvtárat, textúrákat és fényeket millió poligonnal közel 120 FPS sebességgel, mindenféle akadás vagy probléma nélkül. Ez azért lehetséges, mert az USD rendkívül optimalizált módon tölti be a fájlokat és textúrákat.
Hasonlóképpen, az animációk esetében, amelyeket korábban Alembic fájlokként exportáltak, az USD gyorsítótár most sokkal gyorsabb. Az Alembic fájlok általában hatalmasak, nagyon optimalizálatlanok, és lassan olvassa be őket a számítógéped – ami általában szaggatott lejátszást eredményez. Az USD-vel a stabil FPS elérése egyáltalán nem probléma, és a fájlméret is sokkal kisebb.
További előnyök
Egy másik igazán menő funkció, hogy könnyedén hozzáférhetsz az USD projekted rétegeihez a fájlon kívülről is. Például, ha van egy prim réteg, amely azt az információt tartalmazza, hogy egy gömb zöld egy USD fájlon belül, egyszerűen megváltoztatva ezt a színt pirosra egy USD-kompatibilis szerkesztőben, például az USD Composerben, megváltoztathatjuk a gömb színét anélkül, hogy valaha is megnyitnánk a fájlt a Blenderben! Ez hihetetlenül hatékony dolog.
Bár ez nyilvánvalóan egy egyszerű példa, de megmutatja a lehetőségeket. Egy másik jelentős előny, hogy az USD továbbra is lehetővé teszi, hogy egy összetett fájl egyetlen rétegén dolgozz egy adott szoftverben. Tehát még ha a fájlod egy teljes projektet tartalmaz is kamerákkal, fényekkel stb., akkor is meg tudod nyitni csak egy részét – például egyetlen modellt – a Substance Painterben, és csak a projekt azon részén dolgozhatsz anélkül, hogy bármi mást befolyásolnál.
Ez akkor is igaz, ha többen dolgoznak ugyanazon a fájlon – az USD másik nagy erőssége. Tíz ember dolgozhat ugyanazon a fájlon, így az első művész által végrehajtott változtatások azonnal láthatóvá válnak a második művész számára, lehetővé téve számukra, hogy munkájukat ennek megfelelően igazítsák. Az, hogy távolról is együtt tudsz működni emberekkel, hihetetlenül hatékony.
A 3D munkafolyamatok jövője
Nyugodtan kijelenthetjük, hogy az USD sokkal több, mint egy egyszerű fájlformátum. Ez egy átfogó technológiai platform és ökoszisztéma, amely küldetésében valóban megegyezik a Blenderével: a korlátok nélküli alkotás szabadsága.
Az USD még fejlesztés alatt áll. De az álom valós – egy univerzális szoftver fájlformátum, amely az iparág bármely szoftvere által használható, valós időben szerkeszthető több művész által.
Hálásnak kellene lennünk a Pixarnak, amiért kikövezte az utat ezzel a hihetetlen fejlesztéssel, és az olyan cégeknek, mint az Nvidia és az Apple, amelyek hozzájárulnak a maguk részével.