Perkenalan Mipmaps
Mipmap Database

Sistem Streaming Mipmap

Sistem Mipmap Streaming memberi Anda kendali atas bagaimana beban Unity mipmaps.

Halaman ini berisi informasi berikut:

Untuk informasi tentang menggunakan API untuk memperluas fungsi sistem ini, lihat API documentation.

Overview

Sistem ini memaksa Unity hanya memuat tingkat mip yang diperlukan untuk membuat posisi CameraKomponen yang menciptakan gambar sudut pandang tertentu di tempat kejadian Anda. Output ditarik ke layar atau ditangkap sebagai tekstur. More info
Lihat di Glossary
saat ini, bukan memuat semua dari mereka secara default. Ini memperdagangkan sejumlah kecil sumber daya CPU untuk menghemat jumlah memori GPU yang berpotensi besar.

Anda dapat mengatur batas memori total untuk semua tekstur dalam aplikasi, dan sistem secara otomatis mengurangi tingkat mip untuk tetap dalam anggaran ini.

Dalam proyek demo Unity, sistem Mipmap Streaming menyimpan 25-30% memori tekstur, tergantung pada lokasi Kamera.

Getting started

Streaming Mipmap

Untuk mengaktifkan Mipmap Streaming, pergi ke Pengaturan Kualitas Unity (Edit > Project SettingsPengumpulan yang luas dari pengaturan yang memungkinkan Anda untuk mengkonfigurasi bagaimana Fisika, Audio, Jaringan, Grafik, Input dan banyak bidang lain dari jangkauan proyek Anda. More info
Lihat di Glossary
> Quality) dan mengaktifkan kotak centang Texture Streaming.

Ketika Anda mengaktifkan pengaturan ini, jendela pengaturan kualitas mengungkapkan pengaturan tertentu ke sistem Mipmap Streaming. Untuk rincian pada setiap pengaturan, lihat dokumentasi pada Pengaturan kualitas.

Secara default, ini memungkinkan Mipmap Streaming untuk semua Kamera dalam proyek Anda.

Membuat tekstur bekerja dengan sistem Mipmap Streaming

Sekarang Anda dapat mengatur Mipmap Streaming pada tekstur individu. Pilih aset tekstur, arahkan ke jendela InspectorJendela Unity yang menampilkan informasi tentang Pengaturan GameObject yang dipilih saat ini, aset atau proyek, memungkinkan Anda untuk memeriksa dan mengedit nilai. More info
Lihat di Glossary
dan lihat pengaturan Tekstur Impor. Buka pengaturan Advanced, dan aktifkan kotak cemen.Streaming Mip Maps checkbox.

Jika Anda berkembang untuk Android, Anda juga perlu membuka Membangun Pengaturan dan mengatur Compression Method ke LZ4 atau LZ4HC. Unity memerlukan salah satu metode compressionMetode menyimpan data yang mengurangi jumlah ruang penyimpanan yang dibutuhkan. Kompresi Tekstur, Kompresi Animasi, Kompresi Audio, Membangun Kompresi.
Lihat di Glossary
ini untuk Login Tekstur pemuatan, yang sistem Mipmap Streaming bergantung pada.

Beban bersatu mips pada resolusi tertinggi mungkin sambil mengamati anggaran memori. Anda dapat mengkonfigurasi prioritas tekstur dengan pengaturan Mip Map Priority dalam Pengaturan Impor Tekstur.

Unity menggunakan pengaturan ini untuk menentukan:

  • Tekstur mana yang memprioritaskan ketika menetapkan sumber daya.
  • Sebagai nilai bias mip ketika memilih tingkat mip yang pas dalam anggaran memori. Misalnya, dengan prioritas 2, sistem streaming mipmap mencoba untuk menggunakan tingkat mipmap dua mip lebih tinggi dari Tekstur dengan prioritas 0.

Nomor Positif memberikan prioritas yang lebih tinggi. Nilai valid berkisar dari –128 hingga 127.

Streaming Lightmaps

Anda dapat menggunakan sistem Mipmap Streaming untuk streaming tingkat mip untuk lightmapsTekstur pra-render yang mengandung efek sumber cahaya pada objek statis di tempat kejadian. Lightmaps dilalui atas geometri adegan untuk menciptakan efek pencahayaan. More info
Lihat di Glossary
.

Anda dapat mengedit pengaturan Mip Map Streaming dari aset lightmap dengan cara yang sama bahwa Anda dapat tekstur lain, tetapi mereka mengatur ulang nilai default mereka ketika Unity mengatur peta lampu. Untuk memecahkan ini, Anda dapat memberitahu Unity untuk menerapkan nilai-nilai ini ketika menghasilkan peta cahaya. Pengaturan PemainPengaturan yang memungkinkan Anda mengatur berbagai pilihan khusus pemain untuk permainan akhir yang dibangun oleh Unity. More info
Lihat di Glossary
(Edit > Project Settings > Player) menyediakan dua kontrol untuk mengatur streaming dan prioritas untuk peta cahaya yang dihasilkan: Lightmap Streaming Enabled dan Streaming Priority.

