But this art direction led us to a technical problem. By making everything individually editable, it made it challenging for us to unify areas with global lighting. Since each object has a specific shadowed tint color and albedo color, it can contain a texture color, making it difficult for the entire texture to have a consistent shadow color across different lighting scenarios. This means that if the time of day shifted in the game, all these objects would have to be individually edited to reflect the change. The early morning golden sun rays would need to be individually changed on all the objects in the game to reflect a mid-day cool blue lighting. We had a beautiful static world, with objects demonstrating a different look from one another, objects that could not have a different color or contrast.Our art direction shifted to make the world more modelable to shifts in time and location, such as altitude and biomes. This forced us to return to Unreal’s PBR model, but with some tweaking. This enables us to receive “realistic” lighting based on incident lighting, which means that the light always comes from somewhere natural, whether it’s from the sky or a flickering candle. Once we obtain this lighting, we will decide on the brightness threshold or the incident light angle threshold to compute the shadow color of each image pixel based on the light color.

Whereas our toon shader focused on shifting the colors in the material, our new art direction focuses on using shifts in lighting to make a scene more beautiful. For example, if we want more contrast within a scene, we can boost the direct sunlight and remove the soft lighting from the sky, thereby creating a direct stream of hard light from the sun. In the case that we want even more control over the contrast, we can use post-processing tools.

Our new lighting decision led to a new feature; turning to the sky sphere for static lighting. The sky lighting is an approximation of the light to make the cel-shading of a whole scene uniform based on the light coming from the sky. The skylight creates light and shading colors that cast on all the objects within the scene. We also have a few more settings to give the sky a tone, a tint of color to add to the overall mood of a scene. For example, a safe, familiar place might have a bit of warm light casting on all the assets coming from the skylight.

All of the lighting now also incorporates an approximate sub-surface scattering, which allows for the light to be absorbed into the objects or bounce off of them so that the light scatters. Consider the light cast through leaves on a bright summer day, being absorbed into the greenery, making them appear more brilliant. Another example is the sun on white pavement bouncing up and into your eyes, with the glare being disorienting but warm. Our lighting shaders are also energy persevering, which means, no matter how much light we add to the scene, it is always coherent. If we add two lights to the same object, then it is twice as bright. These realistic moments inspired the shift in lighting design in Season to make the world more familiar to the player.

Look Dev Manager 

Another roadblock was that we lacked some automation and ease of use once we received the shader and started building our materials and various custom tools. Yes, we were starting to have plenty of features available, but everything was spread across multiple levels and needed manual implementation.

Our solution was to create what we call the “Look Dev Manager.” “It’s a Blueprint-based tool that I would have never been able to make if it wasn’t for visual programming,” Felix explained. It’s a simple drag-and-drop tool that you can use at any level in the game. It connects and controls all the custom shaders, post-processes, tools, and more that artists need in one tightly knitted package.

Source: Unreal Engine Blog