Reduksi poligon GLB dengan gltfpack

Kontrol retensi segitiga mengatur berapa banyak jumlah segitiga asli yang ingin Anda pertahankan. Itu adalah target, bukan janji. Halaman ini membahas penyederhanaan geometri; itu tidak mengubah ukuran tekstur atau pengkodean.

Mulailah dengan target yang moderat

Unggah model asli, pertahankan tekstur tidak berubah dan atur Retensi segitiga target ke 50%. Biarkan kesalahan penyederhanaan pada defaultnya 1%. Bandingkan garis lengkung, bagian tipis dan lubang sebelum turun lebih rendah. Untuk model dengan beberapa jerat, periksa setiap bagian daripada hanya menilai jumlah totalnya.

gltfpack -i input.glb -o output.glb -si 0.5 -kn -km -ke

Mengapa target tidak tercapai

Batas kesalahan membatasi kesalahan penyederhanaan yang dapat diterima. Batasan yang lebih ketat dapat menghentikan pengurangan lebih awal. Batas terbuka, jahitan atribut, dan struktur bagian jaring kecil juga dapat menyebabkan lebih sedikit pilihan penyederhanaan yang aman. Situs web melaporkan hasil terukur dan kemungkinan penyebabnya; mesin tidak mengidentifikasi satu alasan penghentian yang pasti.

Kunci simpul batas ketika bagian yang terpisah harus tetap mencocokkan tepi terbuka. Hal ini dapat membantu menghindari kesenjangan, namun dapat meninggalkan lebih banyak segitiga. Uji potongan rakitan setelah ekspor; mengunci batas bukanlah jaminan bahwa setiap lapisan visual tetap tidak berubah.

Hasil yang diukur pada sampel riak

Pengaturan penyederhanaanSegitiga keluaran
Jaring asli8,192
Target 50%, batas kesalahan default4,095
Target 10%, kesalahan nol, batas terkunci8,192
Target 10%, penyederhanaan agresif812

Prosesnya menggunakan sampel CC0 asli yang sama dan gltfpack 1.3 asli. Total segitiga menghitung setiap mesh primitif satu kali. Hasil bergantung pada model, dan jumlah yang mendekati target tidak menentukan apakah bentuk yang tersisa dapat diterima.

Bandingkan siluet pada sudut yang sama

Gambar-gambar ini merender file dalam tabel dengan kamera, pencahayaan, dan material yang sama di Three.js 0.180.0. Buka gambar untuk memeriksanya dalam ukuran penuh. Mulailah dengan lobus luar dan bukaan dalam; jangan menilai hasil dari hitungan segitiga saja.

Model riak asli dilihat dari kamera perbandingan tetap
Asli: 8.192 segitiga
Model riak setelah retensi segitiga 50 persen
50% segitiga dipertahankan: 4.095 segitiga
Model Ripple setelah retensi agresif 10 persen
Penyederhanaan agresif hingga 10%: 812 segitiga

Pada hasil 10% yang agresif, bukaan bagian dalam memiliki segmen yang tampak lebih lurus dan sudut yang lebih tajam. Lobus luar juga kehilangan kebulatannya. Perubahan tersebut mudah untuk dilewatkan dalam thumbnail kecil, meskipun target segitiga telah tercapai.

Sampel ini tidak memiliki skinning atau animasi. Tampilan tunggal tidak dapat mengungkap masalah gerakan, permukaan tersembunyi, atau setiap perubahan bayangan. Putar hasil Anda sendiri dan periksa pada ukuran tampilan yang diinginkan sebelum menerima jumlah segitiga yang lebih rendah.

Gunakan penyederhanaan agresif hanya setelah perbandingan

Penyederhanaan agresif memprioritaskan jumlah yang diminta dan mengabaikan batas kesalahan. Antarmuka menonaktifkan bidang kesalahan saat mode ini aktif. Gunakan pada salinan dan periksa siluet dan bayangan permukaan. Ini bukanlah jalan pintas yang menjaga kualitas untuk model yang sulit.

gltfpack -i input.glb -o output.glb -si 0.1 -sa -kn -km -ke

Jika lebih sedikit segitiga hampir tidak mengurangi ukuran file →

Referensi mesin: gltfpack

Buka pengoptimal ↗