Jump to content

  • Log In with Google      Sign In   
  • Create Account

#Actuallipsryme

Posted 08 February 2013 - 04:28 PM

There are basically two commonly used deferred rendering techniques out there.
Those are the (Classic)Deferred Shading approach and Light-Pre-Pass (or sometimes called Deferred Lighting).

- The classic approach, which is being used in the recent unreal engine builds and e.g. frostbite 2.0, is rendering everything you'd need to shade your geometry to a so called G-Buffer (the G-Buffer or geometry pass), then read this data in a second pass, but this time using a fullscreen quad (as a post effect) to do your lighting and shade your final pixel.

- Deferred Lighting or Light-Pre-Pass is different in that you try to minimize your G-Buffer data to maybe depth and normals only. Then in the second pass you don't finish your final shading but rather render out parts of the light equation, which you then use in a third pass (which is a second geometry pass!) to completely finish the shaded scene.
More info's here: http://diaryofagraphicsprogrammer.blogspot.de/2008/03/light-pre-pass-renderer.html

Deferred Shadows are actually something completely different. What you do here is instead of doing the geometry pass and at the same time calculating and applying your shadows, you render those shadows as a post-effect (fullscreen-quad) to a RenderTarget, which you can then read in your lighting/material shader to apply the shadows.
The advantage here is like the above deferred rendering techniques, that you can decouple your shading from the geometry.

Which one of those techniques above is better depends very much on what you are trying to achieve. Light-Pre-Pass is quite common on consoles afaik because of it's low memory bandwidth requirements (e.g. CryEngine 3). As I wrote earlier it has the disadvantage of having to render your entire geometry a second time. So theoretically you would be better of with a classic deferred shading approach if you are expecting a huge amount of polygons in your scene. People always find good ways to optimize for stuff like this though smile.png

 

Personally if you were to develop something for the PC right now I don't see the point in not choosing a full deferred shading approach of these two.

Since you're not likely to be extremely limited by memory bandwidth or fillrate.


#4lipsryme

Posted 08 February 2013 - 04:25 PM

There are basically two commonly used deferred rendering techniques out there.
Those are the (Classic)Deferred Shading approach and Light-Pre-Pass (or sometimes called Deferred Lighting).

- The classic approach, which is being used in the recent unreal engine builds and e.g. frostbite 2.0, is rendering everything you'd need to shade your geometry to a so called G-Buffer (the G-Buffer or geometry pass), then read this data in a second pass, but this time using a fullscreen quad (as a post effect) to do your lighting and shade your final pixel.

- Deferred Lighting or Light-Pre-Pass is different in that you try to minimize your G-Buffer data to maybe depth and normals only. Then in the second pass you don't finish your final shading but rather render out parts of the light equation, which you then use in a third pass (which is a second geometry pass!) to completely finish the shaded scene.
More info's here: http://diaryofagraphicsprogrammer.blogspot.de/2008/03/light-pre-pass-renderer.html

Deferred Shadows are actually something completely different. What you do here is instead of doing the geometry pass and at the same time calculating and applying your shadows, you render those shadows as a post-effect (fullscreen-quad) to a RenderTarget, which you can then read in your lighting/material shader to apply the shadows.
The advantage here is like the above deferred rendering techniques, that you can decouple your shading from the geometry.

Which one of those techniques above is better depends very much on what you are trying to achieve. Light-Pre-Pass is quite common on consoles afaik because of it's low memory bandwidth requirements (e.g. CryEngine 3). As I wrote earlier it has the disadvantage of having to render your entire geometry a second time. So theoretically you would be better of with a classic deferred shading approach if you are expecting a huge amount of polygons in your scene. People always find good ways to optimize for stuff like this though smile.png


#3lipsryme

Posted 08 February 2013 - 04:25 PM

There are basically two commonly used deferred rendering techniques out there.
Those are the (Classic)Deferred Shading approach and Light-Pre-Pass (or sometimes called Deferred Lighting).

- The classic approach, which is being used in the recent unreal engine builds and e.g. frostbite 2.0, is rendering everything you'd need to shade your geometry to a so called G-Buffer (the G-Buffer or geometry pass), then read this data in a second pass, but this time using a fullscreen quad (as a post effect) to do your lighting and shade your final pixel.

