The Riftbreaker to Get Free Performance Boost Thanks to Tiled Deferred Shading

0

The Riftbreaker, the action strategy game released in late 2021 on PC and consoles, will soon get a free performance boost, as announced by Polish developer EXOR Studios in a blog post published on Steam.

The small development studio originally developed its engine from open source software like the OGRE (Object-Oriented Graphics Rendering Engine, available to this day under the MIT license). Over time, EXOR had modified it enough to make it its own thing: the Schmetterling engine.

For the studio’s first game, the top-down racing title Zombie Driver (2012), EXOR used forward rendering. However, forward rendering essentially limited the developers to a single dynamic light due to how complex it would be to add any more than that.

In the twin-stick shooter/tower defense game X-Morph: Defense (2019) and The Riftbreaker, the developers moved to deferred shading. This screen-space technique brings a major advantage over forward rendering in that the geometry of the scene and the lighting are rendered separately, and each light is only calculated for those pixels that are actually affected by the light. Deferred shading allowed a greater number of dynamic lights into gaming scenes, becoming very popular from 2010 onward, though it has limitations of its own.

Deferred shading doesn’t scale all that well when the scene has a high amount of dynamic lights, and it also cannot store transparent objects information in its G-Buffer, which means non-opaque objects cannot be taken into account for lighting.

That’s why EXOR is introducing a rendering upgrade to The Riftbreaker: Tiled Deferred Shading. With this algorithm, the screen is divided into 16×16 pixels tiles, and each tile stores information on the lights that affect it. This is then used to calculate lighting for both transparent and non-transparent objects.

Here’s the overview of Tiled Deferred Shading, step by step:

  1. G-buffer pass – Draw all opaque geometry.
  2. Compute tile frustums – prepare frustums individually per tile depending on the buffer minimum/maximum depth.
  3. Culling lights pass – use frustums to check if the light overlaps the tile and insert its index to the light index list.
  4. Compute light shading for opaque objects – Use G-Buffer and prepared lights list for a single pass screen space light computation.
  5. Compute light shading for non-opaque objects – Draw each non-opaque object and compute light shading per pixel only for lights that belong to the tile.

According to EXOR Studios, Tiled Deferred Shading allows reading the G-Buffer only once for all light sources. This allows much better scaling with a lot of active dynamic lights up to a near 100% performance gain with 202 lights.

Of course, this isn’t an average use-case scenario. EXOR tested The Riftbreaker with a CPU-focused benchmark and found a 17% improvement on an RTX 3080, while the 6800XT only gained 11.6% frames per second.

That said, you shouldn’t look a gift horse in the mouth, and it’s certainly the case here. Beyond the performance boost, EXOR also plans to use Tiled Deferred Shading to further expand its Schmetterling engine with volumetric fog support.

The Riftbreaker players will be able to check out Tiled Deferred Shading for themselves when the free World Expansion 2 update is released. EXOR is also working on adding co-op multiplayer to the game; stay tuned and we’ll let you know once these updates go live.

Share this story

Facebook

Twitter

FOLLOW US ON GOOGLE NEWS

 

Read original article here

Denial of responsibility! TechnoCodex is an automatic aggregator of the all world’s media. In each content, the hyperlink to the primary source is specified. All trademarks belong to their rightful owners, all materials to their authors. If you are the owner of the content and do not want us to publish your materials, please contact us by email – [email protected]. The content will be deleted within 24 hours.

Leave a comment