USD-tiedostomuoto 3D-grafiikassa: Miksi se on niin mahtava

Kategoria(t): 3D, Open Source Avainsanat: , , , , , , ,
Save and Share:

USD (Universal Scene Description eli universaali kohtauskuvaus) on Pixarin kehittämä tiedostomuoto 3D-grafiikkakohtausten vaihtoon digitaalisen sisällönluontisovellusten välillä. Se on avoimen lähdekoodin, laajennettava tiedostomuoto, joka voi tallentaa tietoa 3D-geometriasta, varjostuksesta, valaistuksesta, fysiikasta ja muista grafiikkaan liittyvistä osa-alueista. Se voi myös yhdistää ja ohittaa dataa useista lähteistä luoden yhden yhtenäisen kohtauskaavion, jota voidaan muokata non-destruktiivisesti.

USD:tä käytetään monilla teollisuudenaloilla, kuten suunnittelussa, arkkitehtuurissa, animaatioissa ja pelialalla, ja sitä tukevat monet ohjelmistosovellukset, kuten Blender, Cinema 4D, Houdini, Maya ja Applen SceneKit. USD on myös Pixarin 3D-grafiikkaputken ydin ja Nvidian Omniverse-alustan perusta.

Universal Scene Description (USD) -määrittely käyttää useita tiedostomuotoja:

  • .usd – Voi olla joko ASCII- tai binäärikoodattu
  • .usda – ASCII-koodattu
  • .usdc – Binäärikoodattu
  • .usdz – Pakattu tiedosto, joka on muotoiltu nollakompressioiseksi, salaamattomaksi zip-arkistoksi. Voi sisältää .usd-, .usda-, .usdc-, .png-, .jpeg-, .m4a-, .mp3- ja .wav-tiedostoja.

Blender (tai mikä tahansa muu 3D-ohjelmisto) helpottaa elämääsi antamalla sinun tehdä paljon tehtäviä pelkästään sen käyttöliittymän avulla, mutta kun alat tuoda muita ohjelmistoja putkeesi, ongelmia alkaa ilmestyä joka puolelta. Joten puhutaanpa suurimmista ongelmista, joihin todennäköisesti jo törmäät nykyään, ja kuinka Pixar on luonut ratkaisun niiden voittamiseksi loputtomiin ja sen yli.

KaizenTutorialsin video USD-tiedostomuodosta

Ongelma

Jos olet koskaan teksturoinut mallia Substancessa, tuonut työsi Unreal Engineen tai yrittänyt jakaa projektia jonkun kanssa, joka työskentelee eri ohjelmistossa, olet todennäköisesti tajunnut, kuinka ärsyttävää se voi olla. Eri tiedostotyyppien kanssa painiminen, asianmukaiset vientityönkulut jokaiselle erilliselle ohjelmistolle ja arvokkaan datan menettäminen prosessissa voivat saada sinut tuntemaan, että hakkaat päätäsi seinään ihan tahallasi.

Ja usko minua, kun sanon, että tämä on jotain, jonka kaikki 3D-taiteilijat kaikkialla kokevat – työskenteletpä sitten yksinyrittäjänä omalla mukautetulla putkellasi tai suuressa studiossa, kuten Pixarissa, joutuen noudattamaan tiukkoja putkirajoituksia ylläpitääksesi asianmukaista työnkulkua kaikille muille 1232 siellä työskentelevälle henkilölle. Ongelma pysyy samana.

Miksi näin tapahtuu

Se on kyllä ymmärrettävää, eikö? Jokainen ohjelmisto käyttää omaa, patentoitua tiedostotyyppiä, joka toimii sen tarpeisiin. Joten esimerkiksi Blenderistä peräisin oleva tiedosto on koodattu toimimaan Blenderissä, mutta ei Substancessa. On selvää, että yrityksessä jokainen taiteilija tarvitsee tiedoston, joka on yhteensopiva hänen oman työkalunsa kanssa, jotta työn jatkaminen projektin parissa olisi helppoa ja joskus edes mahdollista.

Siksi vienti yleisempään tiedostotyyppiin, kuten FBX tai OBJ, on välttämätöntä, kun vaihdetaan eri ohjelmistoon tai annetaan projekti eteenpäin seuraavalle henkilölle. Mutta jopa näillä tiedostotyypeillä on paljon rajoituksia, kuten kyvyttömyys tallentaa kunnolla simulaatioita, valaistusta ja monia muita Blender-projektiesi aspekteja.

