glTF JSON (.gltf)
ISO/IEC StandartGL Transmission Format (glTF), WebGL, WebGPU, oyun motorları ve yerel uygulamalar tarafından 3D sahnelerin ve modellerin verimli bir şekilde aktarılması ve yüklenmesi için açık standartlı, telifsiz bir JSON spesifikasyonudur.
GLTF biçimini GLB biçimine dönüştür
Tarayıcında GLTF biçimini GLB biçimine ücretsiz dönüştür. Dosyaları cihazında anında dönüştür.
İncele ve Meta Veriler
İşletim sistemleri ve dosya çözümleyicileri, glTF dosyalarını başlangıçtaki ikili sihirli bayt dizisini inceleyerek tanımlar:
Bayt düzeyinde başlık imzası (sihirli baytlar)
İşletim sistemleri ve dosya çözümleyicileri, glTF dosyalarını başlangıçtaki ikili sihirli bayt dizisini inceleyerek tanımlar:
HEX İMZASI (OFSET 0):
7B 0A 20 20 22 61 73 73 65 74 22ASCII GÖSTERİMİ: {\n "asset"
Standartlaştırma: ISO/IEC 12113:2022 / Khronos Open Standard
Teknik Özellikler
| Kapsayıcı mimarisi | Sahne grafiğini, düğümleri, ağları, erişimcileri, malzemeleri ve animasyonları açıklayan, harici arabellekleri gösteren insanlarca okunabilir JSON belgesi |
| Sıkıştırma | Harici dokular (PNG, JPEG, WebP) ve isteğe bağlı Draco geometri sıkıştırması |
| Bayt Düzeni (Endianness) | UTF-8 JSON metni (Küçük uçlu .bin arabelleklerine başvurur) |
| Renk Uzayları | sRGB temel rengi, Doğrusal pürüzlülük/metaliklik |
| Kanallar ve Yapı | Sahne hiyerarşisi, düğümler, kameralar, PBR malzemeleri, iskelet kaplamaları ve şekil değiştirme hedefleri |
| Maksimum Boyutlar | Sınırsız koordinat alanı ve üçgen sayısı |
| Şeffaflık | BLEND alfa kipi, eşik değerli MASK veya hacimsel geçirgenlik |
| Akış ve Aşamalı İşleme | glTF, sahne açıklamalarını ikili geometri ve doku verilerinden ayırır. Böylece görüntüleyici, tek bir büyük dosyanın tamamını beklemek yerine bileşenleri gerektiğinde yükleyebilir. |
Teknik karşılaştırma matrisi: glTF ve rakipleri
| Teknik Nitelik | glTF (Güncel) | GLB | OBJ | FBX |
|---|---|---|---|---|
| Dosya Mimarisi | JSON sahne metni + yardımcı .bin / dokular | Tek kendi kendine yeterli ikili dosya | Düz metin köşe noktaları ve yüzeyler + .mtl | Tescilli ikili/ASCII kapsayıcı |
| PBR Malzeme Standartları | Standartlaştırılmış Metalik-Pürüzlülük PBR | Standartlaştırılmış Metalik-Pürüzlülük PBR | Eski Phong/Lambert malzemeleri | Özel tescilli malzemeler |
| Animasyon Desteği | İskelet animasyonu (skinning) ve morf hedefleri | İskelet animasyonu (skinning) ve morf hedefleri | Yok (yalnızca statik geometri) | Karmaşık animasyon ve kemikler |
| Çalışma Zamanı Performansı | WebGL ve gerçek zamanlı motorlar için optimize edilmiştir | WebGL ve gerçek zamanlı motorlar için optimize edilmiştir | Yavaş ayrıştırma ve yeniden oluşturma gerektirir | Karmaşık masaüstü SDK ayrıştırması gerektirir |
Yaygın Bozulma Modları ve Hex Kurtarma Kılavuzu
3D motor hatası: 'Tampon yüklenemedi: URI bulunamadı'.
Kök Neden: Yardımcı .bin ikili dosyası veya doku görselleri .gltf dosyasıyla birlikte yüklenmedi.
Kurtarma: Tüm yardımcı dosyaları birlikte paketleyin veya File2File.app ile doğrudan tek bir GLB dosyasına dönüştürün.
Güvenlik Analizi ve Ayrıştırıcı Saldırı Vektörleri
glTF JSON dosyaları, Sunucu Tarafı İstek Sahteciliğine (SSRF) veya yol geçişine yol açabilecek harici URI'lere (veri URI'leri veya uzak URL'ler) başvurur.
Bilinen Saldırı Vektörleri
- Göreceli tampon URI'leri yoluyla yol geçişi (ör. 'uri: ../../../etc/passwd').
- Sunucu tarafı 3D küçük resim oluşturucularda uzak ağ tamponu getirme yoluyla SSRF.
- Hatalı biçimlendirilmiş yinelemeli düğüm hiyerarşisi döngüleri yoluyla hizmet reddi.
Savunmaya yönelik en iyi uygulamalar: Dosyayı yüklemeden önce uzak URL'leri engelle ve tüm yerel arabellek URI yollarını normalleştir.
Tarihsel kökenler ve önemli dönüm noktaları
Temel Avantajlar ve Artılar
- İnsan tarafından okunabilir JSON yapısı, programatik düzenlemeye, işlem hattı betikleri yazmaya ve görsel incelemeye olanak tanır.
- Modüler tasarım: hafif sahne meta verilerini ağır ikili geometriden (.bin) ve dokulardan ayırır.
- PBR malzemeleri tutarlılığı artırabilir, ancak sonuç işleyiciye, aydınlatmaya ve ayarlara bağlıdır.
Teknik Kısıtlamalar ve Eksiler
- Çoklu dosya karmaşıklığı: bir modeli paylaşmak, .gltf, .bin ve görüntü dokularının birlikte sıkıştırılmasını veya paketlenmesini gerektirir.
- Birden fazla HTTP isteği nedeniyle tek dosyalı GLB'ye göre biraz daha yavaş ilk ağ başlangıcı.
- Yardımcı doku dosyaları yeniden adlandırılırsa veya taşınırsa göreli yol bağımlılıkları bozulabilir.
İlginç Teknik Bilgiler
- glTF, oluşturmadan ziyade doğrudan çalışma zamanı aktarımı ve görüntülenmesine odaklandığı için resmi olarak '3D'nin JPEG'i' olarak anılır.
- Khronos Group, web ve mobil uygulamalar için 3D varlıkların aktarımını kolaylaştırmak amacıyla glTF'yi tanıttı.
- NASA, gezginlerin, uyduların ve astronotların 3D modellerini glTF formatında halka açık olarak indirilebilir sunmaktadır.
Sıkça Sorulan Teknik Sorular
glTF dosyamda neden renkler veya şekiller eksik?
.gltf dosyası yalnızca JSON sahne talimatlarını içerir. 3B şekiller için yardımcı .bin dosyalarına, renkler içinse .png/.jpg dosyalarına ihtiyaç duyar. Tüm yardımcı dosyaların aynı klasörde olduğundan emin ol.
Bir glTF dosyasını tek bir GLB dosyasına nasıl dönüştürürüm?
.gltf dosyanı ve yardımcı .bin ile doku dosyalarını File2File.app'e yükleyerek hepsini anında tek bir bağımsız .glb dosyasında birleştir.
Hangi programlar glTF formatını destekler?
Blender, Three.js, Babylon.js, Unity, Unreal Engine, Godot ve Windows 3D Viewer, glTF formatını kutudan çıktığı gibi (doğrudan) destekler.
İlgili glTF Dönüşüm Çiftleri
glTF JSON varlıklarını glTF Binary kapsayıcılarına dönüştürmek, ayrı metin bildirim dosyalarını, ikili arabellekleri ve dokuları daha hızlı web teslimatı için tek bir dosyada paketler.
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.
Wavefront OBJ geometri dosyalarını glTF JSON bildirimlerine dönüştürerek statik 3D modelleri standart web tarayıcılarında hızla yüklenen web varlıklarına çevir.