# Custom shaders

> Resources for writing programs that run on the GPU to draw GameObjects in a scene.

Resources for using or writing programs that run on the GPU to control the appearance of objects in a scene.


**Screenshot from The Heretic.:**
![](/api/media?file=/engine/6000.0/media/images/shader-core-concepts.png)

| **Page**                                                                                                                      | **Description**                                                                                                      |
| ----------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- |
| [Writing custom shaders](/engine/6000.0/manual/materials-and-shaders/shaders/writing-custom.md)                               | Resources for creating your own shaders using Shader Graph, or High-Level Shader Language (HLSL) and ShaderLab.      |
| [Optimize shaders](/engine/6000.0/manual/materials-and-shaders/shaders/sl-shader-performance.md)                              | Optimizing custom shaders for runtime performance, especially on mobile platforms that have limited GPU performance. |
| [Writing custom shaders in URP](/engine/6000.0/manual/materials-and-shaders/shaders/writing-custom-shaders-urp.md)            | Resources for using or writing shaders in the Universal Render Pipeline (URP).                                       |
| [Custom shaders in the Built-In Render Pipeline](/engine/6000.0/manual/materials-and-shaders/shaders/writing-shaders-birp.md) | Resources for writing HLSL code, ShaderLab code, and Surface Shaders in the Built-In Render Pipeline.                |
| [Troubleshooting shaders](/engine/6000.0/manual/materials-and-shaders/shaders/shader-troubleshooting.md)                      | Solve common issues with shaders, such as hitches and stalls, or large build sizes.                                  |
| [Shader languages reference](/engine/6000.0/manual/materials-and-shaders/shaders/reference.md)                                | Reference for ShaderLab, and High Level Shader Language (HLSL) in Unity.                                             |

## Further resources

* [Unity Learn tutorials about materials and shaders](https://learn.unity.com/tutorials/?k=%5B%22lang%3Aen%22%2C%22tag%3A5d351f0c7fbf7d006af48184%22%5D\&ob=recency)
* [Unity Discussions: Shaders](https://discussions.unity.com/tag/shaders)
* [Unity Discussions: Shader Graph](https://discussions.unity.com/tag/Shader-Graph)
* [Create and assign a material](/engine/6000.0/manual/materials-and-shaders/materials/create-material.md)