Esittelyssä USD

Mikä sitten on vastaus tähän ongelmaan? Universal Scene Description (USD) lyhyesti sanottuna! Pixar julkaisi USD:n avoimen lähdekoodin ohjelmistona vuonna 2016 uutena ydinputkenaan. Se oli pääasiassa tapa heidän taiteilijoilleen helpottaa datan siirtämistä toistensa ja heidän käyttämiensä työkalujen välillä.

Julkaisunsa jälkeen USD on jatkuvasti muutosten ja parannusten kohteena, mikä on yleistä avoimen lähdekoodin ohjelmistoille, aivan kuten Blender, jota myös päivitetään ja laajennetaan jatkuvasti.

Mikä USD on?

USD on monenlaista, ja jos sukellan siihen todella syvälle, se voi itse asiassa olla hyvin tekninen ja monimutkainen asia kuvailla. Mutta yksinkertaistaen, USD on tapa saada sovellukset, kuten Blender, Unreal, Houdini, Substance, Maya, Nvidia Omniverse ja monet muut, puhumaan ja ymmärtämään toisiaan.

Tietokoneteollisuudessa tälle on itse asiassa hieno sana – yhteentoimivuus. Vähän vaikea sanoa! Kuinka hienolta se kuulostaakin, se ei itse asiassa ole niin monimutkaista kuin ehkä luulet. Voit aloittaa sen käytön tänään omalla tietokoneellasi tai jopa useiden ystävien tai kollegoiden kanssa ympäri maailmaa.

Miten USD eroaa

Perinteisesti putki on hyvin yksisuuntainen asia, jossa jokainen henkilö pääsee työskentelemään jonkin asian parissa vasta, kun edellinen henkilö on valmis. Tai henkilökohtaisesti sinä voit siirtyä prosessin seuraavaan vaiheeseen, kuten teksturointiin, vasta kun mallinnus on täysin valmis.

Voit verrata tätä kakun leipomiseen – kun rakennat ja luot tätä kakkua, sinun on saatava valmiiksi jokainen vaihe ennen kuin voit aloittaa seuraavan. Et voi leipoa kakkua ennen kuin sekoitat taikinan, etkä voi rakentaa sitä ennen kuin leivot pohjat uunissa. Jokainen vaihe on riippuvainen edellisen vaiheen valmistumisesta.

Mikä vielä tärkeämpää, kun olet laittanut kuorrutteen ja täytteen tai päättänyt, että kakkupohjan pitäisi olla suklaata, ei ole paluuta entiseen. Et voi ”leipoa kakkua pois”, muuttaa makua vaniljaksi tai ottaa kuorrutetta pois. Ja tätä me kutsumme destruktiiviseksi työnkuluksi.

USD on kuitenkin enemmän kuin Legoja. Jokainen palikka edustaa osaa 3D-kohtauksesta – hahmoja, esineitä, ympäristöjä, mitä tahansa – ja voit koota, purkaa ja muokata näitä palikoita itsenäisesti.

Perinteisessä putkessa yhden palikan muuttaminen edellyttäisi koko rakenteen säätämistä. Mutta USD:ssä jokaisen rakennuspalikan parissa voidaan työskennellä itsenäisesti, ja voin yksinkertaisesti vaihtaa yhden palikan eri väriin tarvitsematta rakentaa koko mallia uudelleen.

Se on non-destruktiivinen lähestymistapa, joka mahdollistaa kokeilun ja yhteistyötyönkulut ilman, että putkirajoitukset jarruttavat.

USD:n tavoite

USD:n tavoitteena kaikessa tässä on luoda tapa siirtää dataa sovellusten välillä vapaasti, antaa taiteilijoille ja tiimeille vapaus keskittyä luomiseen eikä vientiin ja odottamaan toisiaan, jotta työn jatkaminen olisi mahdollista. Taiteilijoiden ei pitäisi joutua aloittamaan alusta, jos konseptitiimi päättää muuttaa asioita myöhemmin prosessissa. Eikä tiedostomuotojen kanssa pitäisi olla ongelmia, kun muista ohjelmista tulevat tiedostot eivät toimi valitsemassasi ohjelmistossa.

