USD failiformaat 3D jaoks: miks see on nii erakordne

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

USD (Universal Scene Description ehk universaalne stseenikirjeldus) on failiformaat, mille Pixar on välja töötanud 3D-arvutigraafika stseenide vahetamiseks digitaalse sisu loomise rakenduste vahel. See on laiendatav avatud lähtekoodiga failiformaat, mis suudab salvestada teavet 3D-geomeetria, varjutuse, valgustuse, füüsika ja muude graafikaga seotud valdkondade kohta. See võimaldab ka andmeid kombineerida ja alistada mitmest allikast, luues ühtse stseenigraafi, mida saab mitte-destruktiivselt redigeerida.

USD-d kasutatakse paljudes tööstusharudes, nagu disain, arhitektuur, animatsioon ja mängutööstus, ning seda toetavad paljud tarkvararakendused, näiteks Blender, Cinema 4D, Houdini, Maya ja Apple’i SceneKit. USD on ka Pixari 3D-graafika konveieri tuum ja Nvidia Omniverse platvormi alus.

Universaalne stseenikirjeldus (USD) kasutab mitut failiformaati:

  • .usd – võib olla kas ASCII või binaarkodeeringus
  • .usda – ASCII kodeeringus
  • .usdc – binaarkodeeringus
  • .usdz – pakendifail, mis on vormindatud nullkompressiooni ja krüpteerimata ZIP-arhiivina. Võib sisaldada .usd, .usda, .usdc, .png, .jpeg, .m4a, .mp3 ja .wav faile.

Blender (või mis tahes muu 3D-tarkvara) teeb sinu elu lihtsaks, võimaldades sul paljusid ülesandeid teha ainult selle liidese abil, aga kui sa hakkad konveierisse tooma teisi tarkvarasid, hakkavad probleemid üksteise järel tekkima. Räägimegi suurimatest probleemidest, millega sa tõenäoliselt juba praegu kokku puutud, ja sellest, kuidas Pixar on loonud lahenduse nende ületamiseks lõpmatusse ja kaugemalegi.

Video USD failiformaadi kohta, autor KaizenTutorials

Probleem

Kui sa oled kunagi Substance’is mudelile tekstuuri loonud, oma töö Unrealisse importinud või üritanud projekti jagada kellegagi, kes töötab teises tarkvaras, oled sa ilmselt aru saanud, kui tüütu see võib olla. Erinevate failitüüpidega tegelemine, iga tarkvara jaoks sobivate ekspordivoogude loomine ja väärtuslike andmete kaotamine protsessi käigus võib tekitada tunde, et sa taod meelega korduvalt pead vastu seina.

Ja usu mind, kui ma ütlen, et seda kogevad kõik 3D-kunstnikud igal pool – olenemata sellest, kas sa töötad üksinda oma kohandatud konveieriga või suures stuudios nagu Pixar, kus pead järgima rangeid konveieripiiranguid, et säilitada korralik töövoog kõigi ülejäänud 1232 seal töötava inimese jaoks. Probleem jääb samaks.

Miks see juhtub

See on ju loogiline, eks? Iga tarkvara kasutab patenteeritud failitüüpi, mis sobib tema vajadustele. Näiteks Blenderi fail on kodeeritud töötama Blenderis, aga mitte Substance’is. Ilmselgelt vajab ettevõttes iga kunstnik faili, mis ühilduks tema enda valitud tööriistaga, et oleks lihtne ja mõnikord isegi võimalik projektiga tööd jätkata.

Seepärast ongi üleminek universaalsemale failitüübile, nagu FBX või OBJ, kohustuslik, kui vahetad tarkvara või annad oma projekti järgmisele inimesele üle. Aga isegi nendel failitüüpidel on palju piiranguid, näiteks võimetus korralikult salvestada simulatsioone, valgustust ja paljusid muid Blenderi projektide aspekte.

Tutvustame USD-d