Sitemap Streaming dan mengkonfigurasi pekerjaan prioritas dengan cara yang sama untuk peta lampu untuk tekstur biasa.

Mengkonfigurasi Mipmap Streaming

Anda dapat mengkonfigurasi pengaturan default di Editor Unity, dan kemudian gunakan API documentation untuk menimpa pengaturan ini jika diperlukan.

Menyiapkan anggaran memori

Properti Memory Budget menentukan jumlah maksimum penggunaan memori Unity untuk tekstur. Jika anggaran memori Anda terlalu kecil, Unity menurunkan resolusi tekstur dalam sceneAdegan berisi lingkungan dan menu permainan Anda. Pikirkan setiap file Adegan unik sebagai tingkat yang unik. Di setiap Adegan, Anda menempatkan lingkungan, hambatan, dan dekorasi, pada dasarnya merancang dan membangun permainan Anda dalam potongan-potongan. More info
Lihat di Glossary
Anda. Ini dapat menyebabkan tekstur untuk pop atau beban perlahan. Namun, anggaran memori harus sekecil mungkin untuk memungkinkan memori untuk sumber daya lain.

Mengatur anggaran memori di jendela Pengaturan kualitas, dengan properti Texture Streaming > Memory Budget.

Ketika anggaran memori penuh, mipmaps bersatu tidak menggunakan, untuk membuat ruang bagi mereka yang perlu digunakan. Anda dapat mengontrol berapa banyak mipmap yang tidak digunakan dengan Max Level Reduction.

Nilai ini juga merupakan tingkat mipmap yang sistem Mipmap Streaming pada awalnya memuat startup. Misalnya, ketika ini diatur ke 2, Unity melewatkan dua mipmap tertinggi pada beban pertama.

Mengatur nilai ini di jendela Pengaturan kualitas, dengan properti Texture Streaming > Max Level Reduction.

Sitemap Unity memprioritaskan nilai Note: atas anggaran memori. Tidak pernah membuang lebih banyak mipmap daripada nilai Max Level Reduction, bahkan jika ini menyebabkan tekstur memori melebihi anggaran.Max Level Reduction value, even if this causes the textures memory to exceed the budget.

Anggaran memori termasuk tekstur yang tidak menggunakan Mipmap Streaming. Misalnya, jika anggaran Anda 100MB dan Anda memiliki 90MB tekstur yang tidak menggunakan Mipmap Streaming, Unity mencoba untuk menyesuaikan semua mipmap streaming di 10MB yang tersisa. Jika tidak bisa, itu memuatnya pada resolusi yang lebih rendah. Unity selalu memuat tekstur yang tidak menggunakan Mipmap Streaming dengan resolusi penuh, bahkan jika melebihi anggaran.

Untuk mengetahui apa anggaran memori Anda harus:

  1. Lihat nilai Tekstur.desiredTextureMemory ketika proyek Anda berjalan.
  2. Mengatur nilai Memory Budget sedikit lebih tinggi dari nilai Tekstur.desiredTextureMemory.

Ini memastikan ada cukup memori tekstur yang tersedia untuk area yang paling intensif dari adegan Anda dan mencegah tekstur dari menjatuhkan ke resolusi yang lebih rendah. Jika Anda memiliki memori tambahan yang tersedia, Anda dapat mengatur anggaran memori yang lebih besar sehingga Unity dapat menyimpan data tekstur yang tidak terlihat di adegan Anda dalam cache streaming.

Mengkonfigurasi Kamera

Secara default, ketika Anda mengaktifkan sistem Mipmap Streaming, Unity memungkinkan untuk semua kamera. Anda dapat menonaktifkan pengaturan ini jika Anda suka.

Kontrol apakah Unity memungkinkan mipmap Streaming untuk semua Kamera di jendela Pengaturan kualitas, dengan properti Texture Streaming > Add All Cameras.

Jika Anda ingin mengecualikan Kamera tertentu, tambahkan komponen Web Server ke Kamera itu dan kemudian menonaktifkannya.

Jika Anda menonaktifkan Add All Cameras, maka Anda harus mengaktifkan mipmap Streaming per-Camera. Untuk melakukan ini, tambahkan komponen Web Server ke GameObjectObjek mendasar dalam adegan Unity, yang dapat mewakili karakter, props, pemandangan, kamera, waypoints, dan banyak lagi. Fungsi GameObject didefinisikan oleh Komponen yang melekat padanya. More info
Lihat di Glossary
yang sama sebagai komponen Kamera.

Komponen ini juga memungkinkan Anda untuk menyesuaikan pengaturan bias mip per-Camera.

The Streaming Controller component
Komponen Pengontrol Streaming

Mengkonfigurasi Bermain Perilaku mode

Mipmap Streaming diaktifkan dalam Play Mode secara default.

Kontrol apakah Unity memungkinkan Mipmap Streaming di Play Mode di jendela Pengaturan Editor, dengan properti Streaming Settings > Enable Texture Streaming in Play Mode.

Sitemap Streaming diaktifkan dalam mode Play, tetapi tidak diaktifkan dalam mode Edit (atau cara lain di sekitar), menaiki dan keluar dari mode Play membutuhkan sedikit lebih lama. Ini mencegah Unity dari membongkar dan memuat ulang data mipmap, dan harus mempercepat aliran kerja Mode Play.

