This section contains information on the following subjects:
| Page | Description |
|---|---|
| Introduction to writing shaders in code | Learn about ShaderLab, Surface Shaders, and High Level Shader Language (HLSL), and which languages and approaches to use for each render pipeline. |
| Shader object fundamentals | Understand the object that Unity uses as a wrapper for shader programs and other information. |
| Writing a custom shader in ShaderLab and HLSL | Resources and techniques for writing Shader objects, subshaders and shader passes in ShaderLab and HLSL. |
| Adding material properties to shaders | Resources and techniques for adding properties that artists can use to create, edit, and share materials with different configurations. |
| Changing how shaders work using keywords | Resources and techniques for writing shader code so it uses conditionals to do different things under different circumstances. |
| Branch in a shader via built-in macros | Resources for adding shader branches with built-in macros based on platform, graphics API, shader model, Unity version, shader pass, or shader stage. |
| Configure if or when Unity uses a shader | Resources for using tags and blocks in a shader to configure how and when Unity uses the shader. |