- Deferred Lighting or Light-Pre-Pass is different in that you try to minimize your G-Buffer data to maybe depth and normals only. Then in the second pass you don't finish your final shading but rather render out parts of the light equation, which you then use in a third pass (which is a second geometry pass!) to completely finish the shaded scene.
More info's here: http://diaryofagraphicsprogrammer.blogspot.de/2008/03/light-pre-pass-renderer.html

Deferred Shadows are actually something completely different. What you do here is instead of doing the geometry pass and at the same time calculating and applying your shadows, you render those shadows as a post-effect (fullscreen-quad) to a RenderTarget, which you can then read in your lighting/material shader to apply the shadows.
The advantage here is like the above deferred rendering techniques, that you can decouple your shading from the geometry.

Which one of those techniques above is better depends very much on what you are trying to achieve. Light-Pre-Pass is quite common on consoles afaik because of it's low memory bandwidth requirements (e.g. CryEngine 3.0). As I wrote earlier it has the disadvantage of having to render your entire geometry a second time. So theoretically you would be better of with a classic deferred shading approach if you are expecting a huge amount of polygons in your scene. People always find good ways to optimize for stuff like this though smile.png


#2lipsryme

Posted 08 February 2013 - 04:24 PM

There are basically two commonly used deferred rendering techniques out there.
Those are the (Classic)Deferred Shading approach and Light-Pre-Pass (or sometimes called Deferred Lighting).

- The classic approach, which is being used in the recent unreal engine builds and e.g. frostbite 2.0, is rendering everything you'd need to shade your geometry to a so called G-Buffer (the G-Buffer or geometry pass), then read this data in a second pass, but this time using a fullscreen quad (as a post effect) to do your lighting and shade your final pixel.

- Deferred Lighting or Light-Pre-Pass is different in that you try to minimize your G-Buffer data to maybe depth and normals only. Then in the second pass you don't finish your final shading but rather render out parts of the light equation, which you then use in a third pass (which is a second geometry pass!) to completely finish the shaded scene.
More info's here: http://diaryofagraphicsprogrammer.blogspot.de/2008/03/light-pre-pass-renderer.html

Deferred Shadows are actually something completely different. What you do here is instead of doing the geometry pass and at the same time calculating and applying your shadows, you render those shadows as a post-effect (fullscreen-quad) to a RenderTarget, which you can then read in your lighting/material shader to apply the shadows.
The advantage here is like the above deferred rendering techniques, that you can decouple your shading from the geometry.

Which one of those techniques above is better depends very much on what you are trying to achieve. Light-Pre-Pass is quite common on consoles afaik because of it's low memory bandwidth requirements (e.g. CryEngine). As I wrote earlier it has the disadvantage of having to render your entire geometry a second time. So theoretically you would be better of with a classic deferred shading approach if you are expecting a huge amount of polygons in your scene. People always find good ways to optimize for stuff like this though :)

#1lipsryme

Posted 08 February 2013 - 04:22 PM

There are basically two commonly used deferred rendering techniques out there.

Those are the (Classic)Deferred Shading approach and Light-Pre-Pass (or sometimes called Deferred Lighting).

 

- The classic approach, which is being used in the recent unreal engine builds and e.g. frostbite 2.0, is rendering everything you'd need to shade your geometry to a so called G-Buffer (the G-Buffer or geometry pass), then read this data in a second pass, but this time using a fullscreen quad (as a post effect) to do your lighting and shade your final pixel.

 

- Deferred Lighting or Light-Pre-Pass is different in that you try to minimize your G-Buffer data to maybe depth and normals only. Then in the second pass you don't finish your final shading but rather render out parts of the light equation, which you then use in a third pass (which is a second geometry pass!) to then completely finish the shaded scene.

More info's here: http://diaryofagraphicsprogrammer.blogspot.de/2008/03/light-pre-pass-renderer.html

 

Deferred Shadows are actually something completely different. What you do here is instead of doing the geometry pass and at the same time calculating and applying your shadows, you render those shadows as a post-effect (fullscreen-quad) to a RenderTarget, which you can then read in your lighting/material shader to apply the shadows.

The advantage here is like the above deferred rendering techniques, that you can decouple your shading from the geometry.

 

Which one of those techniques above is better depends very much on what you are trying to achieve. Light-Pre-Pass is quite common on consoles afaik because of it's low memory bandwidth requirements (e.g. CryEngine). As I wrote earlier it has the disadvantage of having to render your entire geometry a second time. So theoretically you would be better of with a classic deferred shading approach if you are expecting a huge amount of polygons in your scene. People always find good ways to optimize for stuff like this though :)


PARTNERS