Panduan ini adalah versi terbaru dari posting blog Unity berikut: .
Pertama, mari kita lewat definisi beberapa istilah rendering grafis penting yang akan Anda temui sering dalam artikel ini.
Operasi ini diulang banyak kali detik, tergantung pada tingkat bingkai.
Flowchart berikut memberikan perspektif tingkat tinggi dari seluruh pipa pencahayaan di Unity, dari sudut pandang pencipta konten.
Anda mulai dengan memilih pipa render. Kemudian Anda memutuskan bagaimana pencahayaan tidak langsung dihasilkan dan memilih sistem Penerangan Global sesuai. Setelah Anda memastikan semua pengaturan pencahayaan global tuned tepat untuk proyek Anda, Anda dapat terus menambahkan, Komponen 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, probe cahaya menyimpan informasi tentang bagaimana cahaya melewati ruang di tempat kejadian Anda. Koleksi probe cahaya yang diatur dalam ruang tertentu dapat meningkatkan pencahayaan pada objek bergerak dan pemandangan LOD statis dalam ruang itu. More info
Lihat di Glossary, dan. Detail penggunaan dan fitur dari semua benda pencahayaan ini berada di luar ruang lingkup artikel ini, oleh karena itu saya mendorong Anda untuk membaca bagian Pencahayaan dari manual untuk mempelajari cara memanfaatkannya dengan benar dalam proyek Anda.
Sampai awal 2018, hanya satu render pipa yang tersedia di Unity; . Pipa render ini menawarkan pilihan Teknik yang menggunakan pipa render untuk membuat grafik. Memilih jalur rendering yang berbeda mempengaruhi bagaimana pencahayaan dan pembentukan dihitung. Beberapa jalur rendering lebih cocok untuk berbagai platform dan perangkat keras daripada yang lain. More info
Lihat di Glossary: maju, dan deferred.
Pada bulan Januari 2018, Unity meluncurkan, yang memungkinkan Anda untuk menyesuaikan rendering loop melalui skrip C#. Ini sebenarnya revolusi kecil di realm mesin permainan: pengguna akhirnya dapat mempersonalisasikan penanaman benda, gambar mereka, dan proses pasca bingkai tanpa harus menggunakan bahasa pemrograman tingkat rendah seperti C ++.
Unity saat ini menyediakan dua SRP yang dibangun sebelumnya:
Ubin adalah bagian pixel persegi 2-dimensi kecil dari bingkai, dan klaster adalah volume 3-dimensi di dalam frustum kamera. Kedua ubin dan teknik rendering klaster mengandalkan daftar lampu yang mempengaruhi setiap ubin tunggal dan klaster, yang pencahayaan kemudian dapat dikomputasikan dalam satu pass tunggal dengan daftar lampu yang dikenal. Objek berair kemungkinan besar akan diwarnai menggunakan sistem ubin, sedangkan yang transparan akan bergantung pada sistem klaster. Keuntungan utama adalah pemrosesan yang lebih cepat dari pencahayaan dan pengurangan yang cukup besar dalam konsumsi bandwidth dibandingkan dengan Pipeline Render Built-In (deferred), yang tergantung pada akumulasi cahaya multi-pass yang lebih lambat.
Anda dapat menggunakan grafik keputusan berikut untuk dengan cepat menemukan yang membuat pipa Anda harus memilih berdasarkan beberapa kriteria penting.
Anda dapat mengunduh versi terbaru dari HDRP dan URP melalui Manajer Paket Unity (Window > Package Manager). Cara termudah untuk memulai dengan salah satu SRP ini adalah untuk membuat proyek baru dengan dan menggunakan salah satu template yang sesuai.
Jika Anda ingin mengatur proyek Anda untuk HDRP, pastikan Anda memiliki paket yang diperlukan dipasang. Kemudian gunakan (Window > Render Pipeline > HD Render Pipeline Wizard) untuk mengatur proyek Anda dalam satu klik.
Jika Anda memiliki pengetahuan rendering, akrab dengan C #, dan perlu sepenuhnya menyesuaikan renderer untuk Proyek Anda, Anda dapat bereksperimen dengan konsep SRP untuk membuat Pipa Render Scriptable Custom Anda sendiri. Pipa Render Universal sangat mudah untuk memanjang, karena perpustakaan naungannya yang lebih kecil dan kemampuan untuk menyuntikkan, menghapus dan menukarkan melewati dengan cepat.
Mencapai materi proyek Anda dari Pipeline Render Built-In ke HDRP atau URP relatif mudah di Unity, berkat konverter bahan 1-klik di bawah Edit > Render Pipeline > Upgrade…. Perhatikan bahwa itu adalah tindakan yang tidak dapat dibalik. Menyiapkan proyek Anda sebelumnya sangat dianjurkan!
Namun demikian, naungan kustom harus diangkut dengan tangan, sehingga transisi dari Pipeline Render Built-In ke HDRP atau URP selama produksi mungkin memakan waktu, tergantung pada jumlah naungan kustom yang harus Anda tulis.
Selain itu, karena HDRP lebih benar daripada Pipeline Render Built-In, terutama mengenai atenuasi dan distribusi cahaya, Anda tidak boleh mengharapkan proyek Anda terlihat identik setelah beralih ke HDRP.
Selanjutnya, HDRP dan URP tidak kompatibel silang, karena mereka tidak berbagi fitur rendering yang sama. Mencapai proyek Anda dari HDRP ke URP dan sebaliknya dimungkinkan, tetapi tidak operasi 1-klik dan akan memerlukan pekerjaan manual dari pencahayaan, bahan, dan naungan!
Dua sistem Penerangan Global yang tersedia dalam Unity adalah:
Penerangan Global Realtime: Sistem ini dibangun pada EnlightenSistem pencahayaan oleh Geomerics yang digunakan dalam Unity untuk lightmapping dan untuk Mencerahkan Penerangan Global Realtime. More info
Lihat di Glossary, solusi perantara pihak ketiga. Hal ini memungkinkan Anda untuk menyesuaikan pencahayaan Anda secara real-time jika Anda melakukan prekompute dan tidak memodifikasi GameObjectsObjek 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 di adegan Anda dengan pengaturan ContributeGI diaktifkan. Lihat dan untuk informasi kompatibilitas spesifik untuk pipa render skrip. Kecuali ditentukan, Pipeline Render Built-In mendukung semua fitur yang dijelaskan dalam artikel ini.
Penerangan Global Baked: Ketika Anda menggunakan sistem ini, Data pencahayaan bak Unity ke tekstur yang disebut lightmaps, dan ke dalam Probe Cahaya dan ke dalam probe refleksi. Ada dua lightmappers: Enlighten Baked Global Illumination (deprecated) dan Progresif Lightmapper (CPU atau GPU). Lihat dan dokumentasi untuk informasi kompatibilitas spesifik untuk pipa render skrip. Kecuali ditentukan, Pipeline Render Built-In mendukung semua fitur yang dijelaskan dalam artikel ini.
Progresif Lightmapper menghitung nilai pencahayaan tidak langsung menggunakan penginapan jalur. Hal ini dapat memprioritaskan pencahayaan yang mempengaruhi benda-benda yang terlihat pada kamera scene viewTampilan interaktif ke dunia yang Anda buat. Anda menggunakan Adegan Lihat untuk memilih dan posisi pemandangan, karakter, kamera, lampu, dan semua jenis lain dari Game Object. More info
Lihat di Glossary. Meskipun hanya memperbarui pencahayaan untuk bagian-bagian lightmaps meningkatkan waktu bake secara keseluruhan, itu juga memungkinkan Anda untuk lebih cepat menyalakan desain pencahayaan Anda.
Untuk informasi lebih lanjut tentang fitur pencahayaan di Pipa Render Scriptable, lihat dan .
Tidak peduli sistem Penerangan Global yang Anda gunakan, Unity hanya akan mempertimbangkan benda-benda yang ditandai selama baking/precomputing pencahayaan. Objek dinamis (yaitu non-statis) harus bergantung pada Probe Cahaya yang Anda letakkan di seluruh adegan untuk menerima pencahayaan tidak langsung.
Karena baking/precomputing dari pencahayaan adalah proses yang relatif lambat, hanya aset besar dan kompleks dengan variasi pencahayaan yang berbeda, seperti cekung dan bentuk diri, harus ditandai sebagai "Contribute GI". Mesh kecil dan cembung yang menerima pencahayaan homogen tidak boleh ditandai seperti itu, dan mereka harus, oleh karena itu, menerima pencahayaan tidak langsung dari yang menyimpan perkiraan sederhana dari pencahayaan. Objek dinamis yang lebih besar dapat mengandalkan, untuk menerima pencahayaan tidak langsung lokal yang lebih baik. Membatasi jumlah objek yang ditandai sebagai "Contribute GI" di tempat kejadian Anda benar-benar penting untuk meminimalkan waktu baking sambil mempertahankan kualitas pencahayaan yang memadai. Anda dapat mempelajari lebih lanjut tentang proses optimasi ini dan pentingnya pencahayaan Probe dalam hal ini.
Editor Unity dan Pemain memungkinkan Anda untuk menggunakan Penerangan Global Enlighten Realtime dan pencahayaan panggang pada saat yang sama.
Namun, secara bersamaan memungkinkan fitur-fitur ini sangat meningkatkan waktu baking dan penggunaan memori pada runtime, karena mereka tidak menggunakan set data yang sama. Anda dapat mengharapkan perbedaan visual antara cahaya tidak langsung yang Anda miliki dan cahaya tidak langsung yang disediakan oleh Enlighten Realtime Global Illumination, terlepas dari lightmapper yang Anda gunakan untuk memanggang. Hal ini karena Enlighten Realtime Global Illumination sering beroperasi pada resolusi yang berbeda secara signifikan daripada backends baking Unity, dan bergantung pada teknik yang berbeda untuk mensimulasikan pencahayaan tidak langsung.
Jika Anda ingin menggunakan Penerangan Global Enlighten Realtime dan pencahayaan panggang pada saat yang sama, membatasi penggunaan simultan dari kedua sistem pencahayaan global untuk platform high-end dan / atau untuk proyek yang memiliki adegan yang dikontrol erat dengan biaya yang dapat diprediksi. Hanya pengguna ahli yang memiliki pemahaman yang sangat baik tentang semua pengaturan pencahayaan dapat secara efektif menggunakan pendekatan ini. Akibatnya, memilih salah satu dari dua sistem pencahayaan global biasanya merupakan strategi yang lebih aman untuk sebagian besar proyek. Menggunakan kedua sistem jarang dianjurkan.
Properti Mode dari komponen Cahaya adalah sumber kebingungan yang umum.
Ada tiga Mode cahayaSifat ringan yang menentukan penggunaan Cahaya. Bisa diatur ke Realtime, Baked dan Campuran. More info
Lihat di Glossary yang tersedia dalam Inspektur cahaya:
Penting untuk dicatat bahwa mode cahaya hanya relevan jika sistem Penerangan Global Baked diaktifkan. Jika Anda tidak menggunakan sistem iluminasi global atau hanya menggunakan sistem Iluminasi Global Enlighten, maka semua lampu Baked dan Campuran akan berperilaku meskipun properti Mode mereka diatur ke Realtime.
Diagram berikut menggabungkan flowchart keputusan dengan tabel perbandingan; dapat membantu Anda memutuskan mode cahaya mana yang sesuai setiap kali cahaya baru ditambahkan ke dalam adegan.
Seperti yang Anda lihat di diagram sebelumnya, semua Lampu Campuran di Adegani memiliki kemampuan baked dan real-time tertentu, tergantung pada Mode Pencahayaan yang Anda pilih di jendela Pencahayaan.
Ada tiga mode untuk dipilih:
Shadowmask Lighting Mode memiliki dua pengaturan kualitas:
Saat menggunakan fitur HDRP, fitur ShadowmaskTekstur yang berbagi tata letak UV yang sama dan resolusi dengan peta cahaya yang sesuai. More info
Lihat di Glossary diaktifkan dalam Aset HDRP yang ditetapkan dalam pengaturan Grafik; maka harus diaktifkan khusus untuk kamera Anda (s) melalui .
Lihat dan dokumentasi untuk informasi kompatibilitas spesifik untuk pipa render skrip. Kecuali ditentukan, Pipeline Render Built-In mendukung semua fitur yang dijelaskan dalam artikel ini.
Sekarang kami telah memperkenalkan pipa render dan fitur pencahayaan utama, mari kita lihat beberapa contoh proyek dan melihat pengaturan mana yang bisa digunakan untuk menyalakannya. Karena setiap proyek unik, Anda mungkin menggunakan sedikit pilihan berbeda berdasarkan kebutuhan Anda.
Jika Anda bergantung pada Asset StoreSebuah perpustakaan yang berkembang dari aset gratis dan komersial yang diciptakan oleh Unity dan anggota komunitas. Menawarkan berbagai aset, dari tekstur, model dan animasi ke seluruh contoh proyek, tutorial dan ekstensi Editor. More info
Lihat di Glossary untuk membangun prototipe Anda, Pipeline Render Built-In bisa menjadi satu-satunya pipa render yang cocok, karena sebagian besar aset yang ditemukan di Toko tidak sepenuhnya kompatibel dengan HDRP dan URP; tidak ada, kompatibilitas aset akan meningkatkan waktu. Jika Anda membangun semua aset dari tanah dan sudah memiliki ide yang jelas dari persyaratan proyek Anda, maka Anda bisa memilih salah satu dari dua SRP (yaitu URP atau HDRP) atau bahkan membuat satu kustom.
Ketika Anda berada di tahap awal (pre-) produksi dan membutuhkan giliran cepat dan fleksibilitas maksimum untuk penerangan, Anda mungkin lebih suka pendekatan real-time penuh yang tidak memerlukan prakomputasi, oleh karena itu Anda mungkin ingin mematikan baik Baked Global Illumination dan Enlighten Realtime Global Illumination. Untuk meringankan kurangnya pencahayaan tidak langsung yang tepat, Anda dapat mengaktifkan Ruang Layar Ambient OcclusionMetode perkiraan berapa banyak cahaya ambient (cahaya tidak datang dari arah tertentu) dapat memukul titik di permukaan.
Lihat di Glossary: itu dapat membantu tanah objek di tempat kejadian dengan menawarkan bayangan kontak real-time murah.
Jika Anda menargetkan perangkat seluler, URP bisa menjadi kandidat yang bagus untuk memastikan kinerja yang solid untuk permainan Anda. Ini dalam banyak kasus mungkin untuk menyesuaikan URP sesuai dengan kebutuhan spesifik permainan Anda, dengan bantuan dari programmer grafis.
The Built-In Render Pipeline dan URP kedua mendukung Shadowmask Lighting Mode yang memungkinkan untuk Anda untuk memanggang bake untuk objek statis sambil tetap memungkinkan benda-benda dinamis untuk melemparkan bayangan real-time. Jika Shadowmasks terlalu mahal untuk proyek Anda, Anda dapat jatuh kembali ke mode Subtractive termurah. Akhirnya, jalan rendering ke depan mungkin pilihan terbaik jika Anda memiliki sejumlah lampu yang sangat kecil di tingkat Anda, dan jika Anda menargetkan perangkat keras yang lebih tua.
Jika Anda bertujuan untuk visual berkualitas AAA pada PC dan konsol untuk penembakan orang pertama linier Anda, HDRP harus menjadi pipa render yang disukai. Sekali lagi, dengan bantuan programmer grafis, SRP kustom juga bisa dikembangkan.
Jika tingkat Anda mengandung banyak lampu pengecoran bayangan real-time (misalnya props cahaya yang merusak dan lampu bergerak), kemudian menggunakan sistem Penerangan Global Baked dengan mode Indirect Baked harus memastikan Anda mendapatkan pencahayaan tak langsung yang besar dari lampu directional campuran dan Baked lightsKomponen ringan yang properti mode ditetapkan ke Baked. Unity pre-kalculates penerangan dari Lampu Baked sebelum runtime, dan tidak termasuk dalam perhitungan pencahayaan runtime. More info
Lihat di Glossary dalam prop cahaya statis. Jika tingkat Anda terdiri dari proporsi yang lebih besar dari lampu pengecoran bayangan tetap, maka pendekatan dengan Shadowmasks bisa direkomendasikan karena HDRP menawarkan mode hybrid Shadowmask yang besar yang memberi Anda kendali lebih atas campuran antara bayangan real-time dan dipanggang.
Jika Anda juga berencana untuk mendukung Nintendo Switch, kemudian menggunakan URP akan dianjurkan, sehingga Anda dapat mendukung sebagian besar platform game di pasar dan tidak harus melalui proses port yang berpotensi membosankan dari HDRP ke URP, atau sebaliknya.
Jika Anda berencana untuk melepaskan game royale pertempuran untuk PC dan konsol, yang memiliki lingkungan skala besar dan pencahayaan dinamis penuh, Anda harus memilih HDRP, atau memperpanjangnya untuk menyesuaikan pipa rendering ke proyek Anda. Anda bisa mempertimbangkan URP jika Anda tidak bertujuan untuk kesetiaan visual AAA dan menargetkan perangkat seluler atau sistem dengan spesifikasi yang lebih rendah.
Untuk skenario tertentu ini, jika Anda menggunakan Pipeline Render Built-in, mengaktifkan Penerangan Global Enlighten Realtime dan sistem Penerangan Global Baked tidak dianjurkan, karena overhead yang dihasilkan dalam hal manajemen kinerja dan adegan untuk tingkat immense bisa bermasalah. argumen lain terhadap penggunaan sistem pencahayaan global adalah sifat yang tidak dapat diprediksi dari permainan multiplayer berskala besar ini: estimasi kinerja adalah misalnya lebih sulit daripada di tingkat linier yang sangat discript.
Lansekap rendering telah berubah secara radikal dalam Unity selama beberapa tahun terakhir, berkat pengenalan pipa Render Scriptable. Oleh karena itu, menjaga semua perubahan ini dan implikasi mereka untuk pipa pencahayaan dapat melelahkan.
Semoga, panduan ini dan banyak ilustrasi telah memberi Anda pemahaman yang lebih baik tentang kemampuan setiap Render Pipeline sehingga Anda dapat secara percaya diri memulai proyek Anda di Unity dengan pengaturan rendering dan pencahayaan yang tepat!
Anda dapat mempelajari lebih lanjut tentang pencahayaan di Unity dan pipa rendering dengan halaman berikut:
&