22 days ago - [DE]Steve - Direct link

We’re moving into “Next Gen” by phasing out our old rendering engine! The launcher option has been moved into the Options screen as we want to get more Tenno onboard for testing it!

Enhanced (formerly referred to as ‘Deferred’) is a complete redesign to achieve more accurate reflections and give us the ability to utilize dynamic lighting and shadowing across the entire game.

(Squinting) Aside from our landscapes, the frame to frame differences will be subtle. Precomputed reflections in the very shiny Gas City floors will be less distorted. The reflective glints on your Warframe won’t ‘pop’ each time you move between tiles. This is intentional as we’ve been diligent with ‘back porting’ our rendering upgrades to Enhanced to the Legacy rendering system. Our continuous upgrades to static path-traced lighting, parallax projected cubemaps, volumetric lights, lit fog, character light probes… work quite well in the legacy rendering engine and have allowed us to ‘keep up with the Jones’ over many years. But there has always been a glaring weak-point on the Legacy Rendering Eximus...

To stretch a Bene Gesserit/Dune analogy - “There is a place - terrifying to us”: Dynamic lighting! Since Warframe’s launch, the number of dynamic lights we’ve typically used per-frame has been kept in the low single digits. Your gun, maybe a flashlight, maybe an ability cast… everything else was precomputed, stored in textures (light maps) and point clouds (light probes) or faked with ‘glow sprites’. The reason for this: for every dynamic light we’d add to the frame (*), the legacy rendering engine would have to render everything it touched again. In a small hallway with a few Grineer muzzle flashes, this would create wild fluctuations in the rendering complexity… in the outdoor Landscapes it was a faceplant - one muzzle flash light = draw the whole valley again!!! Not only smashing your GPU but also choking the CPU with additional work…

Enhance! This is where the new rendering engine excels. It renders out the attributes of the scene (colors, glossiness, shape) to offscreen buffers. After this, proper dynamic lighting costs hardly more than those terrible glow sprites we’ve used in the past. For realtime shadows, what the light sources ‘see’ are cached and reused when nothing changes. All lighting and reflection probes are stored in a 3D camera voxel texture and applied in single passes where the costs grow linearly, proportional to their size on screen, without incurring huge CPU and GPU penalties to ‘draw the whole world, again and again’.

Show me the money! As you experiment with the new rendering engine keep in mind that until we phase out the legacy system and ensure our new one scales well across High-end PC, consoles, toasters and thermostats, we will not be just turning on dynamic lighting everywhere. We have years of content built with the fear of using dynamic lighting… but there is one place you can go to see the dramatic lift it brings: Landscapes! There in the Vallis, the Plains and the Drift those fuzzy, ambiguous shadow blobs are replaced with dramatically realtime sun shadows! Subtle in many tiles, but not so here!


Using some handy Spoiler Tags, why don't we take a look at some before / after shots?

 

Spoiler

 

CETUS BEFORE:


CETUS AFTER:


PLAINS OF EIDOLON BEFORE:


PLAINS OF EIDOLON AFTER:

 

 

 

Toast. While it is our intention to phase out the old system we do intend to keep performance and scalability a priority in the new rendering engine. While the new system is dramatically faster for dynamic lighting and shadows, these are not a ‘free lunch’ (**) in any system and we will be vigilant to add additional options giving you the flexibility to tune the new system’s performance for the best Warframe experience possible.

RTX ON? What’s next? Phasing out the legacy system will allow us to focus our efforts on one. This will open the doors for future exploration in new technologies. There’s a lot going on in ray-tracing and machine-learning augmentation of rendering… stay tuned!. 

(*) Technically the old system would render dynamic lights in batches of three. So scene CPU/GPU complexity would double for every 3 lights.

(**) Realtime shadows require you to render the scene from the ‘lights perspective’. This is much faster than the main scene but is extra GPU workload to consider.
 






devtrackers.gg