22/6/20
This week Madoc focused on getting the new renderer more complete so that we could show you some screenshots like we promised. The updated renderer improves on many things, better shadows, reflections, shading, an updated material system that's more efficient and easier to use, greatly improved procedural materials for characters and items, better performance and it's fully programmable in real-time, which is great for development.
But the biggest improvement is the new GI (Global Illumination) system. To us GI is less about fancy graphics and more of a requirement, which is why we always had at least a crude version of it. It solves the important problem of what to do when part of a scene is in shadow, without it things would either be completely black, or inexplicably lit, with ugly flat light showing even where there should be none at all.
AO (ambient occlusion) can help somewhat with things looking flat when not directly lit, but it doesn't solve the problem of darkness not existing, or ambient light passing straight through even walls. Games often used baked GI, but this means hours of baking lighting every time you make even a small change to content, making development and maintaining content a nightmare. Importantly, it also can't deal with dynamic lights or objects, and would require a huge amount of data for a large game world.
Our existing GI couldn't deal with more open or larger environments, and it still looked quite flat, and often too dark. In the arena hub we're showing you screenshots of today, we previously used a combination of baked AO and hand placed secondary "ambient lights" to brighten up the areas that were too dark. This is the only content in the game to use these things, as it's quite brightly lit it just looked quite bad without these additions. But this was only an experiment, it is not a practical solution.
The new GI doesn't suffer from any of these limitations. It simulates light bouncing around the environment and adds lots of depth and detail in shadowed areas and makes things realistically bright without adding light where there shouldn't be any. Most importantly it's 100% dynamic and real-time.
Here's a basic example of what the GI does alone, the light coming through the door is reflected on the nearby environment:
GI Basics
Indirect light coming through a doorway.
And here is a screenshot using the new renderer. There's still a couple of things missing, though not much now, and we still need to update various assets for it.
New Renderer and GI
New renderer and GI system. Still a few bits to do and assets to update, but almost there!
For comparison, here is the same scene with the GI replaced with a fixed ambient term:
GI off comparison
The same scene rendered with just a fixed ambient term instead of the new GI system.
There's lots more cool stuff to show, but it would be better to do it in a video, so we'll try to get one up when things are a bit further along.
Have a great week!
-the BM team