Jump to content
  • Advertisement
Sign in to follow this  
Pilpel

Deferred Shading

This topic is 1243 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

How many famous game (or rendering) engines use deferred shading?

I don't know if I really need to implement it in my engine, and it seems very difficult to understand and implement anyway.

 

Are there any famous engines that use forward rendering instead?

Share this post


Link to post
Share on other sites
Advertisement

Almost all engines that support deferred rendering use still allows for forward rending, its not a take it or leave it deal. Deferred rendering has its use cases and solves certain problems (primarily when dealing with many dynamic lights), however it also has many drawbacks. Some things you simply cannot do (or is severely impaired) with deferred rendering, such as transparency and anti-aliasing, and requires to use the more traditional forward rendering pipeline as well.

 

If you do not require it, then there is no need to implement it. If you want to learn more about it, then go ahead and implement it (its nowhere near as complicated as it seems at first, its actually quite simple). Its not a major architectual decision for a small project (although it has pretty heavy implications on your material/shader design), so you can always try to implement it down the road if you wish.

 

Basically, its not as complicated as you think. If it seems interesting than go ahead and implement it, although unless you are dealing with the problems it solves (large number of dynamic lights primarily), you can get by without it [as games have been doing for a long time].

 

As far as engines heres a few i know offhand, 

 

Unity - uses both forward and deferred paths.

UE3 - I believe was only forward rendering

UE4 - All lights go the deferred path, transparent objects go through forward pipeline.

RAGE - Supports Deferred rendering

CRYEngine - Supports Deferred Rendering.

 

As you can see, most engines still provide a forward pipeline, as deferred isnt a golden ticket. Do what makes sense for the data you are dealing with and the problem you are trying to solve, not whatever is the latest fad that everyones using (thats more general advice though).

Edited by theflamingskunk

Share this post


Link to post
Share on other sites

If you are dealing with a large number of lights, you could first try Practical Clustered Shading, or BVH Accelerated Shading.

Share this post


Link to post
Share on other sites
I also read about tile based rendering, not sure if that counts as a 3rd option, but you might look it up

Share this post


Link to post
Share on other sites

In the console and mid-to-high-end PC space, deferred rendering is ubiquitous. Almost every game uses some variant of deferred rendering, of which there's a few to choose from. They all make different tradeoffs in terms of how big of a G-Buffer is used, how lights are assigned, etc. But in pretty much all cases they follow the general pattern of allowing the GPU to decide how lights get assigned to surfaces as opposed to doing on the CPU, or doing it offline.

Edited by MJP

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!