Halaman ini berisi beberapa panduan sederhana untuk mengoptimalkan kinerja rendering dalam aplikasi Anda.
Sebelum Anda melakukan perubahan, Anda harus memberi profil aplikasi Anda untuk mengidentifikasi penyebab masalah. Jika Anda mencoba memecahkan masalah kinerja sebelum Anda memahami penyebabnya, Anda mungkin membuang waktu Anda atau membuat masalah lebih buruk. Selain itu, masalah kinerja yang berkaitan rendering dapat terjadi pada CPU atau GPU. Strategi untuk memperbaiki masalah ini cukup berbeda, sehingga penting untuk memahami di mana masalah Anda sebelum mengambil tindakan.
Artikel berikut di situs Unity Learn adalah pengenalan komprehensif terhadap kinerja grafis, dan berisi informasi tentang mengidentifikasi dan memperbaiki masalah: . Jika Anda belum akrab dengan subjek ini, baca artikel sebelum mengikuti saran di halaman ini.
Biasanya, kontributor terbesar untuk waktu rendering CPU adalah biaya pengiriman perintah rendering ke GPU. Perintah rendering termasuk panggilan penarikan (kommands untuk menggambar geometri), dan perintah untuk mengubah pengaturan pada GPU sebelum menggambar geometri. Jika ini adalah kasus, pertimbangkan opsi ini:
Banyak pendekatan ini juga akan mengurangi pekerjaan yang diperlukan di GPU; misalnya, mengurangi jumlah keseluruhan objek yang disatukan render dalam bingkai akan menghasilkan beban kerja yang berkurang untuk CPU dan GPU.
Ada tiga alasan utama mengapa GPU mungkin gagal menyelesaikan pekerjaannya tepat waktu untuk membuat bingkai.
Jika aplikasi dibatasi oleh tingkat pengisian, GPU mencoba menggambar lebih dari bingkai lebih dari itu dapat menangani. Jika ini adalah kasus, pertimbangkan opsi ini:pixelsUnit terkecil dalam gambar komputer. Ukuran piksel tergantung pada resolusi layar Anda. Pencahayaan pixel dihitung pada setiap piksel layar. More info
Lihat di Glossary per frame than it can handle. If this is the case, consider these options:
Jika aplikasi dibatasi oleh bandwidth memori, GPU mencoba membaca dan menulis lebih banyak data untuk memori khusus daripada dapat menangani dalam bingkai. Ini biasanya berarti bahwa ada terlalu banyak atau tekstur, atau teksturnya terlalu besar. Jika ini adalah kasus, pertimbangkan opsi ini:
Jika sebuah keterlambatan dibatasi oleh pemrosesan simpul, ini berarti bahwa GPU mencoba untuk memproses lebih banyak simpul daripada dapat menangani dalam bingkai. Jika ini adalah kasus, pertimbangkan opsi ini:
Kadang-kadang, mungkin manfaatkan aplikasi Anda untuk mengurangi tingkat bingkai rendering. Ini tidak mengurangi biaya CPU atau GPU rendering bingkai tunggal, tetapi mengurangi frekuensi dengan Unity mana tidak mempengaruhi frekuensi operasi lain (seperti eksekusi skrip).
Anda dapat mengurangi tingkat bingkai rendering untuk bagian aplikasi Anda, atau untuk seluruh aplikasi. Mengurangi tingkat bingkai rendering untuk mencegah penggunaan daya yang tidak perlu, memperpanjang masa pakai baterai, dan mencegah suhu perangkat dari naik ke titik di mana frekuensi CPU dapat throttled. Ini sangat berguna pada perangkat genggam.
Jika profil mengungkapkan bahwa rendering mengkonsumsi proporsi yang signifikan dari sumber daya untuk aplikasi Anda, pertimbangkan bagian aplikasi Anda mungkin menguntungkan dari ini. Kasus penggunaan umum termasuk menu atau layar jeda, ubah permainan berdasarkan di mana permainan menunggu input, dan aplikasi di mana konten sebagian besar statis, seperti UI otomotif.
Untuk mencegah lag input, Anda dapat sementara mengganti tingkat bingkai rendering selama durasi input sehingga masih terasa responsif.
Untuk menyesuaikan tingkat bingkai rendering, gunakan API OnDemandRendering. API bekerja sangat baik dengan .
Aplikasi VR Catatan: tidak mendukung Pengirim Demand. Tidak rendering setiap bingkai menyebabkan visual untuk keluar dari sinkronisasi dengan gerakan kepala dan mungkin meningkatkan risiko penyakit gerak.