Jalur rendering di Pipa Render Built-in
Mendefinisikan jalur rendering

Maju rendering jalur

Halaman ini menjelaskan Forward 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
dalam Unity 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
.

Meneruskan rendering di setiap objek dalam satu atau lebih melewati, tergantung pada lampu yang mempengaruhi objek. Lampu sendiri juga diperlakukan berbeda oleh Forward Rendering, tergantung pada pengaturan dan intensitas mereka.

Detail Pelaksanaan

Dalam rendering Maju, beberapa jumlah lampu paling terang yang mempengaruhi setiap objek diberikan dalam mode celah per-piksel penuh. Kemudian, hingga 4 lampu titik dihitung per-vertex. Lampu lain dikomputasikan sebagai Harmonik bulat (SH), yang jauh lebih cepat tetapi hanya perkiraan. Apakah cahaya akan menjadi cahaya per-piksel atau tidak tergantung pada ini:

  • Lampu yang memiliki Render Mode mereka diatur ke Not Important selalu per-vertex atau SH.
  • Cahaya directional paling terang selalu per-piksel.
  • Lampu yang memiliki Render Mode mereka diatur ke Important selalu per-piksel.
  • Jika hasil di atas dalam lebih sedikit lampu daripada saat ini Pixel Light Count Pengaturan Kualitas, maka lebih banyak lampu yang diberikan per-piksel, untuk menentukan kecerahan.

Pengirim setiap objek terjadi sebagai berikut:

  • Base Pass menerapkan satu lampu directional per-piksel dan semua lampu per-vertex / SH.
  • Lampu per-piksel lain dirender dalam melewati tambahan, satu lulus untuk setiap cahaya.

Misalnya, jika ada beberapa objek yang dipengaruhi oleh sejumlah lampu ( lingkaran dalam gambar di bawah ini, dipengaruhi oleh lampu A ke H):

Mari kita asumsikan lampu A untuk H memiliki warna dan intensitas yang sama dan semua dari mereka memiliki mode rendering otomatis, sehingga mereka akan diurutkan dalam urutan tepat untuk objek ini. Lampu paling terang akan diberikan dalam mode per-piksel per-piksel (A ke D), kemudian hingga 4 lampu dalam mode lit per-vertex (D ke G), dan akhirnya sisa lampu di SH (G ke H):

Perhatikan bahwa kelompok cahaya tumpang tindih; misalnya campuran cahaya per-piksel terakhir menjadi mode lit per-vertex sehingga ada kurang "penipuan ringan" sebagai benda dan lampu bergerak di sekitar.

Base Pass

Base pass render objek dengan satu lampu directional per-piksel dan semua lampu SH / vertex. Pass ini juga menambah pencahayaan 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
, ambient dan emissive dari shaderProgram yang berjalan di GPU. More info
Lihat di Glossary
. Cahaya arah yang diberikan dalam lulus ini dapat memiliki Bayangan. Perhatikan bahwa benda-benda Lightmapped tidak mendapatkan pencahayaan dari lampu SH.

Perhatikan bahwa ketika "OnlyDirectional" pass flag digunakan dalam naungan, maka dasar maju hanya lulus render lampu directional utama, ambient / lightprobe dan lightmaps (bolam SH dan vertex tidak termasuk dalam data yang lewat).

Additional Passes

Pass tambahan diberikan untuk setiap lampu per-piksel tambahan yang mempengaruhi objek ini. Lampu dalam melewati ini secara default tidak memiliki bayangan (sebagai hasilnya, Forward Rendering mendukung satu arah cahaya dengan bayangan), kecuali varian multi_compile_fwdadd_fullshadows shortcut digunakan.

Pertimbangan Kinerja

Lampu per-piksel

