Version: Unity 6 (6000.0)
Language : English
Branch based on Unity version
Shader keywords

Branch based on shader pass or shader stage

Shader stage being compiled

Preprocessor macros SHADER_STAGE_VERTEX, SHADER_STAGE_FRAGMENT, SHADER_STAGE_DOMAIN, SHADER_STAGE_HULL, SHADER_STAGE_GEOMETRY, SHADER_STAGE_COMPUTE are defined when compiling each ShaderA program that runs on the GPU. More info
See in Glossary
stage. Typically they are useful when sharing Shader code between pixelThe smallest unit in a computer image. Pixel size depends on your screen resolution. Pixel lighting is calculated at every screen pixel. More info
See in Glossary
Shaders and compute Shaders, to handle cases where some things have to be done slightly differently.

Surface Shader pass

When Surface ShadersA streamlined way of writing shaders for the Built-in Render Pipeline. More info
See in Glossary
are compiled, they generate a lot of code for various passes to do lighting. When compiling each pass, one of the following macros is defined:

Macro: Use:
UNITY_PASS_FORWARDBASE Forward renderingA rendering path that renders each object in one or more passes, depending on lights that affect the object. Lights themselves are also treated differently by Forward Rendering, depending on their settings and intensity. More info
See in Glossary
base pass (main directional light, lightmaps, SH).
UNITY_PASS_FORWARDADD Forward rendering additive pass (one light per pass).
UNITY_PASS_DEFERRED Deferred shadingA rendering path in the Built-in Render Pipeline that places no limit on the number of Lights that can affect a GameObject. All Lights are evaluated per-pixel, which means that they all interact correctly with normal maps and so on. Additionally, all Lights can have cookies and shadows. More info
See in Glossary
pass (renders G-buffer).
UNITY_PASS_SHADOWCASTER Shadow caster and depth Texture rendering pass.

Additional resources

Branch based on Unity version
Shader keywords