USD (Universal Scene Description – universalus scenos aprašymas) yra failo formatas, kurį „Pixar“ sukūrė 3D kompiuterinės grafikos scenoms keistis tarp skaitmeninio turinio kūrimo programų. Tai išplečiamas atvirojo kodo failo formatas, kuriame galima saugoti informaciją apie 3D geometriją, šešėliavimą, apšvietimą, fiziką ir kitas su grafika susijusias sritis. Jis taip pat gali komponuoti ir pakeisti duomenis iš kelių šaltinių, sukuriant vieną scenos grafą, kurį galima redaguoti nedestruktyviai.
USD naudojamas daugelyje pramonės šakų, tokių kaip dizainas, architektūra, animacija ir žaidimai, ir jį palaiko daugelis programų, tokių kaip „Blender“, „Cinema 4D“, „Houdini“, „Maya“ ir „Apple SceneKit“. USD taip pat yra „Pixar“ 3D grafikos konvejerio pagrindas ir „Nvidia Omniverse“ platformos pagrindas.
Universalaus scenos aprašymo (USD) specifikacijoje naudojami keli failų formatai:
- .usd – gali būti koduojamas ASCII arba dvejetainiu kodu
- .usda – koduojamas ASCII
- .usdc – koduojamas dvejetainiu kodu
- .usdz – paketo failas, suformatuotas kaip nulinio suspaudimo, nešifruotas zip archyvas. Gali būti .usd, .usda, .usdc, .png, .jpeg, .m4a, .mp3 ir .wav failai.
„Blender“ (ar bet kuri kita 3D programinė įranga) palengvina jūsų gyvenimą, leisdama atlikti daug užduočių naudojant tik savo sąsają, tačiau, kai pradedate įvesti kitą programinę įrangą į savo darbo eigą, problemos pradeda kilti iš visų pusių. Taigi pakalbėkime apie didžiausias problemas, su kuriomis, tikėtina, jau susiduriate šiandien, ir apie tai, kaip „Pixar“ sukūrė sprendimą joms įveikti iki begalybės ir tolyn.
Problema
Jei kada nors tekstūravote modelį „Substance“, importavote savo darbą į „Unreal“ ar bandėte dalytis projektu su kuo nors, kas dirba su kita programine įranga, tikriausiai supratote, koks erzinantis tai gali būti. Būtinybė tvarkytis su skirtingais failų tipais, tinkamomis eksportavimo darbo eigomis kiekvienai atskirai programinei įrangai ir brangių duomenų praradimas procese gali priversti jus jaustis taip, tarsi tyčia nuolat trankytumėtės galva į sieną.
Ir patikėkite manimi, kai sakau, kad tai patiria visi 3D menininkai visur – nesvarbu, ar dirbate kaip solo kūrėjas su savo pasirinktine darbo eiga, ar didelėje studijoje, tokioje kaip „Pixar“, kur reikia laikytis griežtų konvejerio apribojimų, kad būtų išlaikyta tinkama darbo eiga visiems kitiems 1 232 ten dirbantiems žmonėms. Problema išlieka ta pati.
Kodėl taip vyksta
Vis dėlto tai logiška, tiesa? Kiekviena programinė įranga naudoja patentuotą failo tipą, kuris tinka jos poreikiams. Taigi, pavyzdžiui, failas iš „Blender“ buvo sukoduotas dirbti „Blender“, bet ne „Substance“. Akivaizdu, kad įmonėje kiekvienam menininkui reikia, kad failas būtų suderinamas su jo paties pasirinkta priemone, kad būtų lengva, o kartais net įmanoma tęsti darbą su projektu.
Štai kodėl, pereinant prie kitos programinės įrangos arba perduodant savo projektą kitam asmeniui, būtina eksportuoti į universalesnį failo tipą, tokį kaip FBX arba OBJ. Bet net ir šie failų tipai turi daug apribojimų, pavyzdžiui, negalėjimą tinkamai saugoti modeliavimų, apšvietimo ir daugelio kitų jūsų „Blender“ projektų aspektų.
Pristatome USD
Taigi, koks yra šios problemos sprendimas? Universal Scene Description (USD), trumpiau tariant! Pirmą kartą „Pixar“ 2016 m. paskelbta kaip atvirojo kodo programinė įranga, kaip jų naujas pagrindinis konvejeris, USD daugiausia buvo būdas jų menininkams palengvinti duomenų perkėlimą tarpusavyje ir naudojamų įrankių.
Nuo išleidimo USD nuolat patiria pakeitimus ir patobulinimus, o tai yra įprasta atvirojo kodo programinei įrangai, tokiai kaip „Blender“, kuri taip pat nuolat atnaujinama ir plečiama.
Kas yra USD?
USD yra daug dalykų, ir jei aš pasigilinsiu į tai, tai iš tikrųjų gali būti labai techniškas ir sudėtingas dalykas apibūdinti. Bet jei paprasčiau, USD yra būdas priversti tokias programas kaip „Blender“, „Unreal“, „Houdini“, „Substance“, „Maya“, „Nvidia Omniverse“ ir daugybę kitų kalbėtis ir suprasti vienai kitą.
Kompiuterių pramonėje iš tikrųjų yra išgalvotas žodis tam – sąveikumas. Kaip ir sunku ištarti! Tačiau, kad ir kaip įmantriai tai skambėtų, tai iš tikrųjų nėra taip sudėtinga, kaip galėtumėte pagalvoti. Jūs galite pradėti jį naudoti šiandien savo kompiuteryje ar net su keliais draugais ar kolegomis visame pasaulyje.
Kuo USD skiriasi
Tradiciškai konvejeris yra labai vienakryptis dalykas, kai kiekvienas žmogus gali dirbti su kažkuo tik tada, kai ankstesnis žmogus baigia. Arba asmeniškai jūs galite pereiti prie kito proceso etapo, pavyzdžiui, tekstūravimo, tik tada, kai modeliavimas yra visiškai baigtas.
Galėtumėte tai palyginti su torto kepimu – kai statote ir kuriate šį tortą, turite baigti kiekvieną etapą, prieš pradėdami kitą. Negalite kepti torto, kol neišminkysite tešlos, ir negalite jo pastatyti, kol neiškepsite biskvitų orkaitėje. Kiekvienas etapas priklauso nuo to, ar ankstesnis yra baigtas.
Dar svarbiau, kai užtepate glajų ir įdarą arba nusprendžiate, kad biskvitas turi būti šokoladinis, atgal kelio nebėra. Negalite atkepti torto, pakeisti skonį į vanilinį ar nuimti glajaus. Ir tai mes vadiname destruktyvia darbo eiga.
Tačiau USD labiau primena „Lego“. Kiekvienas blokelis vaizduoja 3D scenos dalį – personažus, objektus, aplinką, ką tik norite – ir jūs galite surinkti, išardyti ir modifikuoti šiuos blokelius nepriklausomai.
Tradiciniame konvejeryje pakeitus vieną blokelį, reikėtų pritaikyti likusią struktūros dalį. Tačiau su USD su kiekvienu statybiniu blokeliu galima dirbti nepriklausomai, ir aš galiu tiesiog pakeisti vieno blokelio spalvą, pavyzdžiui, į kitą, nereikalaujant perstatyti viso modelio.
Tai yra nedestruktyvus požiūris, leidžiantis eksperimentuoti ir bendradarbiauti darbo eigose, neapsunkinant konvejerio apribojimų.
USD tikslas
Viso to su USD tikslas yra sukurti būdą duomenims laisvai judėti tarp programų, suteikti menininkams ir komandoms laisvę susitelkti į kūrimą, o ne į eksportavimą ir įstrigimą laukiant vieniems kitų, kad galėtų tęsti darbą. Menininkai neturėtų pradėti iš naujo, jei koncepcijos komanda nusprendžia vėliau pakeisti dalykus. Ir neturėtų būti problemų dėl failų formatų, atkeliaujančių iš kitų programų, neveikiančių jūsų pasirinktoje programinėje įrangoje.
Paslaugų lygiu USD atrodo būtent taip – labai sąveikus failų formatas, kuriuo lengva keistis tarp skirtingų programų. Ir, tiesą sakant, daugeliui „Blender“ vartotojų tai ir bus, nes daugelis iš mūsų linkę dirbti pavieniui. Tačiau USD yra daugiau nei tik failo tipas…
Tai būdas surinkti ir sutvarkyti bet kokį kiekį išteklių į virtualius rinkinius, scenas, kadrus ir pasaulius – naudojant juos iš programos į programą ir nedestruktyviai redaguojant juos dažnai realiuoju laiku.
Kaip dirbti su USD
Taigi pažiūrėkime, kaip galime dirbti su USD „Blender“ darbo eigoje. Pačia paprasčiausia forma USD yra eksportavimo parinktis „Blender“ nuo 3.6 versijos. Taigi, jei turite failą, su kuriuo dirbate, ir norite jį išsaugoti kaip USD failą, galite eiti į File > Export > Universal Scene Description, ir jums bus pateiktas raginimo langas failui išsaugoti.
Jis turi nemažai parinkčių, bet pagrindinės, į kurias reikia atkreipti dėmesį, yra:
- Selection Only – eksportuos tik pasirinktus objektus
- Animation and Hair – įtrauks / neįtrauks animacijos ir plaukų dalelių duomenų jūsų objektams
Štai puikus pavyzdys, kaip veikia USD. Tai failas iš „Nvidia“ USD pavyzdžių bibliotekos, sukurtas įvairiose programinėse įrangose, tokiose kaip „3ds Max“ ir „Substance“. Jei atidarysite jį „Blender“ importuodami, jis veikia beveik 100 % iš karto!
Kaip matote, jame yra visi duomenys, įskaitant šviesas, lauko gylį, kamerą, medžiagas ir daug daugiau. Vienintelis dalykas, kuris neeksportuojamas tinkamai, yra HDRI apšvietimas, kurį turime nustatyti patys. Bet neįtikėtina pagalvoti, kad jis atrodo beveik identiškai „3DS Max“ „Arnold“ rendereryje ir tiesiog buvo eksportuotas į „Blender“ ir veikia taip pat gerai naudojant vieną failo tipą!
Jis turi tinkamą hierarchiją, medžiagas ir iš esmės viskas yra nustatyta. Tai tikrai labai šaunu! Bet kokiu atveju, tai parodo, kaip USD veikia tarp skirtingų programų ir kad jis veikia kaip sąveikus failų formatas.
Praktinis USD pavyzdys
Bet pažvelkime į praktiškesnį pavyzdį. Šiam konvejerio pavyzdžiui naudosiu tipinę darbo eigą, kai naudojamas „Blender“ modeliui žaidimui modeliuoti.
Tradicinis konvejeris atrodytų maždaug taip:
- Sukurkite modelį „Blender“
- Išvyniokite UV modelį
- Eksportuokite kaip FBX, nes „Painter“ negali naudoti „Blender“ failų
- Importuokite FBX į „Substance Painter“
- Pridėkite medžiagų „Substance“
- Eksportuokite tekstūras kaip vaizdus
- Importuokite FBX į žaidimų variklį
- Nustatykite tekstūras rankiniu būdu
- Kurkite renderius
Su USD galime žymiai supaprastinti šį procesą ir išlaikyti daugiausia nedestruktyvią darbo eigą. Konvejeris išlieka labai panašus, o pagrindiniai komponentai yra „Blender“ ir „Substance“.
Bet kadangi USD natūraliai neveikia realiuoju laiku tarp šių programų (daugiausia dėl to, kad „Blender“ vis dar turi ribotą USD palaikymą), aš naudosiu „Nvidia Omniverse“, kad sukurtume tą ryšį už mus.
Per „Omniverse“ galiu gauti prieigą prie labiau su USD suderinamos „Blender“ šakos, kurią sukūrė „Nvidia“. Galiu įjungti „Omniverse“ jungtį „Substance Painter“, kad realizuočiau „LifeLink“. Ir galiu naudoti USD „Composer“, kad užpildyčiau spragą tarp programų ir peržiūrėčiau galutinį produktą.
Kai tai nustatysime, dabar galime atidaryti savo „Blender“ projektą pasirinktinėje „Blender“ šakoje. Jei tada paspausime N ir nueisime į dešinę pusę, čia gausime „Nucleus“ priedą, leidžiantį mums eksportuoti tai kaip USD failą.
Jei tada eisime į USD „Composer“ ir atidarysime tą USD failą, gausime tam tikrą tiesioginį ryšį tarp programų. Dabar galiu padaryti bet kokį tinklelio pakeitimą, jį iš naujo eksportuoti ir automatiškai jį paimti USD „Composer“ viduje.
Dar geriau! Kai importuosime modelį, galime atidaryti „Substance Painter“, įjungti „Omniverse“ jungtį ir eiti į „Import Mesh“, kad automatiškai importuotume savo objektą iš USD „Composer“ į „Substance“. Šiuo metu, jei darysime pakeitimus „Blender“, vis tiek galime iš naujo eksportuoti ir paimti tai USD „Composer“, kuris automatiškai jungiasi prie „Substance Painter“.
Tačiau, kai pridėsime tekstūras „Substance Painter“ viduje, pakartotinai tai darydami pašalinsite tas tekstūras. Taigi, kai būsite patenkinti, pridėkite savo medžiagas „Substance Painter“ ir, kai „Life Link“ bus įjungtas, jos automatiškai pasirodys USD „Composer“.
Bet kokie tada atliekami pakeitimai automatiškai eksportuojami ir atnaujinami USD „Composer“. Tikrai, tikrai šaunu!
Man ši darbo eiga yra tiesiog pribloškianti. Galimybė daryti pakeitimus „Blender“ ir „Substance Painter“ realiuoju laiku ir turėti visa tai automatiškai veikiant toliau ir atsispindint galutiniame rendere yra kažkas kito.
Jei norite išbandyti viską, ką gali pasiūlyti „Nvidia Omniverse“, galite ją atsisiųsti nemokamai per nuorodą aprašyme. O jei norite sužinoti daugiau apie visus techninius naudojimo atvejus, kuriuos USD ir „Omniverse“ kartu suteikia, galite rasti dar vieną nemokamą atsisiuntimo nuorodą, taip pat nuorodą dalyvauti atvirose USD dienos sesijose virtualiai arba asmeniškai GTC kovo mėnesį.
Aš tikrai rekomenduoju tai patikrinti, nes tai tikrai 3D darbo eigų ateitis.
Daugiau apie USD
Be šio smagaus pavyzdžio, USD turi daug daugiau ką pasiūlyti. Ir jei gerai išnaudosite jo galimybes, tapsite daug efektyvesnis kaip menininkas. Taigi, ką dar jis gali daryti?
Na, be to, kad universalus failų formatas palengvintų jūsų gyvenimą, tai absoliučiai yra ateitis. Nuo 2023 m. rugpjūčio mėn. USD tapo oficialia ne pelno organizacija, vadinama „The Alliance of Open USD“ (AO USD) trumpiau – su „Pixar“, „Apple“, „Adobe“, „Autodesk“ ir „Nvidia“ kaip įkūrėjomis narėmis.
Manau, tai tikrai parodo, kaip šios įmonės yra investavusios ir kaip jos tikrai mato tai kaip sąveikaus failų formato ateitį – kurią kiekvienas turėtų galėti naudoti labai lengvai.
Be to, kad yra failų formatas, USD saugo beveik viską – nuo šviesų ir kamerų iki modeliavimo talpyklų ir scenos duomenų – sluoksninę struktūrą, vadinamą „prim“ (trumpinys nuo primityvai). Jame yra visi tie duomenys, skirti aprašyti sudėtingas scenas ir išteklius formatu, skaitomu įvairioms programoms.
Dabar žinant tai, pavadinimas „Universal Scene Description“ iš tikrųjų tampa daug prasmingesnis!
Jei esate susipažinę su „Blender“ kolekcijomis, USD veikia panašiai. Galite įdėti bet ką į kelias įdėtas kolekcijas su papildoma nauda, kad USD visas šias sluoksnius traktuoja kaip egzempliorius. Todėl jis gali labai greitai įkelti ir nuskaityti visus duomenis optimizuotu būdu.
Tai veikia panašiai kaip egzempliorių kolekcijos „Blender“, o tai yra gerai, nes egzemplioriams reikia mažiau skaičiavimo galios nei faktiniams objektų dublikatams. Tai taip pat labai panašu į išankstinį komponavimą „After Effects“ arba jungimą „Nuke“ – jūs iš esmės grupuojate dalykus į įdėtas grupes / sluoksnius, o tai palengvina ir pagreitina kompiuteriui darbą su failu.
Puikus šios optimizacijos pavyzdys yra naujausias „Nvidia“ USD pavyzdinis projektas, vadinamas „Da Vinci’s Workshop“. Naudodamas jų USD „Composer“ programą (kuri puikiai tinka peržiūrėti USD projektus su realaus laiko apšvietimu), galiu atkurti šią masyvią 67 GB išteklių, tekstūrų ir šviesų biblioteką su milijonais poligonų beveik 120 FPS be jokių lag’ų ar problemų. Tai įmanoma dėl to, kaip efektyviai USD įkelia failus ir tekstūras itin optimizuotu būdu.
Panašiai ir animacijoms, kurios anksčiau buvo eksportuojamos kaip „Alembic“ failai, USD talpykla dabar yra daug greitesnė. „Alembic“ failai paprastai yra didžiuliai, labai neoptimizuoti ir lėtai skaitomi jūsų kompiuterio – paprastai dėl to gaunamas trūkčiojantis atkūrimas. Su USD pasiekti stabilų FPS nėra jokia problema, o failo dydis yra daug mažesnis.
Daugiau privalumų
Kitas tikrai šaunus bruožas yra tai, kad galite lengvai pasiekti sluoksnius USD projekte iš išorės. Pavyzdžiui, jei USD faile yra „prim“ sluoksnis, kuriame yra duomenys, kad sfera yra žalia, tiesiog pakeisdami tą spalvą į raudoną USD suderinamame redaktoriuje, tokiame kaip USD „Composer“, galime pakeisti sferos spalvą neatidarydami failo „Blender“! Tai yra neįtikėtinai galinga.
Nors tai akivaizdžiai yra paprastas pavyzdys, jis parodo potencialą. Kitas didelis privalumas yra tai, kad USD vis dar leidžia jums dirbti tik su vienu sudėtingo failo sluoksniu tam tikroje programinėje įrangoje. Taigi, net jei jūsų faile yra visas projektas su kameromis, šviesomis ir t. t., jūs vis tiek galite atidaryti tik vieną jo dalį – pavyzdžiui, vieną modelį – „Substance Painter“ viduje ir dirbti tik su ta projekto dalimi, nepaveikdami nieko kito.
Tai taip pat galioja, jei su tuo pačiu failu dirba keli žmonės – dar vienas pagrindinis USD stiprumas. Dešimt žmonių galėtų dirbti su tuo pačiu failu, todėl pirmojo menininko padaryti pakeitimai iš karto matomi antram menininkui, leidžiant jiems atitinkamai pritaikyti savo darbą. Galimybė bendradarbiauti su žmonėmis nuotoliniu būdu yra neįtikėtinai galinga.
3D konvejerių ateitis
Galima drąsiai teigti, kad USD yra daug daugiau nei tik failų formatas. Tai visapusiška technologijų platforma ir ekosistema, kuri savo misija tikrai dera su „Blender“: laisvė kurti be apribojimų.
USD vis dar kuriama. Svajonė yra reali – universalus programinės įrangos failų formatas, tinkamas naudoti bet kuriai pramonės šakos programinei įrangai, redaguojamas realiuoju laiku kelių menininkų.
Turėtume būti dėkingi „Pixar“ už tai, kad jie nutiesė kelią šiam neįtikėtinam vystymuisi, ir tokioms įmonėms kaip „Nvidia“ ir „Apple“ už jų indėlį.