Pengoptimal GLB
Buat file GLB atau glTF menjadi lebih kecil dan lebih ringan untuk dirender. Masukkan file, lalu pilih tindakan yang diinginkan: hapus data yang tidak dirujuk apa pun, satukan dan sederhanakan geometri, gabungkan mesh untuk mengurangi draw call, ubah ukuran dan enkode ulang tekstur, serta kompres semuanya dengan Meshopt. Anda akan melihat ukuran setelah setiap langkah, pratinjau hasil sebelum menyimpannya, dan tidak ada data yang diunggah. Pengoptimalan dan pratinjau tersedia gratis; pengunduhan hasil termasuk dalam paket Standard dan Pro.
Kirim sebagian kecil byte-nya saja.
Buang yang tidak dirujuk apa pun, gabungkan dan sederhanakan geometrinya, enkode ulang teksturnya, lalu kemas semuanya dengan Meshopt. Kamu dapat angka ukuran setelah tiap langkah dan pratinjau hasilnya sebelum memutuskan.
84% smaller. Our sample character with 10 clips baked in.
Meshopt, kuantisasi, dan alasan Draco tidak tersedia di sini
Meshopt (EXT_meshopt_compression) adalah pilihan bawaan dan pilihan yang tepat untuk apa pun yang berjalan di browser. Ukuran yang dihasilkannya sebanding dengan Draco, tetapi proses dekodenya beberapa kali lebih cepat. Ini penting karena dekode berlangsung saat pemain Anda sedang menatap layar pemuatan. three.js, Babylon.js, dan PlayCanvas semuanya dapat membacanya, sementara dekodernya cukup kecil sehingga nyaris tidak perlu dipertimbangkan.
Kuantisasi sama sekali tidak memerlukan ekstensi. Metode ini menyimpan posisi, normal, dan UV dalam tipe angka yang lebih kecil, yang dapat dibaca oleh setiap pemuat glTF tanpa dekoder. Penghematannya lebih terbatas, tetapi file tetap berupa glTF biasa sehingga menjadi pilihan teraman untuk pipeline yang tidak Anda kendalikan.
File Draco dapat dibuka di sini tanpa masalah, sehingga Anda bisa mendekompresinya atau mengalihkannya ke Meshopt. Namun, menulis Draco adalah hal yang berbeda, dan alat ini tidak melakukannya. Satu-satunya enkoder Draco yang berjalan di browser adalah build asm.js yang bahkan membutuhkan waktu beberapa menit untuk diinisialisasi, sedangkan paket yang masih dipelihara hanya menyediakan build untuk Node. Menyediakan tombol yang membuat tab Anda macet akan lebih buruk daripada tidak menyediakannya sama sekali. Jika Anda secara khusus memerlukan output Draco, CLI glTF-Transform dapat melakukannya dengan satu perintah di komputer Anda:
npx @gltf-transform/cli draco input.glb output.glbApa yang sebenarnya dilakukan setiap langkah
Hapus data yang tidak digunakan menjalankan prune dan dedup. Eksporter sering meninggalkan material yang tidak digunakan, tekstur duplikat dengan dua nama berbeda, dan node kosong. Pada file yang telah melewati dua atau tiga alat, langkah ini saja sering kali dapat memangkas ukuran secara nyata tanpa mengubah tampilan model.
Satukan vertex menggabungkan vertex yang memiliki posisi dan normal yang sama, mengubah kumpulan segitiga menjadi mesh berindeks. Sebagian besar eksporter sudah melakukan ini; eksporter yang tidak melakukannya membuat Anda menanggung tiga salinan untuk setiap sudut yang digunakan bersama.
Gabungkan mesh berdasarkan material memperbaiki masalah draw call. Jika model Anda terdiri dari dua ratus objek terpisah yang semuanya memakai satu material, GPU melakukan dua ratus pekerjaan alih-alih satu. Penggabungan ini meratakan hierarki, sehingga dinonaktifkan secara bawaan: jika game Anda menggerakkan bagian-bagian secara terpisah atau model menggunakan rig, Anda memerlukan hierarki tersebut.
Sederhanakan geometri mengurangi mesh dengan penyederhana Meshopt berdasarkan target persentase segitiga yang Anda tentukan. Ini adalah opsi yang tepat untuk model hasil pemindaian atau CAD yang memiliki ratusan ribu segitiga tanpa diperlukan. Di bawah sekitar 40%, perubahan mulai terlihat pada bentuk organik, tetapi tidak terlalu terlihat pada permukaan keras.
Pangkas keyframe animasi mengambil sampel ulang trek animasi dan membuang keyframe yang berada pada garis lurus di antara keyframe tetangganya. Pada klip yang diekspor pada 60 fps dari alat yang melakukan bake pada setiap frame, data ini dapat mencakup sebagian besar ukuran file.
Tekstur diubah ukurannya dan dienkode ulang. WebP berukuran sekitar sepertiga dari PNG yang setara dan dapat dibaca oleh semua browser modern. Membatasi ukuran hingga 1024 biasanya tidak terlihat pada model game dan sering kali memberikan pengurangan ukuran unduhan terbesar.
Ukuran unduhan tidak sama dengan penggunaan memori
Kompresi memperkecil file. Namun, kompresi tidak mengurangi memori video yang digunakan tekstur setelah diunggah karena JPEG, PNG, dan WebP semuanya diekspansi menjadi piksel mentah di GPU. Tekstur 2048×2048 menggunakan sekitar 22 MB VRAM, baik ukuran unduhannya 4 MB maupun 200 KB.
Jika penampil GLB menunjukkan bahwa masalah Anda adalah memori tekstur, bukan ukuran file, solusinya adalah KTX2, yang tetap terkompresi untuk GPU hingga dimuat ke dalam memori. Keduanya saling melengkapi: KTX2 untuk data yang disimpan GPU, Meshopt untuk data yang dikirim melalui jaringan.
Pertanyaan umum
Bagaimana cara mengompres file GLB?
Masukkan file di atas, biarkan pengaturan bawaan, lalu klik Optimalkan. Pengaturan bawaan membersihkan data yang tidak digunakan, menyatukan vertex, dan menerapkan kompresi Meshopt—kombinasi yang aman untuk game web. Daftar per langkah menunjukkan sumber pengurangan ukurannya.
Seberapa kecil ukuran file saya nantinya?
Itu sepenuhnya bergantung pada isi file. Model yang didominasi mesh tanpa kompresi sering kali menyusut 60 hingga 80 persen dengan Meshopt. File yang sebagian besar berisi tekstur PNG hampir tidak berubah hingga teksturnya dikonversi ke WebP. File yang sebagian besar berisi data animasi akan lebih terbantu oleh pemangkasan keyframe. Rincian setiap langkah menunjukkan kategori file Anda.
Apakah pengoptimalan merusak model?
Penghapusan data yang tidak digunakan, penyatuan vertex, pemangkasan keyframe, dan kompresi Meshopt tidak mengubah tampilan. Penyederhanaan tidak demikian: langkah ini menghapus segitiga dan hasilnya akan terlihat jika menggunakan pengaturan agresif. Pengubahan ukuran tekstur dan konversi JPEG juga bersifat lossy. Pratinjau menampilkan output sebenarnya sehingga Anda dapat memeriksanya sebelum mengunduh.
Apakah Unity atau Godot dapat membuka hasilnya?
Dukungan Meshopt bergantung pada importer dan versinya. Jadi, jika file harus dimasukkan ke engine, bukan browser, pilih Kuantisasi, yang tidak memerlukan ekstensi dan dapat digunakan di mana saja. Meshopt adalah pilihan yang lebih baik jika tujuannya adalah halaman web.
Apakah alat ini dapat membuka file yang sudah dikompresi?
Ya. Input yang dikompresi dengan Draco maupun Meshopt akan didekode saat dimuat, sehingga Anda dapat mendekompresi file Draco, mengalihkannya ke Meshopt, atau mengompresinya ulang dengan pengaturan berbeda.
Apakah model saya diunggah?
Tidak. Seluruh pipeline berjalan dalam Web Worker di browser Anda, termasuk semua enkoder. Setelah halaman dimuat, alat ini dapat digunakan secara offline.