Palvelutasolla USD näyttää olevan tätä – erittäin yhteentoimiva tiedostomuoto, jota on helppo vaihtaa eri ohjelmistojen välillä. Ja rehellisyyden nimissä tämä se on useimmille Blender-käyttäjille, koska monet meistä työskentelevät yleensä yksin. Mutta USD on enemmän kuin vain tiedostotyyppi…

Se on tapa koota ja järjestää minkä tahansa määrän resursseja virtuaalisiksi lavasteiksi, kohtauksiksi, otoksiksi ja maailmoiksi – käyttäen niitä sovelluksesta sovellukseen ja muokaten niitä non-destruktiivisesti usein reaaliajassa.

Miten USD:n kanssa työskennellään

Katsotaanpa siis, miten voimme työskennellä USD:n kanssa Blender-työnkulussa. Yksinkertaisimmillaan USD on ollut vientivaihtoehto Blenderissä versiosta 3.6 lähtien. Joten jos sinulla on tiedosto, jonka parissa työskentelet ja haluat tallentaa sen USD-tiedostona, voit mennä kohtaan Tiedosto > Vie > Universal Scene Description (.usd) ja se antaa sinulle ponnahdusikkunan tiedoston tallentamista varten.

Siinä on melko paljon vaihtoehtoja, mutta tärkeimmät ovat:

  • Vain valitut – Sisällyttää vientiin vain valitut objektit
  • Animaatio ja hiukset – Sisällyttää/jättää pois animaatio- ja hiukkashiustiedot objekteistasi

Tässä on loistava esimerkki siitä, miten USD toimii. Tämä on tiedosto Nvidian USD-näytekirjastosta, joka on tehty useissa ohjelmistoissa, kuten 3ds Maxissa ja Substancessa. Jos avaat tämän Blenderissä tuomalla sen sisään, se toimii melkein 100-prosenttisesti heti!

Kuten näet, se sisältää kaiken datan, mukaan lukien valot, syväterävyyden, kameran, materiaalit ja paljon muuta. Ainoa asia, joka ei viety kunnolla, on HDRI-valaistus, joka meidän on asetettava itse. Mutta on uskomatonta ajatella, että tämä näyttää melkein identtiseltä 3DS Maxin Arnold-renderöijässä ja se vietiin juuri Blenderiin ja toimii yhtä hyvin yhdellä tiedostotyypillä!

Siinä on asianmukainen hierarkia, materiaalit ja periaatteessa kaikki on asetettu. Se on todella, todella siistiä! Joka tapauksessa tämä osoittaa, miten USD toimii eri sovellusten välillä ja että se toimii yhteentoimivana tiedostomuotona.

Käytännön USD-esimerkki

Mutta katsotaanpa käytännönläheisempää esimerkkiä. Tässä putkiesimerkissä käytän tyypillistä työnkulkua, jossa mallinnan objektin peliin Blenderillä.

Perinteinen putki menisi jotakuinkin näin:

  1. Luo malli Blenderissä
  2. UV-avataan malli
  3. Vie FBX:nä, koska Painter ei voi käyttää Blender-tiedostoja
  4. Tuo FBX Substance Painteriin
  5. Lisää materiaalit Substancessa
  6. Vie tekstuurit kuvina
  7. Tuo FBX pelimoottoriin
  8. Aseta tekstuurit manuaalisesti
  9. Luo renderöinnit

USD:n avulla voimme yksinkertaistaa tätä prosessia merkittävästi ja säilyttää suurelta osin non-destruktiivisen työnkulun. Putki pysyy hyvin samankaltaisena Blenderin ja Substancen ollessa pääkomponentit.

Mutta koska USD ei toimi natiivisti reaaliajassa näiden sovellusten välillä (pääasiassa siksi, että Blenderillä on edelleen rajallinen USD-tuki), käytän Nvidia Omniversea luomaan yhteyden meille.

Omniversen kautta saan käyttööni Nvidian rakentaman USD-yhteensopivamman Blender-haaran. Voin ottaa käyttöön Omniverse-liittimen Substance Painterille toteuttaakseni LifeLinkin. Ja voin käyttää USD Composeria kuromaan umpeen kuilua sovellusten välillä ja katselemaan lopputuotetta.

Tämän asetuksen avulla voimme nyt avata Blender-projektimme mukautetussa Blender-haarassa. Jos painamme sitten N-näppäintä ja menemme oikealle puolelle, saamme Nucleus-lisäosan, jonka avulla voimme viedä tämän USD-tiedostona.

Jos sitten menemme USD Composeriin ja avaamme kyseisen USD-tiedoston, saamme eräänlaisen reaaliaikaisen yhteyden sovellusten välille. Voin nyt tehdä mitä tahansa muutoksia mesh-verkkoon, viedä sen uudelleen ja saada sen automaattisesti poimittua USD Composeriin.

Ja homma paranee! Kun olemme tuoneet mallin, voimme avata Substance Painterin, ottaa käyttöön Omniverse-liittimen ja mennä kohtaan Tuo mesh tuodaksemme objektimme automaattisesti USD Composerista Substance Painteriin. Tässä vaiheessa, jos teemme muutoksia Blenderissä, voimme silti viedä ne uudelleen ja poimia ne USD Composeriin, joka linkittyy automaattisesti Substance Painteriin.

Kuitenkin, kun olemme lisänneet tekstuureja Substance Painterissa, uudelleen tekeminen poistaa kyseiset tekstuurit. Joten kun olet tyytyväinen, lisää materiaalit Substance Painterissa, ja LifeLinkin ollessa käytössä, ne ponnahtavat automaattisesti esiin USD Composeriin.

Kaikki tekemäsi muutokset viedään ja päivitetään sitten automaattisesti USD Composeriin. Todella, todella siistiä!

Minulle tämä työnkulku on melkein tajunnanräjäyttävä. Kyky tehdä muutoksia Blenderissä ja Substance Painterissa reaaliajassa ja saada kaikki tämä toimimaan automaattisesti putkessa ja heijastumaan lopullisessa renderöinnissä on jotain muuta.

Jos olet kiinnostunut kokeilemaan kaikkea, mitä Nvidia Omniversella on tarjota, voit ladata sen ilmaiseksi kuvauksessa olevan linkin kautta. Ja jos haluat oppia lisää kaikista teknisistä käyttötapauksista, joita USD ja Omniverse yhdessä tarjoavat, löydät toisen ilmaisen latauslinkin myös siihen sekä linkin osallistua avoimiin USD-päiväsessioihin virtuaalisesti tai paikan päällä GTC:ssä maaliskuussa.

Suosittelen todella tutustumaan siihen, koska tämä on todella 3D-työnkulkujen tulevaisuus.

Lisää USD:stä

Tämän hauskan esimerkin lisäksi USD:llä on paljon muutakin tarjottavaa. Ja jos hyödynnät sen ominaisuuksia hyvin, sinusta tulee paljon tehokkaampi taiteilijana. Joten mitä muuta se voi tehdä?

No, sen lisäksi, että universaali tiedostomuoto helpottaisi elämääsi paljon, se on ehdottomasti tulevaisuus. Elokuusta 2023 lähtien USD:stä on tullut virallinen voittoa tavoittelematon organisaatio nimeltä The Alliance of Open USD (AO USD) lyhyesti – Pixarin, Applen, Adoben, Autodeskin ja Nvidian ollessa sen perustajajäseniä.

Mielestäni tämä todella osoittaa, kuinka sitoutuneita nämä yritykset ovat ja kuinka he todella näkevät tämän yhteentoimivan tiedostomuodon tulevaisuutena – jonka kaikkien pitäisi voida käyttää erittäin helposti.

Sen lisäksi, että USD on tiedostomuoto, se tallentaa melkein kaiken – valoista ja kameroista simulaatiovälimuisteihin ja kohtaustietoihin – kerrosmaisessa rakenteessa, jota kutsutaan ”primsiksi” (lyhenne sanasta primitives eli primitiivit). Se sisältää kaiken datan monimutkaisten kohtausten ja resurssien kuvaamiseksi muodossa, jonka laaja valikoima sovelluksia voi lukea.

Nyt sen tietäen nimi ”Universal Scene Description” eli ”universaali kohtauskuvaus” itse asiassa onkin paljon järkevämpää!

Jos Blender-kokoelmat ovat sinulle tuttuja, USD toimii samalla tavalla. Voit sisällyttää mitä tahansa useisiin sisäkkäisiin kokoelmiin, ja lisäetuna on, että USD käsittelee kaikkia näitä kerroksia instansseina. Siksi se pystyy lataamaan ja lukemaan kaiken datan erittäin nopeasti ja optimoidusti.

