Jump to content
  • Advertisement
Sign in to follow this  
Tangletail

When would you want to use Forward+ or Differed Rendering?

This topic is 827 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

At the moment, I'm just using a very basic forward rendering schema so it doesn't handle a lot of lights very well.

I've been thinking of swapping to one of the more powerful rendering styles. But I'm having some difficulties trying to figure out which one to use.

They seem to be trying to solve different problems, and possibly getting the same results?

Share this post


Link to post
Share on other sites
Advertisement

Forward+ allows more material shaders for specific needs. With deferred you are limiting yourself to run one shader on the entire scene. Also Forward+ doesn't have to write a GBuffer so the bandwidth is lowered. I think most people will be moving to Forward+ if possible. MSAA will be cheaper on Forward+. You also don't have to perform any blending operations in Forward+ like you do with deferred.

Share this post


Link to post
Share on other sites

What do you mean more material shaders? I think several engines have deferred rendering, and has used several different shaders.

Share this post


Link to post
Share on other sites

Well it's forward because I needed something that worked while I did other things :P

But the specifics of the game engine is that it's an engine designed for a fantasy setting with an angled downwards facing-rotating camera with baulder's gate style controls.

I don't really plan on static lighting since it can be avoided completely on hardware, and it's possible to have a lot of small lights on the scene. Annnd... fantasy, so particles up the arse.

Share this post


Link to post
Share on other sites

Well that's not too helpful  :mellow:

 

Lots of particles would suggest foward+ so as to make translucency easier, but there's quite the neat trick with deferred where you can get unlimited tiny lights on screen for a low cost; you basically read emissive materials then spread out as light onto the g-buffer. Obviously doesn't work with offscreen stuff, but any say, emissive particles from fancy fx, can essentially cast a bit of light onto the scene for almost no cost, which can look great with a tons of sparks/sparkly stuff (and helps a lot with emissive particles "sticking out" and not looking like they're part of the scene). That and tons of lights onscreen could mean a lot overdraw for forward+...

 

Take a look at Emil Perrson's Clustered Shading: http://www.humus.name/Articles/PracticalClusteredShading.pdf 

 

The clustered portion (binning lights in Z) would seem to be overkill for your title, as I don't imagine there'll be a huge Z range. But you can set it up as you need it (aka just a tiled renderer, though maybe keep the z-binning at least open to future implementation?), and it can provide a unified lighting pipeline, so you can choose (and compare) whether deferred, forward, or a hybrid of both works for your scenes and set up. Hope that helps!  ^_^

Edited by Frenetic Pony

Share this post


Link to post
Share on other sites

Deferred texturing 'fixes' the bandwidth problem of deferrend lighting, see https://forum.beyond3d.com/threads/modern-textureless-deferred-rendering-techniques.57611/

MSAA can be used to do this a half resolution to decrease bandwidth even more, with limited API support.

 

Because deferred anti aliasing has been improoved a lot, and PBR limits the one material problem, it's still difficult to make a decission.

Share this post


Link to post
Share on other sites

Because deferred anti aliasing has been improoved a lot, and PBR limits the one material problem, it's still difficult to make a decission.

 

You lost me on this bit here. What do you mean PBR limits the one material problem? Is that a good thing or a bad thing.

On another note, I noticed that deferred rendering makes heavy use of a lot of buffers. Could someone give me a list to consider?

Share this post


Link to post
Share on other sites


What do you mean PBR limits the one material problem?

 

It may be debatable, but i think using a general PBR shader for everything should do it and thus the argument of limited material types becomes almost neglectable.

Years ago it was common to use different shaders for different materials and because that's costly for deffered, deffered renderers missed rich material diversity.

 


I noticed that deferred rendering makes heavy use of a lot of buffers. Could someone give me a list to consider?

 

Light accumulation RGB

Normal XY

Diffuse RGB

Material properties (specular power and intensity)

Motion vector XY

...

Usually 4 Render targets are used to store all this at required precision.

 

 

 

 

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!