Mendefinisikan jalur rendering
Vertex Lit Rendering Path

Legacy Deferred rendering path

Halaman ini mendetail dari Legacy Deferred (light prepass) jalur renderingTeknik 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
di Unity’s Built-in Render PipelineRangkaian operasi yang mengambil isi dari Adegan, dan menampilkannya di layar. Unity memungkinkan Anda memilih dari pipa render yang dibangun sebelumnya, atau menulis sendiri. More info
Lihat di Glossary
. Lihat Artikel untuk gambaran teknis dari pencahayaan yang rusak.

Note: Jalur rendering Legacy Deferred dianggap sebagai fitur legacy dimulai dengan Unity 5.0, karena tidak mendukung beberapa fitur rendering (misalnya naungan standar, probe refleksi). Proyek baru harus mempertimbangkan menggunakan jalur rendering Deferred ShadingSebuah jalur rendering di Pipa Render Built-in yang tidak membatasi jumlah Lampu yang dapat mempengaruhi GameObject. Semua Lampu dievaluasi per-piksel, yang berarti bahwa mereka semua berinteraksi dengan peta normal dan sebagainya. Selain itu, semua Lampu bisa memiliki cookie dan bayangan. More info
Lihat di Glossary
.

NOTE: rendering yang rusak tidak didukung ketika menggunakan proyeksi orografi. Jika mode proyeksi cameraKomponen yang menciptakan gambar sudut pandang tertentu di tempat kejadian Anda. Output ditarik ke layar atau ditangkap sebagai tekstur. More info
Lihat di Glossary
diatur ke Orthographic, kamera akan selalu menggunakan rendering Forward.

Overview

Ketika menggunakan Deferred Lighting, tidak ada batasan pada jumlah lampu yang dapat mempengaruhi objek. Semua lampu dievaluasi per-piksel, yang berarti bahwa mereka semua berinteraksi dengan benar dengan normal mapsJenis tekstur Peta Bump yang memungkinkan Anda untuk menambahkan detail permukaan seperti benjolan, alur, dan goresan ke model yang menangkap cahaya seolah-olah mereka diwakili oleh geometri nyata.
Lihat di Glossary
, dll. Selain itu, semua lampu bisa memiliki cookie dan bayangan.

Pencahayaan rusak memiliki keunggulan bahwa overhead pemrosesan pencahayaan proporsional dengan jumlah pixelsUnit terkecil dalam gambar komputer. Ukuran piksel tergantung pada resolusi layar Anda. Pencahayaan pixel dihitung pada setiap piksel layar. More info
Lihat di Glossary
cahaya bersinar. Ini ditentukan oleh ukuran volume cahaya pada 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
terlepas dari berapa banyak objek yang diterangi. Oleh karena itu, kinerja dapat ditingkatkan dengan menjaga lampu kecil. Pencahayaan rusak juga memiliki perilaku yang sangat konsisten dan dapat diprediksi. Efek setiap cahaya dikomputasikan per-piksel, sehingga tidak ada komputasi pencahayaan yang memecah pada segitiga besar.

Di sisi bawah, pencahayaan deferred tidak memiliki dukungan nyata untuk anti-aliasing dan tidak dapat menangani benda semi-transparan (penawaran akan diberikan menggunakan rendering forward). Tidak ada dukungan untuk bendera Bayangan Receive 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
dan culling masksMemungkinkan Anda untuk memasukkan atau membatasi objek untuk diberikan oleh Kamera, dengan Layer.
Lihat di Glossary
hanya didukung dengan cara terbatas. Anda hanya dapat menggunakan hingga empat masker. Itu, culling layer maskNilai yang menentukan lapisan yang termasuk atau dikecualikan dari operasi, seperti rendering, tabrakan atau kode Anda sendiri. More info
Lihat di Glossary
Anda setidaknya harus mengandung semua lapisan minus empat lapisan sewenang-wenang, jadi 28 dari 32 lapisan harus diatur. Jika Anda akan mendapatkan artefak grafis.

Requirements

Ini membutuhkan kartu grafis dengan model ShaderProgram yang berjalan di GPU. More info
Lihat di Glossary
3.0 (atau kemudian), dukungan untuk tekstur render Kedalaman dan stencil buffersSebuah toko memori yang memegang nilai per-piksel 8-bit. Dalam Unity, Anda dapat menggunakan penyangga stensil untuk piksel bendera, dan kemudian hanya render ke piksel yang melewati operasi stensil. More info
Lihat di Glossary
dua sisi. Kebanyakan kartu grafis PC dibuat setelah pencahayaan deferred dukungan 2004, termasuk GeForce FX dan kemudian, Radeon X1300 dan kemudian, Intel 965 / GMA X3100 dan kemudian. Di ponsel, semua OpenGL ES 3.0 mampu GPU mendukung pencahayaan yang rusak, dan beberapa OpenGL ES 2.0 mampu mendukungnya juga (yang melakukan tekstur kedalaman dukungan).

Pertimbangan Kinerja

overhead rendering lampu real-time dalam pencahayaan deferred proporsional dengan jumlah piksel yang diterangi oleh cahaya dan not tergantung pada kompleksitas adegan. Jadi titik kecil atau lampu tempat sangat murah untuk render dan jika mereka sepenuhnya atau sebagian dikosongkan oleh objek adegan maka mereka bahkan lebih murah.

Tentu saja, lampu dengan bayangan jauh lebih mahal daripada lampu tanpa bayangan. Dalam pencahayaan yang rusak, benda-benda bayangan-casting masih perlu diberikan sekali atau lebih untuk setiap lampu bayangan-casting. Selanjutnya, naungan pencahayaan yang menerapkan bayangan memiliki overhead rendering yang lebih tinggi daripada yang digunakan ketika bayangan dinonaktifkan.

