Mengurangi poligon GLB dengan gltfpack
Retensi segitiga menentukan proporsi jumlah segitiga asli yang ingin dipertahankan. Hasilnya mungkin masih di atas target karena batas kesalahan atau kendala mesh. Pengaturan ini memengaruhi geometri; dimensi dan encoding tekstur diatur secara terpisah.
Mulai dengan target moderat
Unggah model asli, biarkan tekstur tetap sama, dan atur Target segitiga tersisa ke 50%. Biarkan galat penyederhanaan pada bawaan 1%. Bandingkan garis melengkung, bagian tipis, dan lubang sebelum menurunkan lagi. Untuk model dengan beberapa mesh, periksa setiap bagian, bukan hanya jumlah keseluruhan.
gltfpack -i input.glb -o output.glb -si 0.5 -kn -km -ke
Mengapa target mungkin tidak tercapai
Batas galat membatasi kesalahan penyederhanaan yang dapat diterima. Batas lebih ketat dapat menghentikan pengurangan lebih awal. Batas terbuka, sambungan atribut, dan struktur bagian mesh kecil juga dapat mengurangi pilihan penyederhanaan yang aman. Situs melaporkan hasil terukur dan kemungkinan penyebab; mesin tidak menentukan satu alasan penghentian yang pasti.
Kunci vertex batas jika bagian terpisah harus mempertahankan kecocokan tepi terbuka. Ini dapat membantu menghindari celah, tetapi mungkin menyisakan lebih banyak segitiga. Uji bagian yang dirakit setelah ekspor; penguncian batas tidak menjamin setiap sambungan visual tetap sama.
Hasil pengukuran pada contoh riak
| Pengaturan penyederhanaan | Segitiga output |
|---|---|
| Mesh asli | 8.192 |
| Target 50%, batas galat bawaan | 4.095 |
| Target 10%, galat nol, batas terkunci | 8.192 |
| Target 10%, penyederhanaan agresif | 812 |
Pengujian menggunakan contoh asli CC0 yang sama dan gltfpack native 1.3. Jumlah segitiga menghitung setiap primitif mesh sekali. Hasil bergantung pada model, dan jumlah mendekati target tidak menunjukkan apakah bentuk tersisa dapat diterima.
Bandingkan siluet dari sudut yang sama
Gambar ini merender file dalam tabel dengan kamera, pencahayaan, dan material yang sama di Three.js 0.180.0. Buka gambar untuk melihat ukuran penuh. Mulai dari lekukan luar dan lubang dalam; jangan menilai hasil hanya dari jumlah segitiga.
Pada hasil agresif 10%, lubang dalam terlihat memiliki segmen lebih lurus dan sudut lebih tajam. Lekukan luar juga kehilangan sebagian kebulatannya. Perubahan ini mudah terlewat pada thumbnail kecil, meskipun target segitiga tercapai.
Contoh ini tidak memiliki skinning atau animasi. Satu sudut pandang tidak dapat mengungkap masalah gerakan, permukaan tersembunyi, atau semua perubahan pencahayaan. Putar hasil Anda sendiri dan periksa pada ukuran tampilan yang dituju sebelum menerima jumlah segitiga lebih rendah.
Gunakan penyederhanaan agresif setelah membandingkan
Penyederhanaan agresif mengutamakan jumlah yang diminta dan mengabaikan batas galat. Antarmuka menonaktifkan kolom galat selama mode ini aktif. Gunakan pada salinan dan periksa siluet serta pencahayaan permukaan. Ini bukan jalan pintas untuk mempertahankan kualitas model yang sulit.
gltfpack -i input.glb -o output.glb -si 0.1 -sa -kn -km -ke
Jika pengurangan segitiga hampir tidak memperkecil file →
Referensi mesin: gltfpack
Buka pengoptimal ↗