Edit > Project Settings > Editor > Streaming Settings
Edit > Project Settings > Editor > Streaming Settings

WordPress.org

Unity memiliki mode tampilan debugging Mipmap bawaan. Untuk mengaksesnya, klik Tampilan adegan kontrol drop-down dan pilih Texture Streaming. Mode tampilan ini menyusut GameObjects warna-warna berikut, tergantung pada status mereka di sistem Mipmap Streaming:

  • Green untuk Tekstur yang telah mengurangi mipmap karena sistem Mipmap Streaming.
  • Red untuk Tekstur yang memiliki mipmap yang lebih sedikit karena sistem Mipmap Streaming tidak memiliki cukup sumber daya untuk memuat semuanya.
  • Blue untuk Tekstur yang tidak diatur untuk streaming, atau jika tidak ada renderer menghitung tingkat mip.

Anda juga dapat menulis alat debug kustom Anda sendiri dan visualisasi menggunakan ruang Debugging API%

Important : Ketika tekstur utama diatur menggunakan atribut MainTexture, tidak terlihat dalam tampilan permainan ketika Anda menggunakan tekstur streaming mode tampilan debugging atau alat debug kustom.

Bagaimana Unity menghitung tingkat mip yang diperlukan

Untuk tekstur yang menggunakan Mipmap Streaming, Unity menghitung tingkat mip yang benar menggunakan salah satu metode berikut:

  • Jika Anda menetapkan tekstur ke materi yang digunakan oleh komonennt Unity Renderer, Unity menghitung tingkat mip secara otomatis.
  • Jika tidak, Anda harus meminta tingkat mip secara manual menggunakan Tekstur2D.requestedMipmapLevel.

Jika Anda tidak melakukan ini, Unity tidak dapat menghitung tingkat mip yang benar, dan itu memuat tekstur menggunakan mips berkualitas rendah. Ini dapat muncul buram.

Sitemap Sistem berikut tidak menggunakan komponen Renderer standar. Ini berarti Anda harus mengatur mips yang diminta untuk sistem ini:Note: The following systems don’t use standard Renderer components. This means you must manually set the requested mips for these systems:

  • Tekstur proyektor Decal.
  • Reflection probeKomponen rendering yang menangkap pandangan bulat dari sekitarnya di semua arah, seperti kamera. Gambar yang ditangkap kemudian disimpan sebagai kubus yang dapat digunakan oleh benda dengan bahan reflektif. More info
    Lihat di Glossary
    : Mips resolusi rendah adalah tabel lookup untuk kekasaran. Oleh karena itu, jika Unity menggunakan tingkat mipmap yang lebih rendah, bahan render menggunakan kekasaran yang salah.
  • ShadersProgram yang berjalan di GPU. More info
    Lihat di Glossary
    yang menggunakan koordinasi tekstur UV dalam saluran selain Mesh.uv (juga disebut UV0), atau mengubah koordinasi tekstur dalam naungan. Satu-satunya pengecualian adalah perubahan skala dan terjemahan (lihat di bawah).

Limitations

  • Unity tidak mendukung Mipmap Streaming pada tekstur TerrainPemandangan di tempat kejadian Anda. Terrain GameObject menambahkan pesawat datar besar untuk adegan Anda dan Anda dapat menggunakan jendela Inspektur Terrain untuk menciptakan lanskap rinci. More info
    Lihat di Glossary
    . Ini karena Terrain Tekstur perlu tersedia pada resolusi penuh setiap kali untuk memungkinkan Unity untuk ubin dan campuran tekstur.
  • Ketika komponen Renderer aktif, meshnya membutuhkan metrik distribusi UV yang valid untuk menghitung tingkat mip yang diinginkan. Unity menghitung metrik distribusi secara otomatis sebagai bagian dari proses impor mesh.

    Jika Anda membuat jala dari kode, Unity tidak menghitung metrik distribusi secara otomatis dan oleh karena itu memuat tingkat mip yang salah. Untuk secara manual memicu perhitungan metrik distribusi UV menggunakan Mesh.RecalculateUVDistributionMetrics.
  • Ketika Unity membuat Tekstur yang dikelok langsung dengan API (seperti Grafik.DrawMeshNow sistem tidak memiliki batas renderer atau informasi lainnya untuk menghitung tingkat mip. Ini berarti Anda perlu mengatur tingkat mip Tekstur secara manual atau menonaktifkan Mipmap Streaming pada Tekstur ini. Lihat Tekstur2D.requestedMipmapLevel untuk detail lebih lanjut tentang cara mengatur beban Unity tingkat mip.
  • Ketika Unity menghitung miplevel untuk tekstur yang terlihat untuk skala dan terjemahan tekstur itu dalam nilai _ST dengan nama yang sama dengan tekstur yang ditandai dalam naungan Anda. Misalnya, jika Anda merujuk tekstur Anda berada di naungan menggunakan _MainTex, Unity akan mencari _MainTex_ST.
Perkenalan Mipmaps
Mipmap Database