Co to jest format pliku GLB?
.glb to binarna forma kontenerowa formatu .gltf (GL Transmission Format), opracowanego i utrzymywanego przez Khronos Group. Podczas gdy plik .gltf jest zwykłym tekstem JSON, który odwołuje się do zewnętrznych plików geometrii .bin i oddzielnych zasobów obrazów, plik .glb łączy wszystko - graf sceny JSON, binarne bufory geometrii i animacji oraz osadzone tekstury - w jeden samodzielny plik.
Plik zaczyna się od 12-bajtowego nagłówka w formacie little-endian: magicznego ciągu ASCII glTF (hex 67 6C 54 46), pola wersji uint32 (wartość 2 dla glTF 2.0) oraz pola całkowitej długości pliku uint32. Po nagłówku następują bloki (chunks) z prefiksem długości: blok JSON niosący opis sceny (węzły, materiały, kamery, animacje) oraz blok BIN\ zawierający surowe binarne dane bufora.
.glb jest czasem nazywany „JPEG-iem dla 3D” ze względu na jego kompaktowy rozmiar, szerokie wsparcie i przydatność do publikacji w sieci. Jest to domyślny format zasobów dla AR na Androidzie poprzez Scene Viewer i komponent webowy <model-viewer>, a także jest szeroko stosowany w silnikach WebGL, takich jak three.js i Babylon.js. W porównaniu do .fbx lub .obj, jest on specjalnie zaprojektowany do renderowania w czasie rzeczywistym z wbudowanymi materiałami opartymi na fizyce (PBR).
Opcjonalne rozszerzenia Khronos dodają kompresję siatki Draco (KHR_draco_mesh_compression) oraz kompresję tekstur KTX2/Basis Universal (KHR_texture_basisu), co znacząco redukuje rozmiary plików w przypadku dużych scen.
Bezpieczeństwo
RYZYKO: LOWPlik GLB to dane 3D, a nie plik wykonywalny, więc otwarcie go do podglądu jest bezpieczne. Realne zagrożenia są niemalże niezłośliwe: skany o bardzo wysokiej liczbie poligonów lub tekstury 4K mogą być ciężkie do załadowania, a historycznie zdarzały się luki w parserach niektórych ładowarek glTF/GLB - dbaj o aktualność oprogramowania 3D i przeglądarek oraz importuj modele z renomowanych źródeł. Jak zawsze, weryfikuj prawdziwe rozszerzenie: plik udający „model.glb”, który w rzeczywistości jest plikiem wykonywalnym, stanowi realne ryzyko, a nie sam format GLB.
Szczegóły formatu
w pigułce- Plik wsparcia Raptor: Call of the Shadows - Starszy plik danych dla gry DOS Raptor z 1994 roku; źródłowa baza danych błędnie oznacza to jako główne znaczenie .glb, ale jest ono przestarzałe i niepowiązane z dominującym formatem glTF Binary.
- Plik globe/data Analytical Graphics STK - Starszy plik pomocniczy GIS/STK; bardzo niszowy w porównaniu ze znaczeniem 3D glTF Binary.
Programy otwierające pliki GLB
Szczegóły techniczne
specyfikacja| Sygnatura pliku (magic bytes) | ASCII „glTF” na offsetcie 0 (hex: 67 6C 54 46) |
| Kolejność bajtów | Little-endian w całym pliku |
| Rozmiar nagłówka | 12 bajtów: 4-bajtowy magic + uint32 version (wartość 2) + uint32 całkowita długość pliku |
| Struktura bloków | Blok JSON (typ 0x4E4F534A), a następnie blok BIN (typ 0x004E4942); każdy poprzedzony uint32 długości bloku i uint32 typu bloku |
| Typ MIME | model/gltf-binary (również serwowany jako application/octet-stream) |
| Kodowanie | Kontener binarny otaczający opis sceny UTF-8 JSON + surowe binarne bufory geometrii/animacji |
| Kompresja | Brak domyślnie; opcjonalna kompresja siatki Draco przez KHR_draco_mesh_compression oraz tekstury KTX2/Basis Universal przez KHR_texture_basisu |
| Model materiałów PBR | Cieniowanie metallic-roughness oparte na fizyce zdefiniowane w bloku JSON; specular-glossiness przez KHR_materials_specular |
| Obsługa animacji | Animacje klatek kluczowych dla translacji, rotacji, skali i wag morph-target; animacja szkieletowa/skinning przez hierarchie stawów |
| Głębia koloru tekstur | 8 bpc (24-bit RGB lub 32-bit RGBA przez osadzone JPEG lub PNG); mapy środowiskowe HDR przez rozszerzenia |
| Limit rozmiaru tekstur | Brak limitu narzuconego przez format; w praktyce ograniczony przez GPU (zwykle do 8192×8192 na teksturę) |
| Samodzielność | Cała geometria, tekstury, animacje i graf sceny spakowane w jednym pliku; brak zewnętrznych zależności w przeciwieństwie do .gltf + .bin + plików obrazów |
| Pole wersji | uint32 w nagłówku GLB identyfikuje glTF 2.0 (wartość 2); asset.version = „2.0” obecne również wewnątrz bloku JSON |
| Typowy rozmiar pliku | 50 KB - 100 MB; większość zasobów webowych i AR mieści się w zakresie 1-30 MB |
| Wsparcie platform | Windows, macOS, Linux, Android, iOS oraz Web (WebGL przez three.js, Babylon.js, model-viewer) |
| Szyfrowanie / integralność | Brak wbudowanego szyfrowania lub sumy kontrolnej; tylko pole całkowitej długości w nagłówku |
| Wydano | 2017 (glTF 2.0; GLB binary container) |
| Najnowsza wersja | glTF 2.0 (GLB container, ratified by Khronos; ongoing extensions e.g. KHR_materials_*) |
| Otwarty standard | Tak · bezpłatny (royalty-free) |
| Specyfikacja | registry.khronos.org |
Konwersje GLB
Pytania i odpowiedzi społeczności
pytania użytkownikówBrak pytań - bądź pierwszą osobą, która zapyta o pliki GLB.