GLB biçiminden glTF biçimine dönüştürücü
GLB formatını glTF formatına dönüştürmek, tek bir ikili (binary) konteyneri ayrı metin ve varlık dosyalarına ayırarak geliştiricilerin dokuları ve 3D geometri kodunu kolayca düzenlemesini sağlar.
Biçim karşılaştırması ve teknik özellikler
| Teknik belirtim | GLB | GLTF |
|---|---|---|
| MIME Türü | model/ | model/ |
| Tür | bağımsız ikili 3B kapsayıcı | çalışma zamanı 3B varlık aktarımı |
| Sıkıştırma | ikili olarak paketlenmiş JSON, arabellekler ve dokular | kayıpsız JSON manifest dosyası + harici ikili arabellekler |
| Standart belirtimi | Khronos glTF 2.0 Binary Container | Khronos glTF 2.0 Specification |
| Sihirli bayt başlığı | 67 6C 54 46 02 00 00 00 (glTF version 2 binary container) | 7B 22 61 73 73 65 74 22 ({"asset" JSON root) |
Format Genel Bakışı ve Kullanım Alanları
GLB formatı, 3D sahneleri, animasyonları, materyalleri ve dokuları düzenli tek bir ikili pakette toplar. Bu durum nesnelerin web sayfalarına ve oyunlara hızlı bir şekilde yüklenmesi açısından harika olsa da ham verilerin düzenlenmesini zorlaştırır. Geliştiriciler sahne yapısını incelemek, bir metin düzenleyicide materyal özelliklerini ayarlamak veya gömülü gölgelendirici (shader) parametrelerini değiştirmek istediklerinde genellikle GLB dosyasını GLTF formatına ayırmaya ihtiyaç duyarlar. Ayrıştırılmış GLTF varlıklarıyla çalışmak, mühendislik ekiplerinin standart Git iş akışlarını kullanarak belirli 3D ağ bileşenlerini sürüm kontrolüne tabi tutmasını sağlar. Geliştiriciler devasa bir ikili veriyi takip etmek yerine, ayrı ikili arabellek dosyalarını yönetirken JSON bildirim dosyasındaki küçük metin değişikliklerini taahhüt (commit) edebilirler. Bu dönüştürme süreci, 3D varlıkların çalışma zamanı dağıtımından önce özel gölgelendirici enjeksiyonu veya dinamik doku değişimi gerektirdiği gelişmiş web geliştirme hatlarını destekler.
Teknik Özellikler ve Kodek Ayrıntıları
GLB, model/gltf-binary MIME türünü kullanır ve 4 baytlık bir sihirli sayı (0x46546C67), 4 baytlık bir sürüm tamsayısı ve 4 baytlık toplam dosya uzunluğu içeren 12 baytlık bir başlıkla başlar. Bu başlığı, bir JSON bildirimi ve ikili arabellekler içeren yığınlar takip eder. Model/gltf+json MIME türünü kullanan GLTF'ye dönüştürme işlemi, bildirimi .gltf uzantısına sahip, okunabilir bir metin dosyası olarak ayırır. Geometri verileri ve piksel haritaları .bin ve .png gibi ayrı harici dosyalar olarak dışarı yazılır. Hiçbir format varsayılan olarak kayıplı sıkıştırma kullanmaz. Her ikisi de tepe noktası (vertex) konumlarını, normalleri ve UV koordinatlarını tam matematiksel hassasiyetle korur.
İşletim Sistemi ve Tarayıcı Uyumluluğu
Ayrıştırılmış GLTF dosyaları, WebGL ve WebGPU işleyicileriyle Google Chrome, Mozilla Firefox, Apple Safari ve Microsoft Edge dahil modern web tarayıcılarının çoğunda sorunsuz çalışır. Windows 10 ve 11, macOS ve Linux gibi masaüstü işletim sistemlerinde Windows 3D Viewer ve Blender gibi yerel araçlarla GLTF görüntülenebilir. iOS ve Android'deki mobil işletim sistemleri GLTF varlıklarını yerel artırılmış gerçeklik ortamlarında ve web uygulamalarında işleyebilir; ancak geliştiricilerin kaynaklar arası kaynak paylaşımı (CORS) hatalarını önlemek için ayrı .bin ve .gltf dosyalarını sunucularında doğru biçimde barındırması gerekir.
Faydalı bilgiler
Dönüştürmeden sonra, JSON bildiriminin harici bağımlılıkları bozuk yol hatası vermeden bulabilmesi için doku haritalarını ana .gltf dosyasıyla aynı klasörde tut.
Sıkça Sorulan Sorular
glTF Binary'yi kalite kaybı olmadan glTF JSON'a nasıl dönüştürürsün?
GLB'den GLTF'ye dönüşüm tamamen kayıpsızdır çünkü her iki format da aynı temel matematiksel yapıları kullanır. Süreç, tepe noktası verilerini veya piksel sıkıştırmasını değiştirmeden, tek ikili konteynerden JSON yığınını ve ikili arabellekleri çıkarır ve bunları diskinizde ayrı dosyalar olarak kaydeder.
glTF Binary ile glTF JSON arasındaki fark nedir?
GLB; sahne açıklamasını, geometrisini ve dokuları tek bir indirmede toplayan, kendi kendine yeterli bir ikili dosyadır. GLTF ise sahne grafiğini okunabilir bir metin dosyasında saklarken geometri ve dokuları harici ikili ve resim dosyalarında tutarak bu öğeleri ayırır.