







Point Light Shadows

Conventional shadow-rendering algorithms require us to render every game object from every light's point of view in order to calculate shadow maps for them. This typically limits the number of simultaneous shadow-casting lights in games to around three. It also means that conventional shadows become more performance-intensive the more objects there are. Point lights are even more costly to calculate because the light is emitted in all directions. It requires at least two shadow maps to render shadows for them.



Previously, the game engine didn't support point light shadows at all, but in Delve league we really wanted to introduce the moving light mechanic of the Crawler which wouldn't work without them. This is when we had the idea of using screen space shadows as a very fast way to render shadows for many point lights on screen at the same time.



With the screen space point light shadows technique, we use information that is already on screen in order to calculate shadows from multiple light sources at the same time without the need to render objects multiple times. The most important aspect of this technique is that it takes a near-constant amount of time to calculate, which means that shadow calculation will not take longer when a lot of objects are present on screen at the same time. We use point lights extensively in Delve content (for example, the Crawler and flares), so this technique allows us to create a really dark and scary environment in the Azurite Mine. It's also fast enough to turn on by default on all hardware (including the original Xbox One).



This approach ended up even better than we were expecting. The game looks a lot better lit from lower down and it's faster for many lights than conventional shadows. We plan on using this in the main game a lot more in the future.



Global Illumination

Another technique that we have implemented, global illumination, allows us to treat every pixel on the screen as an individual light source that casts light on everything and receives light from everything.



This means that every object that you perceive as bright on your screen casts light onto every other object. Every projectile you fire will emit light.



This is done in screen space as well, which means that its cost will stay constant even when multiple complex effects overlap. Our graphics engineer, Alex, has



Global Illumination significantly improves the look of the game, but can be demanding on GPUs, especially with higher screen resolutions. We've made GI an optional feature that player can toggle on and off based on their preferences. This feature will be turned off by default on PC. We expect it to be enabled on Xbox One X. Alongside the Delve League, we're introducing graphical enhancements that significantly improve how Path of Exile looks. There are two main rendering algorithms that we've implemented to achieve this: screen space point light shadows and screen space global illumination. Check out this video to see how it looks!Conventional shadow-rendering algorithms require us to render every game object from every light's point of view in order to calculate shadow maps for them. This typically limits the number of simultaneous shadow-casting lights in games to around three. It also means that conventional shadows become more performance-intensive the more objects there are. Point lights are even more costly to calculate because the light is emitted in all directions. It requires at least two shadow maps to render shadows for them.Previously, the game engine didn't support point light shadows at all, but in Delve league we really wanted to introduce the moving light mechanic of the Crawler which wouldn't work without them. This is when we had the idea of using screen space shadows as a very fast way to render shadows for many point lights on screen at the same time.With the screen space point light shadows technique, we use information that is already on screen in order to calculate shadows from multiple light sources at the same time without the need to render objects multiple times. The most important aspect of this technique is that it takes a near-constant amount of time to calculate, which means that shadow calculation will not take longer when a lot of objects are present on screen at the same time. We use point lights extensively in Delve content (for example, the Crawler and flares), so this technique allows us to create a really dark and scary environment in the Azurite Mine. It's also fast enough to turn on by default on all hardware (including the original Xbox One).This approach ended up even better than we were expecting. The game looks a lot better lit from lower down and it's faster for many lights than conventional shadows. We plan on using this in the main game a lot more in the future.Another technique that we have implemented, global illumination, allows us to treat every pixel on the screen as an individual light source that casts light on everything and receives light from everything.This means that every object that you perceive as bright on your screen casts light onto every other object. Every projectile you fire will emit light.This is done in screen space as well, which means that its cost will stay constant even when multiple complex effects overlap. Our graphics engineer, Alex, has created a video that demonstrates this particular technique in a simpler sandbox.Global Illumination significantly improves the look of the game, but can be demanding on GPUs, especially with higher screen resolutions. We've made GI an optional feature that player can toggle on and off based on their preferences. This feature will be turned off by default on PC. We expect it to be enabled on Xbox One X.