Tämä toimii samalla tavalla kuin instanssikokoelmat Blenderissä, mikä on hyvä asia, koska instanssit vaativat vähemmän laskentatehoa kuin varsinaiset kopio-objektit. Se on myös hyvin samanlainen kuin pre-comping After Effectsissä tai compounding Nukessa – periaatteessa ryhmittelet tavaraa sisäkkäisiin ryhmiin/kerroksiin, mikä tekee tiedoston käsittelystä helpompaa ja nopeampaa tietokoneelle.

Loistava esimerkki tästä optimoinnista on Nvidian uusin USD-näyteprojekti nimeltä ”Da Vinci’s Workshop”. Käyttämällä heidän USD Composer -sovellustaan (joka on täydellinen USD-projektien katseluun reaaliaikaisella valaistuksella), voin toistaa tätä valtavaa 67 Gt:n resurssikirjastoa, joka sisältää resursseja, tekstuureja ja valoja miljoonilla polygoneilla lähes 120 FPS:n nopeudella ilman viivettä tai ongelmia. Tämä on mahdollista siksi, kuinka tehokkaasti USD lataa tiedostot ja tekstuurit erittäin optimoidulla tavalla.

Samoin animaatioille, jotka aiemmin vietiin Alembic-tiedostoina, USD-välimuistiin tallennus on nyt paljon nopeampaa. Alembic-tiedostot ovat yleensä valtavia, erittäin optimoimattomia ja tietokoneesi lukee niitä hitaasti – mikä yleensä johtaa nykivään toistoon. USD:n avulla tasaisen FPS:n saavuttaminen ei ole ongelma ollenkaan ja tiedostokoko on paljon pienempi.

Lisää etuja

Toinen todella siisti ominaisuus on, että voit käyttää USD-projektisi kerroksia tiedoston ulkopuolelta melko helposti. Jos esimerkiksi prim-kerros sisältää tiedon, että pallo on vihreä USD-tiedostossa, yksinkertaisesti muuttamalla kyseisen värin punaiseksi USD-yhteensopivassa editorissa, kuten USD Composerissa, voimme muuttaa pallon väriä avaamatta tiedostoa Blenderissä koskaan! Se on uskomattoman tehokasta.

Vaikka se on tietysti yksinkertainen esimerkki, se osoittaa potentiaalin. Toinen merkittävä etu on, että USD antaa sinun silti työskennellä vain monimutkaisen tiedoston yksittäisen kerroksen parissa tietyssä ohjelmistossa. Joten vaikka tiedostosi sisältäisi kokonaisen projektin kameroineen, valoineen jne., voit silti avata vain yhden osan siitä – esimerkiksi yksittäisen mallin – Substance Painterissa ja työskennellä vain projektin kyseisen osan parissa vaikuttamatta mihinkään muuhun.

Tämä pätee myös, jos useat ihmiset työskentelevät saman tiedoston parissa – toinen USD:n merkittävä vahvuus. Kymmenen ihmistä voi työskennellä saman tiedoston parissa, jolloin taiteilija numero yhden tekemät muutokset ovat heti näkyvissä taiteilija numero kahdelle, jolloin he voivat mukauttaa työskentelyään vastaavasti. Kyky tehdä yhteistyötä ihmisten kanssa etänä on uskomattoman tehokasta.

3D-putkien tulevaisuus

Voidaan turvallisesti sanoa, että USD on paljon enemmän kuin vain tiedostomuoto. Se on kattava teknologiaympäristö ja ekosysteemi, joka tehtävässään todella vastaa Blenderin kanssa: vapaus luoda ilman rajoituksia.

USD on edelleen kehitteillä. Unelma on todellinen – universaali ohjelmistotiedostomuoto, jota kaikki alan ohjelmistot voivat käyttää, ja jota useat taiteilijat voivat muokata reaaliajassa.

Meidän kaikkien pitäisi olla kiitollisia Pixarille siitä, että se on raivannut tietä tälle uskomattomalle kehitykselle, ja yrityksille, kuten Nvidialle ja Applelle, jotka ovat antaneet oman panoksensa.

Kirjoita kommentti

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *