JPEG dari dunia 3D. Apa itu glTF?

Definisi dan sejarah singkat


GLTF (GL Transmission Format) adalah format file untuk menyimpan adegan dan model 3D, yang sangat mudah dipahami (strukturnya ditulis dalam standar JSON), dapat diperluas dan mudah berinteraksi dengan teknologi web modern. Format ini memampatkan adegan tiga dimensi dengan baik dan meminimalkan pemrosesan runtime untuk aplikasi menggunakan WebGL dan API lainnya. glTF sekarang secara aktif dipromosikan oleh Khronos Group sebagai JPEG dari dunia 3D.


GlTF diharapkan menjadi format pengiriman aset yang efisien dan kompatibel yang memampatkan ukuran adegan 3D dan meminimalkan pemrosesan runtime oleh aplikasi menggunakan WebGL dan API lainnya. glTF juga menetapkan format penerbitan umum untuk alat dan layanan konten 3D.


Penyebutan pertama glTF dimulai pada tahun 2012, tetapi mulai digunakan sejak 19 Oktober 2015, bersamaan dengan pengumuman spesifikasi glTF 1.0. Saat ini, spesifikasi versi ke-2 (glTF 2.0) digunakan, yang dirilis pada 3 Maret 2017. Berikutnya, kita hanya akan berbicara tentang glTF 2.0.
Penjelasan terperinci tentang interior format ini dapat ditemukan di publikasi saya berikutnya: bagian pertama dan kedua


Dasar dari glTF dan kelebihannya


glTF didasarkan pada 2 file: JSON untuk menggambarkan struktur seluruh adegan 3D dan file biner, untuk menyimpan semua data dari adegan, termasuk peta tekstur yang dapat "dijahit" ke file biner atau disimpan oleh file eksternal. Ada juga versi biner dari glTF yang disebut GLB, yang satu-satunya perbedaan adalah bahwa semuanya disimpan dalam file 1m dengan ekstensi GLB.
Sebagai keuntungan tambahan di glTF, Anda dapat menyorot:


  • Hirarki objek yang jelas dalam struktur adegan 3D
  • Menyimpan informasi pemandangan seperti sumber cahaya dan kamera
  • Dukungan untuk animasi kerangka (animasi sendi)
  • Bahan dan shader yang lebih andal.

Jika Anda membandingkan glTF dan COLLADA, fungsi-fungsi yang didukungnya sangat mirip, tetapi mengingat bahwa glTF pada dasarnya adalah "format transfer", keuntungannya yang tidak diragukan lagi adalah kompatibilitas yang baik dengan teknologi web. Untuk memberikan analogi, saya akan menggunakan format .PSD (Adobe Photoshop) dan .JPG. Yang pertama baik untuk mengedit materi sumber, tetapi untuk penyimpanan dan penggunaan di Internet yang mereka gunakan, JPG.


Hari ini 3D datang kepada klien dari sumber yang sama sekali berbeda, masing-masing dengan formatnya sendiri. Tidak semua informasi dibutuhkan oleh pengguna, tidak semua format dapat dibuka di aplikasinya. Struktur adegan harus dianalisis, data geometri 3D dikonversi ke format yang diperlukan oleh API grafik. Data 3D harus ditransfer ke memori kartu video, maka proses rendering dapat dijelaskan menggunakan panggilan berturut-turut ke API grafik. Akibatnya, setiap aplikasi yang dapat dieksekusi harus membuat importir, pengunduh, atau konverter sendiri untuk semua format file yang akan didukungnya, seperti yang ditunjukkan pada slide.


gambar


Format GLTF mendefinisikan standar untuk merepresentasikan konten 3D dalam bentuk yang cocok untuk digunakan dalam aplikasi saat runtime. Format yang ada tidak cocok untuk transmisi melalui Internet: beberapa hanya berisi informasi tentang geometri, beberapa berisi segalanya dan berubah menjadi terlalu besar dalam ukuran dan sulit untuk dianalisis, belum lagi berjalan secara real time (runtime).


GLTF dirancang hanya untuk menyelesaikan masalah ini. Ini bukan "format file lain", yang sudah ada banyak, ini adalah definisi format transmisi adegan 3D!


Struktur adegan yang dijelaskan oleh JSON dapat dengan mudah dianalisis, data 3D disimpan dalam bentuk yang mudah dibaca dan digunakan langsung oleh API grafis, dan oleh karena itu tidak perlu untuk decoding atau preprocessing data 3D. Dengan cara ini, GLTF dapat membantu menjembatani kesenjangan antara pembuatan konten dan rendering.


gambar

Source: https://habr.com/ru/post/id436686/


All Articles