Forward vs Deferred rendering technique inquiries ^_^Y

Kindly educate me on Forward vs Deferred rendering techniques, I am making an engine but my main target is mobile platform and deferred rendering technique cannot handle by low end mobile due to its nature or maybe I’m wrong here.

  1. First question; If I’m using MG out of the box without a fancy rendering
    techniques am I doing a Forward rendering ?

  2. Second inquiry; Should I be doing Deferred rendering by now because
    it’s the modern technique ?

Thanks ^_^y

Yes, the default rendering is forward

Depends if you want to learn and invest time. For many types of games a forward renderer is actually faster, so do some research on how both work before deciding.

1 Like


I decided to go with deferred rendering because I was really interested in learning and implementing all of the math and shader code that goes along with it, and I thought my game would have lots of lights (torches, glowing projectiles, etc.). I think it’s a common opinion that deferred is better if you plan on having a lot of lights in your game, because forward rendering time scales with O * L while deferred rendering scales with O + L, where O is the number of objects and L is the number of lights.

I got frustrated reading post after post of “the only way to know for sure is to try both and compare,” so I decided to just go ahead and implement the one that I would enjoy more as a dev, hoping that my relatively simple game on modern hardware wouldn’t show much of a difference either way.

1 Like

Woahh, tha’ts good to hear Sir Cosmo! I thought I should implement both Forward and Deferred RT, when my goal is developing for Desktop and Console I will put an option to use Deferred RT. ATM I will refine and complete my engine for Mobile ^_^y

Thanks to both of you peepz ^_^y

The newer forward family alternatives are a fair bit easier than deferred to implement.

Forward+ has been shown in research to be worthwhile even without compute or the z-fitting, and Doom-2016 did clustered-forward on the CPU as well.

Downside is that shadowing is a PITA with them, you’re pretty much locked into dependence on texture-arrays or a wonky atlasing scheme.

1 Like

Thanks for the white paper link bro ^_^y by taking a glance on it I think it described a checkerboard rendering techniques maybe : -D not sure if its the same.

Rainbowsix siege use Checkerboard Rendering Technique they describes the checkerboard rendering technique used which accommodated for faster rendering times without sacrificing quality.

Rainbow six uses forward-clustered and checkboarding to hit 4k - pretty much required on 4k, that’s a stupid amount of pixels and way beyond what our dinner-plate sized cone of vision can see.

There were two big catches when I implemented Forward+ in MG:

  • had to add support for a few integer texture formats
    • needed for the light list
    • super trivial
  • have to write GLSL raw instead of using the HLSL conversion
    • needs layout 4.20 for setting the texture-unit binding explicitly
    • without it the samplers constantly shift around based on what textures a shader uses, which means a ton of unncessary texture-rebinds from the light-tables moving that should be set it and forget it