Surface Shaders
The following is intended for informational purposes only, and may not be incorporated into any contract. No purchasing decisions should be made based on the following materials. Unity is not committing to deliver any functionality, features or code. The development, timing and release of all products, functionality and features are at the sole discretion of Unity, and are subject to change.
If you have accepted to use functional cookies and logged in using your Unity ID at the top right of the page, then sharing feedback is as simple as clicking a card below, selecting a topic’s importance, adding your point of view, and submitting. If you prefer not to accept functional cookies or log in, you will be prompted to enter an email address and validate it, so we know how to reach out when the topic evolves. For more information read the Feedback and privacy terms.
Summary
SRP Surface Shaders are a similar concept to Built-in surface shaders. You can define a surface function that describes the physical characteristics (albedo color, normal, emission, specularity, etc.) of the surface of a lit geometry without the need to write shaders using complex low-level shader programs.
Intended Outcome/Use Case
Writing shaders that interact with lighting is complex. There are different light types, shadow options, rendering paths, rendering features, and code variations to accommodate various hardware and platforms. More importantly, low-level shaders are tightly coupled with the rendering pipeline backends making them hard to transfer from one pipeline architecture to another.
Surface Shaders is a code generation, pipeline agnostic approach that makes it much easier to write and maintain lit shaders than using the low-level shader language and APIs. Surface Shaders allow technical artists and coders to customize and define the look of geometry surfaces in a more intuitive way through handwritten shaders.