forward+ (eurographics 2012)
DESCRIPTION
TRANSCRIPT
![Page 1: Forward+ (EUROGRAPHICS 2012)](https://reader035.vdocuments.us/reader035/viewer/2022081715/54b4d8e54a79592f4e8b4650/html5/thumbnails/1.jpg)
1 | Forward+ | 2012
FORWARD+: BRINGING DEFERRED LIGHTING TO THE NEXT LEVEL
AMD TAKAHIRO HARADA
![Page 2: Forward+ (EUROGRAPHICS 2012)](https://reader035.vdocuments.us/reader035/viewer/2022081715/54b4d8e54a79592f4e8b4650/html5/thumbnails/2.jpg)
2 | Forward+ | 2012
DIRECT LIGHTING
§ Lighting = direct lighting + indirect lighting
– This paper focuses direct lighting
§ For each light source, evaluate light intensity, BxDF, visibility. § Accumulate multiply of three terms
Light intensity, BxDF, Visibility
![Page 3: Forward+ (EUROGRAPHICS 2012)](https://reader035.vdocuments.us/reader035/viewer/2022081715/54b4d8e54a79592f4e8b4650/html5/thumbnails/3.jpg)
3 | Forward+ | 2012
REAL-TIME SOLUTION FOR RENDERING EQUATION
§ Forward rendering
– Limit the number of lights to be evaluated § Pick m lights for each object
– Limited visibility computation § visibility is not calculated for all the lights
![Page 4: Forward+ (EUROGRAPHICS 2012)](https://reader035.vdocuments.us/reader035/viewer/2022081715/54b4d8e54a79592f4e8b4650/html5/thumbnails/4.jpg)
4 | Forward+ | 2012
REAL-TIME SOLUTION FOR RENDERING EQUATION
§ Forward rendering
– Limit the number of lights to be evaluated § Pick m lights for each object
– Limited visibility computation § visibility is not calculated for all the lights
§ Deferred rendering
– Increase the number of lights
– Separation of light term and BxDF (shading)
![Page 5: Forward+ (EUROGRAPHICS 2012)](https://reader035.vdocuments.us/reader035/viewer/2022081715/54b4d8e54a79592f4e8b4650/html5/thumbnails/5.jpg)
5 | Forward+ | 2012
QUESTION
§ Deferred works well for GPUs on console
§ What is the rendering pipeline for today’s high end GPUs?
– It is different from console GPUs – ALU/Mem ratio is higher
– Branch penalty is smaller
![Page 6: Forward+ (EUROGRAPHICS 2012)](https://reader035.vdocuments.us/reader035/viewer/2022081715/54b4d8e54a79592f4e8b4650/html5/thumbnails/6.jpg)
6 | Forward+ | 2012
REAL-TIME SOLUTION COMPARISON
§ Forward+
§ Rendering equation
![Page 7: Forward+ (EUROGRAPHICS 2012)](https://reader035.vdocuments.us/reader035/viewer/2022081715/54b4d8e54a79592f4e8b4650/html5/thumbnails/7.jpg)
7 | Forward+ | 2012
REAL-TIME SOLUTION COMPARISON
§ Forward+
§ Rendering equation
§ Forward
§ Deferred
![Page 8: Forward+ (EUROGRAPHICS 2012)](https://reader035.vdocuments.us/reader035/viewer/2022081715/54b4d8e54a79592f4e8b4650/html5/thumbnails/8.jpg)
8 | Forward+ | 2012
FORWARD+
§ Extension of Forward rendering pipeline
– Do not limit material usage § Extension of Deferred rendering pipeline
– Keep the capability of using many lights
§ Forward+ == Forward + Light Culling
![Page 9: Forward+ (EUROGRAPHICS 2012)](https://reader035.vdocuments.us/reader035/viewer/2022081715/54b4d8e54a79592f4e8b4650/html5/thumbnails/9.jpg)
9 | Forward+ | 2012
FORWARD RENDERING PIPELINE
§ Depth prepass
– Fills z buffer § Prevent overdraw for shading
§ Shading – Geometry is rendered
– Pixel shader § Iterate through light list set for each object
§ Evaluates materials for the lights
![Page 10: Forward+ (EUROGRAPHICS 2012)](https://reader035.vdocuments.us/reader035/viewer/2022081715/54b4d8e54a79592f4e8b4650/html5/thumbnails/10.jpg)
10 | Forward+ | 2012
FORWARD+ RENDERING PIPELINE
§ Depth prepass
– Fills z buffer § Prevent overdraw for shading
§ Used for pixel position reconstruction for light culling
§ Light culling
– Culls light per tile basis – Input: z buffer, light buffer
– Output: light list per tile
§ Shading – Geometry is rendered
– Pixel shader § Iterate through light list calculated in light culling
§ Evaluates materials for the lights
1 2
3
[1,2,3] [1] [2,3]
![Page 11: Forward+ (EUROGRAPHICS 2012)](https://reader035.vdocuments.us/reader035/viewer/2022081715/54b4d8e54a79592f4e8b4650/html5/thumbnails/11.jpg)
11 | Forward+ | 2012
LIGHT CULLING DETAIL
§ Implemented using compute shader
§ Gather, scatter implementation – Gather is simpler
– See paper for scatter implementation § Gather implementation
– Single compute shader – A thread group is executed per tile
– Calculate Z extent – Build frustum
– 64 lights are culled in parallel – Overlapped light indices are accumulated in TLS
– Export § One atomic add
§ Write light indices to a contiguous memory (ó Linked list)
![Page 12: Forward+ (EUROGRAPHICS 2012)](https://reader035.vdocuments.us/reader035/viewer/2022081715/54b4d8e54a79592f4e8b4650/html5/thumbnails/12.jpg)
12 | Forward+ | 2012
BENEFITS
§ Material variety
– All the information is available in pixel shader § No separation of lighting and shading
§ No limitation to BRDFs
– Improves the pixel quality
§ Smaller memory traffic compared to deferred
– Good for low bandwidth GPUs (e.g., integrated GPUs)
– Performance increase
![Page 13: Forward+ (EUROGRAPHICS 2012)](https://reader035.vdocuments.us/reader035/viewer/2022081715/54b4d8e54a79592f4e8b4650/html5/thumbnails/13.jpg)
13 | Forward+ | 2012
BENCHMARK 3,074 DYNAMIC LIGHTS
■ 0 lights ■ 25 lights ■ 50 lights
0 2 4 6 8 10 12
Deferred
Forward+
Deferred
Forward+
Rade
on HD
6970
Rade
on HD
7970 Prepass
Light Processing
Final Shading
Per frame rendering time (ms)
Forward+ v.s. Compute-based Deferred lighting
![Page 14: Forward+ (EUROGRAPHICS 2012)](https://reader035.vdocuments.us/reader035/viewer/2022081715/54b4d8e54a79592f4e8b4650/html5/thumbnails/14.jpg)
14 | Forward+ | 2012
WHY FORWARD+ FASTER?
Forward+ § Depth prepass
– Write: Depth buffer
Deferred § G prepass
– Write: Depth buffer, Normal buffer <
0 2 4 6 8 10 12
Deferred
Forward+
Rade
on HD
6970
Prepass Light Processing Final Shading
![Page 15: Forward+ (EUROGRAPHICS 2012)](https://reader035.vdocuments.us/reader035/viewer/2022081715/54b4d8e54a79592f4e8b4650/html5/thumbnails/15.jpg)
15 | Forward+ | 2012
WHY FORWARD+ FASTER?
Forward+ § Depth prepass
– Write: Depth buffer § Light culling
– Read: depth, light geometry – Compute: culling
– Write: light list
Deferred § G prepass
– Write: Depth buffer, Normal buffer § Light accumulation
– Read: depth, normal, light geometry, light property – Compute: culling, lighting
– Write: light accumulation buffer
<
<< < <
0 2 4 6 8 10 12
Deferred
Forward+
Rade
on HD
6970
Prepass Light Processing Final Shading
![Page 16: Forward+ (EUROGRAPHICS 2012)](https://reader035.vdocuments.us/reader035/viewer/2022081715/54b4d8e54a79592f4e8b4650/html5/thumbnails/16.jpg)
16 | Forward+ | 2012
WHY FORWARD+ FASTER?
Forward+ § Depth prepass
– Write: Depth buffer § Light culling
– Read: depth, light geometry – Compute: culling
– Write: light list § Shading
– Read: light list, light property – Compute: lighting, shading
Deferred § G prepass
– Write: Depth buffer, Normal buffer § Light accumulation
– Read: depth, normal, light geometry, light property – Compute: culling, lighting
– Write: light accumulation buffer § Shading
– Read: accumulated light color – Compute: shading
<
<< < <
> >>
0 2 4 6 8 10 12
Deferred
Forward+
Rade
on HD
6970
Prepass Light Processing Final Shading
![Page 17: Forward+ (EUROGRAPHICS 2012)](https://reader035.vdocuments.us/reader035/viewer/2022081715/54b4d8e54a79592f4e8b4650/html5/thumbnails/17.jpg)
17 | Forward+ | 2012
AMD LEO DEMO
§ Forward+ rendering pipeline
§ Dynamic lighting from many lights § Physically-based BRDFs
§ Indirect illumination by dynamic VPLs § AA
http://developer.amd.com/samples/demos/pages/AMDRadeonHD7900SeriesGraphicsReal-TimeDemos.aspx
![Page 18: Forward+ (EUROGRAPHICS 2012)](https://reader035.vdocuments.us/reader035/viewer/2022081715/54b4d8e54a79592f4e8b4650/html5/thumbnails/18.jpg)
18 | Forward+ | 2012
EXTENSIONS
§ Deferred has advantages too
§ Light culling can be used for deferred – G prepass, light culling, screen space shading
§ Forward+ can be coupled with screen space effects
– SSAO – Export normal buffer at prepass
– Fetch AO value from pixel shader for final shading
![Page 19: Forward+ (EUROGRAPHICS 2012)](https://reader035.vdocuments.us/reader035/viewer/2022081715/54b4d8e54a79592f4e8b4650/html5/thumbnails/19.jpg)
19 | Forward+ | 2012
BONUS
![Page 20: Forward+ (EUROGRAPHICS 2012)](https://reader035.vdocuments.us/reader035/viewer/2022081715/54b4d8e54a79592f4e8b4650/html5/thumbnails/20.jpg)
20 | Forward+ | 2012
REAL-TIME SOLUTION COMPARISON
§ Forward+
§ Rendering equation
§ Forward
§ Deferred
![Page 21: Forward+ (EUROGRAPHICS 2012)](https://reader035.vdocuments.us/reader035/viewer/2022081715/54b4d8e54a79592f4e8b4650/html5/thumbnails/21.jpg)
21 | Forward+ | 2012
REAL TIME SHADOWING FROM THOUSANDS OF DYNAMIC LIGHTS
§ Forward + Deferred + Ray Trace
§ Deferred = Primary ray cast result
§ Ray Trace = Visibility computation § Forward = Final Shading