Pencahayaan dinamis per-piksel menambah pekerjaan rendering yang signifikan untuk setiap pixelUnit terkecil dalam gambar komputer. Ukuran piksel tergantung pada resolusi layar Anda. Pencahayaan pixel dihitung pada setiap piksel layar. More info
Lihat di Glossary
yang terpengaruh, dan dapat menyebabkan benda-benda yang diberikan dalam beberapa umpan. Hindari memiliki lebih dari satu Pixel Light yang menerangi objek tunggal pada perangkat yang kurang kuat, seperti PC GPU seluler atau low-end, dan gunakan peta cahaya untuk benda statis ringan bukan menghitung pencahayaan mereka setiap bingkai. Pencahayaan dinamis per-vertex dapat menambahkan pekerjaan yang signifikan untuk transformasi simpul, sehingga mencoba untuk menghindari situasi di mana beberapa lampu menyalakan objek tunggal.

Hindari menggabungkan jala yang jauh cukup terpisah untuk dipengaruhi oleh set lampu pixel yang berbeda. Ketika Anda menggunakan pencahayaan pixel, setiap 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
harus diberikan sebanyak berkali-kali karena ada lampu pixel yang menyalakannya. Jika Anda menggabungkan dua mesh yang sangat terpisah, itu meningkatkan ukuran efektif dari objek gabungan. Semua lampu pixel yang menerangi bagian dari objek gabungan ini diperhitungkan selama rendering, sehingga jumlah rendering melewati yang perlu dibuat bisa ditingkatkan. Umumnya, jumlah berlalu yang harus dibuat untuk membuat objek gabungan adalah sum of the number of passes for each of the separate objects, sehingga tidak ada yang diperoleh dengan menggabungkan jala.

Selama rendering, Unity menemukan semua lampu di sekitar jala dan menghitung yang dari lampu-lampu tersebut mempengaruhinya. Pengaturan pada jendela Quality digunakan untuk memodifikasi berapa banyak lampu berakhir sebagai lampu pixel, dan berapa banyak lampu simpul. Setiap cahaya menghitung pentingnya berdasarkan seberapa jauh dari jala dan seberapa intens pencahayaannya - dan beberapa lampu lebih penting daripada yang lain murni dari konteks permainan. Untuk alasan ini, setiap cahaya memiliki pengaturan Render Mode yang dapat diatur ke Important atau Not Important; lampu ditandai sebagai Not Important memiliki overhead rendering yang lebih rendah.

Example: Pertimbangkan permainan mengemudi di mana mobil pemain mengemudi di gelap dengan lampu sorot beralih. Lampu depan mungkin sumber cahaya yang paling visual penting dalam permainan, sehingga Render Mode mereka harus diatur ke Important. Mungkin ada lampu lain dalam permainan yang kurang penting, seperti lampu belakang mobil lain atau tiang lampu jauh, dan yang tidak meningkatkan efek visual jauh dengan lampu pixel. Render Mode untuk lampu seperti itu dapat dengan aman diatur ke Not Important untuk menghindari membuang kapasitas rendering di tempat-tempat di mana ia memiliki sedikit manfaat.

Mengoptimalkan pencahayaan per-piksel menyimpan pekerjaan CPU dan GPU: CPU memiliki panggilan yang lebih sedikit untuk dilakukan, dan GPU memiliki lebih sedikit simpul untuk memproses dan piksel untuk rasterize untuk semua render objek tambahan.

Lampu Harmonik bulat

Lampu Harmonik bulat adalah very cepat untuk render. Mereka memiliki biaya kecil pada CPU, dan adalah gratis untuk GPU untuk menerapkan (yaitu, dasar lulus selalu menyulitkan pencahayaan SH; tetapi karena cara kerja lampu SH, biaya persis sama tidak peduli berapa banyak lampu SH ada).

Sisi bawah lampu SH adalah:

  • Mereka dikomputasikan pada simpul objek, bukan piksel. Ini berarti mereka tidak mendukung Cookie ringan atau 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
    .
  • Pencahayaan SH adalah frekuensi yang sangat rendah. Anda tidak bisa memiliki transisi pencahayaan yang tajam dengan lampu SH. Mereka juga hanya mempengaruhi pencahayaan diffuse (too frekuensi rendah untuk highlights specular).
  • Pencahayaan SH tidak lokal; titik atau tempat lampu SH dekat dengan beberapa permukaan akan "lihat salah".

Singkatnya, lampu SH sering cukup bagus untuk benda dinamis kecil.

Jalur rendering di Pipa Render Built-in
Mendefinisikan jalur rendering