Deferred Shading

Post on 23-Feb-2016

62 views 1 download

description

Deferred Shading. Patrick Cozzi University of Pennsylvania CIS 565 - Fall 2013. Announcements. Project 6 Due Friday 11/15 Final Project Kickoff this Wednesday Hackathon Next Saturday 11/16, 6pm-12am, SIG lab Inviting the “pros”. Renderer Design. Design an engine that renders lots of - PowerPoint PPT Presentation

transcript

Deferred Shading

Patrick CozziUniversity of PennsylvaniaCIS 565 - Fall 2013

Announcements

Project 6Due Friday 11/15

Final ProjectKickoff this Wednesday

HackathonNext Saturday 11/16, 6pm-12am, SIG lab Inviting the “pros”

2

Renderer Design

Design an engine that renders lots ofObjects with different materialsDynamic lightsDifferent light types

Cleanly. Efficiently.

3

Forward Rendering – Multi-Pass

4

foreach light{ foreach visible object { Render using shader for this material/light;

accumulate in framebuffer; }}

Pros and cons?

Forward Rendering – Multi-Pass

5

One shader per material/light-type Performance

Need to do vertex transform, rasterization, material part of fragment shader, etc. multiple times for each object.

Occluded fragments are shadedNot all lights affect the entire object

Forward Rendering – Single Pass

6

foreach visible object{ find lights affecting object;

Render all lights and materials using a single shader;

}

Pros and cons?

Forward Rendering – Single Pass

7

Lots of shadersOne shader per material/light-combinationHard to author shadersMay require runtime compile/linkLong ubershader increase compile timesMore potential shaders to sort by

Same as multi-passOccluded fragments are shadedNot all lights affect the entire object

Deferred Rendering

8

foreach visible object{ write properties to g-buffer;}

foreach light{ compute light using g-buffer; accumulate in framebuffer;}

Pros and cons?

Deferred Rendering

9

Decouple lighting from scene complexity Few shaders

One per materialOne per light type

Only transform and rasterize each object once

Only light non-occluded objects

Deferred Rendering

10

Memory bandwidth usage - read g-buffer for each light

Recalculate full lighting equation for each light

Limited material properties in g-buffer MSAA and translucency are difficult

G-Buffer Layout in Leadwerks 2.1

11Image from http://www.leadwerks.com/files/Deferred_Rendering_in_Leadwerks_Engine.pdf

G-Buffer Layout in Leadwerks 2.1

12Image from http://www.leadwerks.com/files/Deferred_Rendering_in_Leadwerks_Engine.pdf

G-Buffer Layout in Killzone 2

13Image from http://www.guerrilla-games.com/publications/dr_kz2_rsx_dev07.pdf

G-Buffer Layout in Killzone 2

14Image from http://www.guerrilla-games.com/publications/dr_kz2_rsx_dev07.pdf

G-Buffer Layout in Killzone 2

15Image from http://www.guerrilla-games.com/publications/dr_kz2_rsx_dev07.pdf

G-Buffer Layout in Killzone 2

16Image from http://www.guerrilla-games.com/publications/dr_kz2_rsx_dev07.pdf

G-Buffer Layout in Killzone 2

17Image from http://www.guerrilla-games.com/publications/dr_kz2_rsx_dev07.pdf

G-Buffer Layout in Killzone 2

18Image from http://www.guerrilla-games.com/publications/dr_kz2_rsx_dev07.pdf

G-Buffer Layout in Killzone 2

19Image from http://www.guerrilla-games.com/publications/dr_kz2_rsx_dev07.pdf

G-Buffer Layout in Killzone 2

20Image from http://www.guerrilla-games.com/publications/dr_kz2_rsx_dev07.pdf

G-Buffer Layout in Killzone 2

21Image from http://www.guerrilla-games.com/publications/dr_kz2_rsx_dev07.pdf

G-Buffer Layout in Killzone 2

22Image from http://www.guerrilla-games.com/publications/dr_kz2_rsx_dev07.pdf

Light Accumulation Pass

Geometry for each lightFull-screen quad/triangle

with scissor/stencil test3D bounding geometry. Examples:

Point light – sphere Spot light – cone Needs multiple passes. Why?

23

Light Accumulation Pass

24Image from http://www.guerrilla-games.com/publications/dr_kz2_rsx_dev07.pdf

Light Accumulation Pass

25Image from http://www.guerrilla-games.com/publications/dr_kz2_rsx_dev07.pdf

References Deferred Rendering in Killzone 2 – Michal Valient

http://www.guerrilla-games.com/publications/dr_kz2_rsx_dev07.pdf Deferred Rendering in Leadwerks Engine - Josh Klint

http://www.leadwerks.com/files/Deferred_Rendering_in_Leadwerks_Engine.pdf Light Pre-Pass – Wolfgang Engel

http://www.slideshare.net/cagetu/light-prepass Compact Normal Storage for Small G-Buffers – Aras Pranckevičius

http://aras-p.info/texts/CompactNormalStorage.html

26