Deferred lighting

  • Published on
    10-May-2015

  • View
    3.898

  • Download
    4

Embed Size (px)

DESCRIPTION

Deferred lighting

Transcript

  • 1.Inferred rendering http://ozlael.egloos.com/

2. Forward Rendering Traditional Render Single Pass Lighting Multipass Lighting 3. Forward Rendering :Single Pass Lighting For each object: Render mesh, applying all lights in one shader Good for scenes with small numbers of li ghts (eg.outdoor sunlight) Difficult to organize if there are many light s Shader combinations explosion 4. Forward Rendering:Multipass Lighting For each light: For each object affected by the light: framebuffer += object * light Worst case complexity is num_objects * n um_lights Shader for each material and light type 5. Forward Rendering:Multipass Lighting Wasted shader cycles Invisible surfaces / overdraw Triangles outside light influence Ideally the scene should be split exactly a long lightboundaries, but getting this right for dynamic lightscan be a lot of CPU wor k 6. Deferred Rendering For each object: Render to multiple targets Render surface properties into the G-Buffer For each light: Apply light as a 2D postprocess Use G-Buffer to compute lighting Add result to frame buffer 7. Deferred Rendering Worst case complexity is num_objects + num_lights Simpler shaders 8. Deferred Rendering G-buffer 9. Deferred Rendering G-buffer 10. Deferred Rendering G-buffer 11. Deferred RenderingResult 12. MRT 13. Determine Lit Pixels 14. Determine Lit Pixels 15. Early-Z Pass Similar to Early-Z Pass 1st Pass: Visibility tests 2nd Pass: Shading Different than Early-Z Pass Geometry is only transformed once 16. Deferred RenderingWeak point Does not handle transparent objects Forward Rendering Pass H/W Anti-aliasing difficult Material limited Many memory bandwidth 17. Pre-light Pass Geometry pass: fill up normal and depth buffer Lighting pass: store light properties in light buffer 2. Geometry pass: fetch light buffer and apply different material terms per surface by re-constructing the lighting equation 18. Pre-light Pass Geometry pass: fill up normal and depth buffer Lighting pass: store light properties in light buffer 2. Geometry pass: fetch light buffer and apply different material terms per surface by re-constructing the lighting equation 19. Pre-light PassRender opaque Geometry sorted front-to-backNormalsDepthColor Specular Power Blit Lights into Light Buffer (sorted front-to-back) Light BufferRender opaque Geometry sorted front-to-backorBlit ambient term and other lighting terms into final imageFrame Buffer 20. Pre-light Pass Resistance 2TM in-game screenshot; first row on the left is the depth buffer, on the right is the normal buffer; in the second row is the diffuse light buffer and on the right is the specular light buffer; in the last row is the final result. 21. Pre-light Pass Flexible Materials H/W MSAA Not Lighting/Shadowing Alpha Geometry