GLTF, standardisoitua 3D-mallien tiedonsiirtoa | Julkaisut @SeAMK

GLTF, standardisoitua 3D-mallien tiedonsiirtoa

#

Olet todennäköisesti vieraillut verkkosivuilla tai verkkokaupassa, jossa on mahdollista tutustua tuotteeseen 3D-mallia pyörittelemällä tai jopa hyödyntänyt lisättyä todellisuuttaa (AR) sovittaessasi Ikean valmistamaa huonekalua olohuoneeseesi ennen ostopäätöstä. Näissä molemmissa tapauksissa 3D-malli on käännetty GLTF-tiedostomuotoon, josta on tullut webpohjaisissa sovelluksissa jaettavien 3D-mallien standardisoitu tiedonsiirtoformaatti. Tässä artikkelissa käydään tarkemmin läpi mikä on GLTF-tiedonsiirtoformaatti sekä siihen liittyvä ekosysteemi.

Mikä on GLTF?

Khronos Group on avoin voittoa tavoittelematon yhteenliittymä, johon kuuluu yli 150 alan johtavaa yritystä, jotka luovat edistyksellisiä sekä rojaltivapaita yhteensopivuusstandardeja mm. 3D-grafiikkaa, laajennettua ja virtuaalitodellisuutta sekä koneoppimista varten (Khronos Group, 2022-a). Konsortion luomia tunnettuja standardeja ovat mm. WebGL, Collada, OpenXR (Khronos Group, 2022-a).

GLTF™ (GL Transmission Format) on uusi rojaltivapaa spesifikaatio 3D-mallien tehokkaaseen siirtämiseen ja lataamiseen sovelluksissa. GLTF minimoi sekä 3D-Assettien koon sekä niiden käyttämiseen ja purkamiseen tarvittavan suoritusaikaisen prosessoinnin. GLTF määrittelee 3D-sisältötyökaluille ja -palveluille laajennettavissa olevan, yhteisen julkaisuformaatin, joka virtaviivaistaa sisällöntuottamisen työnkulkuja ja mahdollistaa sisällön yhteensopivuuden koko alalla (Khronos Group, 2022-b). Tiedonsiirtoformaatti on myös standardisoitu kansainvälisenä standardina ISO/IEC 12113:2022 tämä nopeuttaa teknologian käyttöönottoa teollisuudessa sekä pyrkii vähentämään alan pirstaloitumista (Khronos Group, 2022-c).


Kuvio 1. GLTF ekosysteemi (Khronos Group, 2022-b).

ISO (2022, luku 2.3) määrittelee GLTF-tiedonsiirtoformaatille suunnitteluvaiheessa määritellyt neljä päätavoitetta seuraavasti:

  • kompakti tiedostokoko (tekstipohjainen JSON-tiedosto on kompakti ja sitä on helppo jäsennellä, suuret tiedostot kuten geometria, tekstuurit ja animaatiot säilytetään binäärimuodossa)
  • ajonaikaisesta ympäristöstä riippumaton (puhtaasti Asset-formaatti ja ei tarvitse erillistä ajoympäristöä, vaan voidaan käyttää sovelluksissa mihin tahansa tarkoitukseen)
  • täydellinen 3D-näkymän esitys (ei rajoitu pelkästään yksittäisiin objekteihin vaan voi edustaa kokonaisia kohtauksia, materiaaleja, kameroita, animaatiota yms.)
  • laajennettavuus (täysin laajennettavissa ja mahdollistaa yleiskäyttöiset tai valmistajakohtaiset laajennukset)

Mikä on JSON?

JSON lyhenne tulee sanoista JavaScript Object Notation, joka on standardisoitu tekstipohjainen formaatti rakenteisen datan esittämiseen JavaScript-objektien syntaksiin perustuen (Mozilla, 2022). Verkkosovelluksissa se on yleistynyt tietojen välittämisessä palvelimelta asiakkaalle ja päinvastoin (Mozilla, 2022). Tiedot esitetään JSON-rakenteessa nimi/arvo – pareina ja tiedot erotellaan toisistaan pilkuilla (W3Schools, 2022).

Kuvio 2. Havaintokuva JSON-tiedoston rakenteesta, tuotteen merkki, malli, tallennustila sekä varastotilanne on selkokielisesti luettavassa muodossa.

GLTF-tiedoston rakenne

