Contoh Shader permukaan
Contoh pencahayaan Shader permukaan

Model pencahayaan khusus di Permukaan Shaders

Dalam 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
Built-in, ketika menulis Permukaan ShaderCara merampingkan naungan menulis untuk Pipeline Render Built-in. More info
Lihat di Glossary
, Anda menggambarkan sifat permukaan (seperti warna albedo dan normal), dan Lighting Model menghitung interaksi pencahayaan.

Kompatibilitas pipa Render

Feature name Built-in Render Pipeline Universal Render Pipeline (URP) High Definition Render Pipeline (HDRP) Custom SRP
Surface Shaders Yes No

Untuk cara merampingkan menciptakan benda-benda Shader di URP, lihat Shader Graph.
No

Untuk cara ramping menciptakan benda-benda Shader di HDRP, lihat Shader Graph.
No

Overview

Ada dua model pencahayaan built-in: Lambert untuk pencahayaan diffuse, dan BlinnPhong untuk pencahayaan specular. File Lighting.cginc dalam Unity mendefinisikan model ini (Windows: <unity install path>/Data/CGIncludes/Lighting.cginc; macOS: /Aplikasi/Unity/Unity.app/Contents/CGIncludes/Lighting.cginc).

Kadang-kadang Anda mungkin ingin menggunakan model pencahayaan kustom. Anda dapat melakukan ini dengan Surface ShadersProgram yang berjalan di GPU. More info
Lihat di Glossary
. Model pencahayaan hanya beberapa fungsi Cg / HLSL yang cocok beberapa konvensi.

Menjelaskan model pencahayaan

Model pencahayaan terdiri dari fungsi reguler dengan nama yang mulai Lighting. Anda dapat mendeklarasikan mereka di mana saja di file naungan Anda, atau salah satu file yang disertakan. Fungsinya adalah:

  1. Sitemap Gunakan ini di depan half4 Lighting<Name> (SurfaceOutput s, UnityGI gi); untuk model cahaya yang tergantung rendering pathsTeknik 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
    pada arah tampilan.not dependent on the view direction.

  2. Sitemap Gunakan jalur half4 Lighting<Name> (SurfaceOutput s, half3 viewDir, UnityGI gi); untuk model cahaya yang tergantung 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
    pada arah tampilan.are dependent on the view direction.

  3. Sitemap Gunakan ini di jalur pencahayaan yang rusak.half4 Lighting<Name>_Deferred (SurfaceOutput s, UnityGI gi, out half4 outDiffuseOcclusion, out half4 outSpecSmoothness, out half4 outNormal); Use this in deferred lighting paths.

  4. Sitemap Gunakan ini di jalan lampu prepass (legacy deferred).half4 Lighting<Name>_PrePass (SurfaceOutput s, half4 light); Use this in light prepass (legacy deferred) lighting paths.

Perhatikan bahwa Anda tidak perlu menyatakan semua fungsi. Sebuah model pencahayaan baik menggunakan sudut pandang atau tidak. Demikian pula, jika model pencahayaan hanya bekerja dalam rendering maju, tidak menyatakan fungsi _Deferred atau _Prepass. Ini memastikan bahwa Shaders yang menggunakannya hanya kompilasi untuk meneruskan rendering.

Kustom GI

Tentukan fungsi berikut untuk menyesuaikan data dan probe decoding lightmapTekstur 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
:

  1. half4 Lighting<Name>_GI (SurfaceOutput s, UnityGIInput data, inout UnityGI gi);

Perhatikan bahwa untuk decode standar Unity lightmaps dan SH probe, Anda dapat menggunakan built-in DecodeLightmap dan fungsi ShadeSHPerPixel, seperti yang terlihat pada UnityGI_Base dalam file UnityGlobalIllumination.cginc di dalam Unity (Windows: <unity install path>/Data/CGIncludes/UnityGlobalIllumination.cginc; macOS: /Aplikasi/Unity/Unity.app/Contents/CGIncludes/UnityGlobalIllumination.cginc_).

Examples

Lihat dokumentasi tentang Contoh Pencahayaan Shader Permukaan untuk informasi lebih lanjut.

Contoh Shader permukaan
Contoh pencahayaan Shader permukaan