Login Login
Memuat tekstur dan data mesh

Mengkompresi data mesh

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:

  • Kompresi Vertex adalah pengaturan yang mempengaruhi setiap mesh dalam proyek Anda. Ini memungkinkan Anda untuk menggunakan format data presisi lebih rendah di jala Anda. Ini mengurangi ukuran data mesh dalam memori, sedikit mengurangi ukuran file, dan mungkin meningkatkan kinerja GPU. Kelemahan potensial adalah hilangnya ketepatan.
  • Kompresi Mesh adalah pengaturan yang mempengaruhi jala individu. Ini mengompresi data mesh pada disk, yang mengurangi ukuran file. Kelemahan potensial meningkat waktu pemuatan, peningkatan penggunaan memori sementara saat memuat, dan kemungkinan artefak compressionMetode menyimpan data yang mengurangi jumlah ruang penyimpanan yang dibutuhkan. Kompresi Tekstur, Kompresi Animasi, Kompresi Audio, Membangun Kompresi.
    Lihat di Glossary
    .

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.

Kompresi Vertex

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.

Batasan Kompresi Vertex

Mesh harus memenuhi persyaratan berikut untuk menggunakan kompresi simpul:

  • Jaring harus memiliki properti Read/Write Enabled dinonaktifkan. Anda dapat mengubah properti ini di tab Model jendela Pengaturan Model Impor.
  • Jaring tidak boleh menjadi mesh berkelok-kelok.
  • Platform target harus mendukung nilai FP16.
  • Model yang mengandung mesh harus memiliki nilai Mesh Compression yang ditetapkan ke “Off”.

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.

Mengkonfigurasi Kompresi Vertex

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:

  • Normal
  • Tangent
  • Tex Koord 0
  • Tex Coord 2
  • Tex Coord 3

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.

Kompresi Mesh

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.

Batasan Kompresi Mesh

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.

Mengkonfigurasi Kompresi Mesh

The Mesh Compression setting in the Model Import settings window
Pengaturan Kompresi Mesh di jendela pengaturan Impor Model

Untuk menggunakan pengaturan Kompresi Mesh:

  1. Pilih model di folder Aset proyek Anda untuk membuka tab Model jendela Pengaturan Impor.
  2. Navigasi ke Mesh yang menuju dan menemukan pengaturan Kompresi Mesh.
  3. Pilih menu dropdown untuk memilih tingkat untuk semua mesh di Model itu. Anda juga dapat mengubah pengaturan ini dalam kode dengan numerasi ModelImporterMeshCompression.

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.

Login Login
Memuat tekstur dan data mesh