Formaatin ydin muodostuu JSON-tiedostosta, joka määrittelee 3D-ympäristön koostumuksen sisältäen kameran, mallin geometrian, materiaalit, tekstuurit sekä animaatiot (Khronos Group, 2022-d). Kuviossa 3 on havainnollistettu rakenteen hierarkia ja riippuvuudet. Ylätason muodostaa skene, joka yhdessä node-komponentin kanssa määrittelevät 3D-ympäristön perusrakenteen. Kamera elementti määrittelee ympäristön renderöintiin vaikuttavat tekijät, kuten kuvakulmat (Khronos Group, 2022-d). Mesh elementin tehtävänä on määritellä ympäristössä näytettävän 3D-objektin geometria ja mallissa oleva pintamateriaalin tieto saadaan material-elementiltä (Khronos Group, 2022-d). Yksinkertainen GLTF-tiedoston rakenne, joka sisältää yhden scenen ja yhden noden on esitetty kuviossa 4.


Kuvio 3. GLTF-objektin hierarkia mukaillen (ISO, 2022, s.13).


Kuvio 4. Havaintokuva GLTF-tiedoston rakenteesta, jossa yksi scene ja siihen luotu node (ISO, 2022, s.16)

3D-mallin kääntäminen GLTF-tiedostomuotoon onnistuu helposti esimerkiksi käyttämällä avoimen lähdekoodin Blender-sovellusta. 3D-malli saadaan helposti käännetty GLTF-tiedostomuotoon Blenderin Export-valikon kautta. Blender pystyy myös avaamaan GLTF-tiedostoja ja ne voidaan tuoda sovellukseen import-valikosta.


Kuvio 5. 3D-mallin kääntäminen GLTF-tiedostomuotoon Blender-sovelluksessa.

GLTF-tiedostomuotoon käännettyjä malleja voidaan tarkastella esimerkiksi Paint 3D ja 3D-katseluohjelmalla, jotka molemmat löytyvät Windows-käyttöjärjestelmästä oletuksena.


Kuvio 6. GLTF-tiedosto avattuna 3D-katseluohjelmassa (vasen) sekä Paint 3D:ssä (oikea).

Johtopäätökset

GLTF-tiedostomuoto on vakiinnuttamassa paikkaansa standardisoituna tiedostomuotona verkkosivuille lisättävien sisältöjen sekä AR-teknologiaan liittyvien mallien käytössä. Autodeskin FBX-tiedostomuoto on pitkään ollut 3D-mallien jakamisessa eniten käytetty vaihtoehto. Tiedostomuotoa käytetään edelleen yhdessä OBJ-tiedostotyypin kanssa, sillä jotkin sovellukset eivät vielä tue täysin GLTF-tiedostomuotoa. CAD-mallien jakamisessa edelleen haasteena ovat useampi eri tiedostoformaatti, jotka saattavat käännösvaiheessa jopa menettää osan mallin rakenteesta. Suunnittelukäyttöön tehdyt mallit ovat edelleen yleisin 3D-mallien lähde varsinkin, kun puhutaan valmistavasta teollisuudesta. CAD-mallien ja 3D-mallien erot aiheuttavat myös haasteita sisällön jakamiselle ja muokkaamiselle sillä niiden käyttötarkoitus ja rakenne ovat erilaisia. Toivottavasti tulevaisuudessa myös GLTF-tiedostomuoto vakioituisi myös CAD-mallien jakamiseen tarkoitetuksi standardisoiduksi tiedonsiirtoformaatiksi, jolloin myös suunnittelumallien jakaminen olisi yhtenäisempää.

Janne Kapela
Training 4.0 XR- hankkeen projektipäällikkö
Digitalisaatio ja älykkäät teknologiat
SeAMK

Artikkelia on valmisteltu osana Training 4.0 XR-hanketta. Haluamme kiittää hankkeen ja tämän artikkelin rahoittamisesta Keski-Suomen ELY-keskusta.

Lue lisää hankkeen verkkosivuilta.

Lähteet

International Organization for Standardization (ISO). (2022). Information technology — Runtime 3D asset delivery format — Khronos glTF™ 2.0 (ISO Standard No. 12113:2022). https://www.iso.org/standard/83990.html

Khronos Group. (2022-a). About The Khronos Group. https://www.khronos.org/about/

Khronos Group. (2022-b). Khronos – glTF runtime 3d asset delivery. https://www.khronos.org/gltf/

Khronos Group. (2022-c). Khronos news – Khronos glTF 2.0 released as an ISO/IEC International Standard. https://www.khronos.org/news/press/khronos-gltf-2.0-released-as-an-iso-iec-international-standard

Khronos Group. (2022-d). glTF 2.0 API Reference Guide. https://www.khronos.org/files/gltf20-reference-guide.pdf

Mozilla. (2022). Working with JSON. https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Objects/JSON

W3Schools. (2022). JSON Syntax. https://www.w3schools.com/js/js_json_syntax.asp