Mis on siis vastus sellele probleemile? Universaalne stseenikirjeldus (USD) lühidalt öeldes! Esmakordselt avaldas Pixar 2016. aastal avatud lähtekoodiga tarkvarana oma uue konveieri põhjana USD-d peamiselt selleks, et nende kunstnikel oleks lihtsam andmeid omavahel ja kasutatavate tööriistade vahel liigutada.

Pärast selle avaldamist toimuvad USD-s pidevalt muudatused ja täiendused, mis on avatud lähtekoodiga tarkvara puhul tavaline, nagu ka Blenderi puhul, mida samuti pidevalt uuendatakse ja laiendatakse.

Mis on USD?

USD on palju asju ja kui ma sellesse süvitsi sukeldun, võib selle kirjeldamine olla väga tehniline ja keeruline. Aga kui ma seda lihtsalt selgitan, siis USD on viis, kuidas panna rakendused nagu Blender, Unreal, Houdini, Substance, Maya, Nvidia Omniverse ja paljud teised omavahel suhtlema ja üksteist mõistma.

Arvutitööstuses on selle jaoks tegelikult uhke sõna – koostalitlusvõime. Natuke raske öelda! Kuid nii uhke kui see ka ei kõla, pole see tegelikult nii keeruline, kui sa võiksid arvata. Sa võid seda juba täna oma arvutis kasutama hakata või isegi koos mitme sõbra või kolleegiga üle kogu maailma.

Kuidas USD on erinev

Traditsiooniliselt on konveier väga ühesuunaline asi, kus iga inimene saab millegi kallal töötada alles siis, kui eelmine inimene on lõpetanud. Või sinu enda puhul saad sa minna protsessis järgmise sammu juurde, näiteks tekstuuri loomise juurde, alles siis, kui modelleerimine on täielikult valmis.

Sa võiksid seda võrrelda koogi küpsetamisega – seda kooki ehitades ja luues pead sa iga etapi lõpetama, enne kui saad alustada järgmisega. Sa ei saa kooki küpsetada enne, kui oled taina seganud, ja sa ei saa seda ehitada enne, kui oled koogid ahjus küpsetanud. Iga etapp sõltub eelmisest, mis on lõpetatud.

Veelgi olulisem on see, et kui sa oled kreemi ja täidise peale pannud või otsustanud, et biskviit peaks olema šokolaadine, siis tagasiteed ei ole. Sa ei saa kooki lahti küpsetada, maitset vaniljeks muuta ega kreemi maha võtta. Ja seda me nimetame destruktiivseks töövooguks.

USD on aga rohkem nagu Legod. Iga klots esindab 3D-stseeni osa – tegelased, objektid, keskkonnad, mis iganes – ja sa saad neid klotse iseseisvalt kokku panna, lahti võtta ja muuta.

Traditsioonilises konveieris tähendaks ühe klotsi muutmine kogu ülejäänud struktuuri kohandamist. Aga USD-ga saab iga ehitusklotsi iseseisvalt töödelda ja ma saan näiteks lihtsalt ühe klotsi värvi muuta, ilma et peaks kogu mudelit uuesti üles ehitama.

See on mittedestruktiivne lähenemisviis, mis võimaldab eksperimenteerimist ja koostöövooge, ilma et konveieripiirangud sind takistaksid.

USD eesmärk

USD eesmärk on luua viis, kuidas andmed saaksid vabalt rakenduste vahel liikuda, et anda kunstnikele ja meeskondadele vabadus keskenduda loomingule ja mitte ekspordile ning oodata üksteist, et saaks tööd jätkata. Kunstnikud ei tohiks pidada uuesti alustama, kui kontseptsioonimeeskond otsustab hiljem asju muuta. Ja probleeme ei tohiks olla ka teistest programmidest sisse tulevate failiformaatidega, mis sinu valitud tarkvaras ei tööta.

Teenuse tasandil näib USD olevat seda – väga koostalitlusvõimeline failiformaat, mida on erinevate tarkvarade vahel lihtne vahetada. Ja ausalt öeldes on see enamiku Blenderi kasutajate jaoks nii, kuna paljud meist töötavad üksi. Aga USD on midagi enamat kui lihtsalt failitüüp…

See on viis, kuidas kokku panna ja organiseerida mis tahes arvu varasid virtuaalseteks komplektideks, stseenideks, võteteks ja maailmadeks – kasutades neid rakendusest rakendusse ja mitte-destruktiivselt redigeerides neid sageli reaalajas.

Kuidas USD-ga töötada

Vaatame siis, kuidas me saame USD-ga Blenderi töövoos töötada. Kõige lihtsamal kujul on USD olnud Blenderis ekspordivõimalusena alates versioonist 3.6. Nii et kui sul on fail, millega sa töötad ja soovid selle USD-failina salvestada, võid sa minna File > Export > Universal Scene Description ja see annab sulle akna faili salvestamiseks.

Sellel on päris palju valikuid, aga peamised, mida tasub märkida, on:

  • Selection Only – kaasab ekspordisse ainult valitud objektid
  • Animation and Hair – kaasab/jätab välja objektide animatsiooni ja juukseosakeste andmed

Siin on suurepärane näide sellest, kuidas USD töötab. See on fail Nvidia USD näidisteekist, mis on tehtud paljudes tarkvarades, nagu 3ds Max ja Substance. Kui sa avad selle Blenderis importides, töötab see peaaegu 100% kohe!

Nagu sa näed, sisaldab see kõiki andmeid, sealhulgas valgusteid, teravussügavust, kaamerat, materjale ja palju muud. Ainus asi, mis korralikult eksporditud ei saa, on HDRI valgustus, mille peame ise seadistama. Aga on uskumatu mõelda, et see näeb 3DS Maxi Arnold renderdajas peaaegu identne välja ja see eksporditi just Blenderisse ja töötab sama hästi, kasutades ainult ühte failitüüpi!

Sellel on korralik hierarhia, materjalid ja põhimõtteliselt on kõik seadistatud. See on tõesti, tõesti lahe! Igatahes, see näitab, kuidas USD toimib erinevate rakenduste vahel ja et see toimib koostalitlusvõimelise failiformaadina.

Praktiline USD näide

Aga vaatame praktilisemat näidet. Selle konveierinäite jaoks kasutan ma tüüpilist töövoogu, kus kasutatakse Blenderit objekti modelleerimiseks mängu jaoks.

Traditsiooniline konveier oleks midagi sellist:

  1. Loo mudel Blenderis
  2. UV-paki mudel lahti
  3. Ekspordi FBX-ina, kuna Painter ei saa Blenderi faile kasutada
  4. Impordi FBX Substance Painterisse
  5. Lisa materjalid Substance’is
  6. Ekspordi tekstuurid piltidena
  7. Impordi FBX mängumootorisse
  8. Seadista tekstuurid käsitsi
  9. Loo renderdused

USD-ga saame seda protsessi oluliselt lihtsustada ja säilitada suuresti mittedestruktiivse töövoo. Konveier jääb väga sarnaseks, Blender ja Substance on peamised komponendid.

Aga kuna USD ei tööta loomupäraselt reaalajas nende rakenduste vahel (peamiselt seetõttu, et Blenderil on endiselt piiratud USD tugi), kasutan ma Nvidia Omniverse’i, et see ühendus meie jaoks luua.

Omniverse’i kaudu saan ma juurdepääsu Nvidia loodud Blenderi USD-ühilduvamale harule. Ma saan Substance Painteri jaoks lubada Omniverse’i konnektori, et realiseerida LifeLinki. Ja ma saan kasutada USD Composerit, et ületada lõhe rakenduste vahel ja vaadata lõpptoodet.

Kui see on seadistatud, saame nüüd avada oma Blenderi projekti kohandatud Blenderi haru kaudu. Kui me seejärel vajutame N-i ja läheme paremale küljele, näeme Nucleus lisandmoodulit, mis võimaldab meil seda USD-failina eksportida.

Kui me seejärel läheme USD Composerisse ja avame selle USD-faili, saame omamoodi reaalajaühenduse rakenduste vahel. Ma saan nüüd teha võrgus mis tahes muudatuse, selle uuesti eksportida ja lasta sellel automaatselt USD Composeris üles võtta.

See läheb veel paremaks! Kui me oleme mudeli importinud, saame avada Substance Painteri, lubada Omniverse’i konnektori ja minna Import Mesh, et automaatselt importida meie objekt USD Composerist Substance’isse. Sel hetkel, kui me teeme Blenderis muudatusi, saame seda ikka uuesti eksportida ja lasta sellel USD Composeris üles võtta, mis automaatselt lingib Substance Painteriga.

Aga kui me oleme Substance Painteris tekstuure lisanud, siis uuesti tehes eemaldatakse need tekstuurid. Nii et kui sa oled rahul, lisa oma materjalid Substance Painteris ja kui Life Link on lubatud, ilmuvad need automaatselt USD Composerisse.

Kõik muudatused, mida sa seejärel teed, eksporditakse ja uuendatakse automaatselt USD Composeris. Tõesti, tõesti lahe!

Minu jaoks on see töövoog üsna vapustav. Võimalus teha muudatusi Blenderis ja Substance Painteris reaalajas ning lasta sellel kõigel automaatselt konveieri lõpuni töötada ja lõpprenderdusena kajastuda on midagi muud.

Kui sa oled huvitatud proovima kõike, mida Nvidia Omniverse pakub, saad sa selle tasuta alla laadida lingilt, mis on kirjelduse all. Ja kui sa soovid rohkem teada saada kõigi tehniliste kasutusjuhtumite kohta, mida USD ja Omniverse koos pakuvad, leiad sa veel ühe tasuta allalaadimislingi selle jaoks, samuti lingi, et osaleda virtuaalselt või isiklikult avatud USD päeva sessioonidel märtsis GTC-l.

Ma soovitan seda kindlasti vaadata, sest see on tõesti 3D-töövoogude tulevik.

Rohkem USD kohta

Lisaks sellele lõbusale näitele on USD-l palju rohkem pakkuda. Ja kui sa kasutad hästi ära selle võimalusi, muutud sa kunstnikuna palju tõhusamaks. Mida see veel teha suudab?

Noh, peale selle, et universaalne failiformaat teeks sinu elu palju lihtsamaks, on see absoluutselt tulevik. Alates 2023. aasta augustist on USD-st saanud ametlik mittetulundusühing nimega The Alliance of Open USD (AO USD) lühidalt öeldes – mille Pixar, Apple, Adobe, Autodesk ja Nvidia on asutajaliikmed.

Ma arvan, et see näitab tõesti, kui palju need ettevõtted on panustanud ja kuidas nad tõesti näevad seda koostalitlusvõimelise failiformaadi tulevikuna – mida kõik peaksid saama väga lihtsalt kasutada.

Lisaks failiformaadile salvestab USD peaaegu kõike – alates valgustitest ja kaameratest kuni simulatsioonimälu ja stseenide andmeteni – kihilise struktuurina, mida nimetatakse “primideks” (lühidalt primitiivid). See sisaldab kõiki neid andmeid keerukate stseenide ja varade kirjeldamiseks formaadis, mida loevad paljud rakendused.

Nüüd, kui seda teada, on nimi “Universal Scene Description” tegelikult väga loogiline!

Kui sa oled tuttav Blenderi kogudega, töötab USD sarnaselt. Sa saad midagi pesastada mitmesse pesastatud kogusse, lisahüvega, et USD käsitleb kõiki neid kihte instantsidena. Seetõttu suudab see väga kiiresti laadida ja lugeda kõiki andmeid optimeeritud viisil.

See töötab sarnaselt kollektsioonide instantsimisele Blenderis, mis on hea, sest instantsid nõuavad vähem arvutusvõimsust kui tegelikud duplikaatobjektid. See sarnaneb ka After Effectsi eelekompositsiooniga või Nuke’i kompositsiooniga – sa põhimõtteliselt grupeerid asju pesastatud gruppidesse/kihtidesse, mis muudab failiga töötamise arvuti jaoks lihtsamaks ja kiiremaks.

Suurepärane näide sellest optimeerimisest on Nvidia uusim USD näidisprojekt nimega “Da Vinci’s Workshop”. Kasutades nende USD Composer rakendust (mis sobib ideaalselt USD projektide vaatamiseks reaalaja valgustusega), saan ma taasesitada seda massiivset 67 GB suurust varade, tekstuuride ja valgustite teeki miljonite polügoonidega peaaegu 120 FPS-iga ilma igasuguse viivituseta või probleemideta. See on võimalik tänu sellele, kui tõhusalt USD laadib failid ja tekstuurid äärmiselt optimeeritud viisil.

Samamoodi on animatsioonide puhul, mida varem eksporditi Alembic failidena, USD vahemällu salvestamine nüüd palju kiirem. Alembic failid on tavaliselt tohutult suured, väga optimeerimata ja arvuti loeb neid aeglaselt – tavaliselt on tulemuseks katkendlik taasesitus. USD-ga ei ole stabiilse FPS-i saavutamine üldse probleem ja faili suurus on palju väiksem.

Rohkem eeliseid

Veel üks väga lahe omadus on see, et sa saad hõlpsasti juurdepääsu oma USD projekti kihtidele väljaspool faili. Näiteks kui USD failis on primikiht, mis sisaldab andmeid selle kohta, et kera on roheline, siis lihtsalt muutes seda värvi punaseks USD-ühilduvas redaktoris nagu USD Composer, saame muuta kera värvi ilma faili Blenderis avamata! See on juba uskumatult võimas.

Kuigi see on ilmselgelt lihtne näide, näitab see potentsiaali. Teine peamine eelis on see, et USD võimaldab sul ikkagi töötada ainult keeruka faili ühe kihiga teatud tarkvaras. Nii et isegi kui sinu fail sisaldab terviklikku projekti koos kaamerate, valgustite jne-ga, saad sa ikkagi avada ainult ühe osa sellest – näiteks ühe mudeli – Substance Painteris ja töötada ainult selle projekti osaga, ilma et see midagi muud mõjutaks.

See kehtib ka juhul, kui mitu inimest töötavad sama faili kallal – mis on USD teine peamine tugevus. Kümme inimest võiksid töötada sama faili kallal, nii et kunstniku number üks tehtud muudatused on kohe nähtavad kunstnikule number kaks, võimaldades neil oma tööd vastavalt kohandada. Võimalus teha koostööd inimestega eemalt on uskumatult võimas.

3D-konveierite tulevik

Võib julgelt öelda, et USD on palju enamat kui lihtsalt failiformaat. See on terviklik tehnoloogiaplatvorm ja ökosüsteem, mis oma missioonilt on tõesti Blenderiga samal joonel: vabadus luua ilma piiranguteta.

USD on veel arendusjärgus. Unistus on reaalne – universaalne tarkvara failiformaat, mida saab kasutada mis tahes tarkvara tööstuses ja mida mitu kunstnikku saab reaalajas redigeerida.

Me peaksime kõik tänulikud olema Pixarile, kes on selle uskumatu arendusega teed sillutanud, ja ettevõtetele nagu Nvidia ja Apple, kes on oma osa andnud.

Leave a comment

Sinu e-postiaadressi ei avaldata. Nõutavad väljad on tähistatud *-ga