Chapter 5: Understanding Lighting Models
In the previous chapters, we introduced Surface Shaders and explained how we can change physical properties (such as Albedo and Specular) to simulate different materials. So, how does this actually work? Well, at the heart of every Surface Shader is its lighting model. This is the function that takes these properties and calculates the final shade of each pixel. Usually, Unity hides this from developers because, in order to write a lighting model, you have to understand how light reflects and refracts onto surfaces. This chapter will finally show you how lighting models work and present you with the basics that you need to create your own.
Simulating the way light works is a very challenging and resource-consuming task. For many years, video games have used very simple lighting models, which, despite lacking in realism, were very believable. Even if most 3D engines are now using physically based renderers, it is worth exploring some simpler...