Part of the Khronos Group
OpenGL.org

The Industry's Foundation for High Performance Graphics

from games to virtual reality, mobile phones to supercomputers

Results 1 to 2 of 2

Thread: Deferred Shading

Hybrid View

  1. #1
    Junior Member Newbie
    Join Date
    Jun 2012
    Posts
    11

    Deferred Shading

    I have a question about deferred shading.

    If I understood it correct, I am just pushing my geometry though a shader stage so that I have the position normal and color information about the frontmost pixel.

    This way I only have to lit pixel that are acutally visible to the camera right?


    Now my university tells me that I have a complexity of #objects * #lightsources without deferred shading and with deferred shading I would have a complexity of #objects + #lightsources.

    This make absolutely no sense to me.


    Let's say I have a scene with 1000 cubes, but the camera only sees one cube. With deferred shading I only calculate the lighting for one cube right? (and only the pixel that are actually visible)

  2. #2
    Senior Member OpenGL Guru
    Join Date
    May 2009
    Posts
    4,948
    Now my university tells me that I have a complexity of #objects * #lightsources without deferred shading and with deferred shading I would have a complexity of #objects + #lightsources.

    This make absolutely no sense to me.
    That's because you're thinking about it wrong.

    The "complexity" here is a measure of the number of operations. If you render 1000 cubes, you have still rendered 1000 cubes, even if 999 of them are behind one of them. You still drew the other cubes into the g-buffers, even if their fragments were depth-tested away. So your algorithm still must iterate over 1000 cubes and render them.

    The point of the statement is that, in a traditional forward-rendering system, the algorithmic complexity is per object * per-light. You must go to each object and render it once for each light. Whereas in a deferred system, you go to each object and render it once, then go to each light and render a lighting pass once. Adding more objects does not increase the number of lighting passes you do, and adding more lighting passes does not make rendering take longer based on the number of objects being rendered.

    And remember: complexity is always about order-of-magnitude, not exact numbers.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •