Anda dapat mengompresi data meshGrafik utama primitif Unity. Mesh membuat sebagian besar dunia 3D Anda. Unity mendukung mesh poligon triangulat atau Quadrangulasi. Nurbs, Nurms, permukaan Subdiv harus dikonversi ke poligon. More info
Lihat di Glossary dalam Unity untuk mengurangi ukurannya, yang dapat meningkatkan kinerja. Unity menyediakan dua cara kompres mesh. Mereka bekerja berbeda, dan mempengaruhi aspek kinerja yang berbeda:
Anda dapat menggunakan metode kompresi dalam proyek yang sama, tetapi tidak pada mesh yang sama. Jika Anda menerapkan Kompresi Mesh ke jala, Unity tidak menerapkan Kompresi Vertex ke jala itu.
Pengaturan default Unity Note: untuk Kompresi Vertex dan Kompresi Mesh cocok untuk sebagian besar proyek. Anda harus mengubah pengaturan ini hanya jika Anda memiliki masalah, dan menilai hasilnya untuk memastikan bahwa perubahan telah membantu.
Pengaturan Kompresi Vertex memungkinkan Anda untuk menggunakan format data presisi lebih rendah untuk semua jala dalam proyek Anda. Anda melakukan ini dengan mengkonfigurasi jenis data untuk saluran data tertentu.
Anda dapat mengubah jenis data untuk saluran yang diberikan dari FP32 (Floating Point32, nomor titik mengambang 32-bit) ke FP16 (Memotong Point16, juga dikenal sebagai pelampung setengah-precision). Jumlah toko format FP16 dengan tempat yang lebih sedikit setelah titik desimal dari nomor FP32, yang berarti bahwa dibutuhkan lebih sedikit ruang tetapi menawarkan sedikit presisi.
Data yang dikonversi dari FP32 ke FP16 mengambil lebih sedikit ruang dalam memori, dan sedikit ruang kurang pada disk. Pada GPU, data menggunakan bandwidth memori kurang, yang mungkin sedikit meningkatkan kinerja GPU.
Teknik kompresi simpul mengompres jala dengan rasio yang bervariasi tergantung pada berapa banyak atribut vertex yang Anda pilih untuk mengompres. Rasio kompresi biasanya sekitar 1.45x ketika Anda mengompres normal, tangents, warna, dan tiga set koordinat UV.
Mesh harus memenuhi persyaratan berikut untuk menggunakan kompresi simpul:
Jika mesh gagal untuk memenuhi persyaratan ini, maka Unity tidak menerapkan kompresi simpul ke jala dan semua saluran data pada mesh menggunakan nomor presisi FP32.
Untuk mengubah pengaturan Kompresi Vertex: 1. Buka pengaturan Pemain (menu: Edit > Project Settings > Player). 1. Buka submenu Other Settings dan arahkan ke judul Optimization. 1. Pilih dropdown Vertex Compression dan pilih saluran apa pun untuk mengaktifkan atau menonaktifkan kompresi untuk saluran itu. Anda juga dapat memilih None untuk menonaktifkan kompresi untuk semua saluran, atau pilih Everything untuk mengaktifkan kompresi untuk semua saluran.
Secara default, Vertex Compression diatur ke Mixed, yang menampilkan Unity ketika beberapa pilihan aktif dalam dropdown. Secara default, Unity menggunakan Vertex Compression untuk saluran berikut:
Unity mengompres saluran ini secara default karena dalam kebanyakan kasus kombinasi pengaturan ini memberikan campuran memori yang baik tanpa perubahan signifikan untuk bagaimana tampilan jala. Unity tidak mengompresi pengaturan lain, Posisi dan Tex Coord 1, secara default karena ini lebih cenderung mempengaruhi penampilan mesh, dan tidak menawarkan pengurangan yang signifikan dalam penggunaan memori. Jika Anda berniat untuk mengaktifkan Kompresi Vertex untuk Saluran Posisi dan Tex Coord 1, Anda harus menguji pengaturan untuk memastikan mereka tidak menyebabkan artefak di jala Anda.
Anda dapat menggunakan pengaturan Kompresi Mesh untuk mengompres data mesh untuk aset model yang diberikan pada disk. Algoritma Kompresi Mesh lebih agresif daripada teknik Kompresi Vertex, yang menghasilkan rasio kompresi yang lebih tinggi dan karenanya ukuran file yang lebih kecil. Namun, juga memiliki lebih banyak kelemahan.
Ketika Anda menerapkan pengaturan ini, Unity menggunakan algoritma untuk mengganti nilai eksplisit untuk setiap saluran kompresi dengan kisaran antara maksimum dan minimum, di mana jumlah bit tetap mewakili di mana setiap nilai jatuh dalam kisaran itu. Ini mengurangi ukuran data mesh pada disk. Ketika Unity memuat mesh ke dalam memori, itu menekan data, yang berarti itu mengkonversi kisaran ini kembali ke nilai-nilai asli. Setelah ini, kinerja tidak terpengaruh.
Teknik ini dapat berguna jika Anda perlu mengurangi ukuran build akhir atau ukuran asetBundle mesh sebanyak mungkin, dan jika pengurangan kinerja dari dekompresi runtime dapat diterima.
Pada runtime, dekompresi jala menggunakan sumber daya CPU tambahan; ini berarti bahwa memuat data mesh memakan waktu lebih lama. Unity juga menggunakan memori lebih sementara ketika menekan jala.
Selain itu, rasio kompresi yang relatif tinggi berarti bahwa artefak yang tidak diinginkan dapat muncul ketika Unity menekan mesh. Untuk menghindari artefak ini, Anda harus menguji setiap opsi untuk mesh Anda ingin mengompres dan memeriksa itu muncul dengan benar.
Untuk menggunakan pengaturan Kompresi Mesh:
Nilai yang tersedia adalah High, Medium, Low, atau Off. Tabel berikut menunjukkan rasio kompresi khas untuk setiap pengaturan ini:
Value | Vertices | Normals | Tangents | UVs | Color |
---|---|---|---|---|---|
Off | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 |
Low | 1 Artikel | 4.6 g | 4.4 | 2.0 | 1.0 |
Medium | 2.0 | 5.6 g | 5.3 g | 3.2 | 1.3 |
High | 3.2 | Chili | 6.7 g | 4.0 | 2.0 |
Rasio kompresi untuk teknik kompresi mesh
Catatan: Kolom "Color" di atas tabel menunjukkan rasio untuk mesh yang menggunakan format UNorm8. Untuk mesh yang menggunakan format FP32 untuk warna simpul, rasio 4.0 pada pengaturan Rendah, 5.3 pada pengaturan Sedang, dan 8.0 pada pengaturan Tinggi.