Detail Pelaksanaan

Ketika Deferred Lighting digunakan, proses rendering di Unity terjadi dalam tiga umpan:

  1. Base Pass: objek yang diberikan untuk menghasilkan penyangga ruang layar dengan kedalaman, normal, dan kekuatan specular.
  2. Pencahayaan lulus: penyangga yang dihasilkan sebelumnya digunakan untuk membandingkan pencahayaan ke penyangga ruang layar lain.
  3. Akhir berlalu: benda-benda yang diberikan lagi. Mereka mengambil pencahayaan yang sebanding, menggabungkannya dengan tekstur warna dan menambahkan pencahayaan ambient / emissive.

Objek dengan naungan yang tidak dapat menangani pencahayaan yang rusak diberikan setelah proses ini selesai, menggunakan jalur forward renderingSebuah jalur rendering yang membuat setiap objek dalam satu atau lebih melewati, tergantung pada lampu yang mempengaruhi objek. Lampu sendiri juga diperlakukan berbeda dengan Rendering Maju, tergantung pada pengaturan dan intensitas mereka. More info
Lihat di Glossary
.

Base Pass

Basis lulus renders setiap objek sekali. Lihat ruang normal dan kekuatan specular diberikan ke ARGB32 Render TeksturJenis Tekstur khusus yang diciptakan dan diperbarui pada runtime. Untuk menggunakannya, pertama membuat Tekstur Render baru dan menunjuk salah satu Kamera Anda untuk membuatnya. Kemudian Anda dapat menggunakan Tekstur Render dalam Bahan seperti Tekstur biasa. More info
Lihat di Glossary
tunggal (dengan normal di saluran RGB dan daya specular di A). Jika platform dan perangkat keras memungkinkan penyangga Z untuk dibaca sebagai tekstur maka kedalaman tidak diberikan secara eksplisit. Jika penyangga Z tidak dapat diakses sebagai tekstur maka kedalaman diberikan dalam umpan rendering tambahan menggunakan pengganti warna.

Hasil dari lulus dasar adalah penyangga Z yang diisi dengan konten adegan dan Tekstur Render dengan normal dan kekuatan specular.

Lighting Pass

Pencahayaan melewati pencahayaan computes berdasarkan kedalaman, normal dan kekuatan specular. Pencahayaan bersaing di ruang layar, sehingga waktu yang diperlukan untuk memproses independen dari kompleksitas adegan. Penyangga pencahayaan adalah Tekstur Render ARGB32 tunggal, dengan pencahayaan diffuse di saluran RGB dan pencahayaan spular monokrom di saluran A. Nilai pencahayaan secara logarithmically dikodekan untuk memberikan jangkauan dinamis yang lebih besar daripada biasanya dimungkinkan dengan tekstur ARGB32. Ketika kamera memiliki rendering HDRkisaran dinamis tinggi
Lihat di Glossary
diaktifkan, maka penyangga pencahayaan adalah format ARGBHalf, dan pengkodean logarimik tidak dilakukan.

Lampu titik dan tempat yang tidak melintasi pesawat dekat kamera dirender sebagai (front faces of) bentuk 3D, dengan uji kedalaman terhadap adegan diaktifkan. Lampu melintasi pesawat dekat juga dirender menggunakan bentuk 3D, tetapi sebagai wajah belakang dengan uji kedalaman terbalik. Ini membuat sebagian atau lampu tertutup sepenuhnya sangat murah untuk membuat. Jika cahaya mengganggu pesawat kamera jauh dan dekat pada saat yang sama, optimasi di atas tidak dapat digunakan, dan cahaya ditarik sebagai quadObjek primitif yang menyerupai pesawat tetapi tepinya hanya satu unit panjang, hanya menggunakan 4 simpul, dan permukaan berorientasi pada pesawat XY ruang koordinat lokal. More info
Lihat di Glossary
ketat tanpa pengujian kedalaman.

Di atas tidak berlaku untuk lampu arah, yang selalu diberikan sebagai quad layar penuh.

Jika cahaya memiliki bayangan diaktifkan maka mereka juga dirender dan diterapkan di lewat ini. Perhatikan bahwa bayangan tidak datang untuk “bebas”; kasir bayangan perlu diberikan dan warna cahaya yang lebih kompleks harus diterapkan.

Satu-satunya model pencahayaan yang tersedia adalah Blinn-Phong. Jika model yang berbeda ingin Anda dapat memodifikasi lampu melewati naungan, dengan menempatkan versi modifikasi dari Internal-PrePassLighting. file naungan dari ke dalam folder bernama "Resources" di folder "Assets". Kemudian pergi ke Edit->Project Settings->Graphics window. Mengubah dropdown “Legacy Deferred” ke “Custom Shader”. Kemudian ubah opsi Shader yang muncul ke naungan pencahayaan yang Anda gunakan.

Final Pass

Pass akhir menghasilkan gambar rendering akhir. Di sini semua objek dirender lagi dengan naungan yang mengambil pencahayaan, menggabungkannya dengan tekstur dan menambahkan pencahayaan yang diizinkan. 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
juga diterapkan dalam umpan akhir. Dekat dengan kamera, pencahayaan real-time digunakan, dan hanya pencahayaan tidak langsung panggang ditambahkan. Persilangan ini menjadi pencahayaan panggang penuh jauh dari kamera.

Mendefinisikan jalur rendering
Vertex Lit Rendering Path