Adaptive Transparency · 2013. 12. 17. · Learn more about developing games & apps for MeeGo …...

33

Transcript of Adaptive Transparency · 2013. 12. 17. · Learn more about developing games & apps for MeeGo …...

Page 1: Adaptive Transparency · 2013. 12. 17. · Learn more about developing games & apps for MeeGo … • Intel AppUp Application Lab sessions are scheduled March 3 at 12pm and 3:30pm
Page 2: Adaptive Transparency · 2013. 12. 17. · Learn more about developing games & apps for MeeGo … • Intel AppUp Application Lab sessions are scheduled March 3 at 12pm and 3:30pm

Adaptive Transparency

Marco Salvi

INTEL

Page 3: Adaptive Transparency · 2013. 12. 17. · Learn more about developing games & apps for MeeGo … • Intel AppUp Application Lab sessions are scheduled March 3 at 12pm and 3:30pm

About us

• Project developed with Jefferson Montgomery and Aaron Lefohn

• ART (Advanced Rendering Technology)– Real-time rendering and programming models

research

Page 4: Adaptive Transparency · 2013. 12. 17. · Learn more about developing games & apps for MeeGo … • Intel AppUp Application Lab sessions are scheduled March 3 at 12pm and 3:30pm

Talk Outline

• Introduction

• Algorithm Description

• Live Demonstration

• Engine Integration & anti-aliasing

• Limitations

• Conclusions & Q&A

Page 5: Adaptive Transparency · 2013. 12. 17. · Learn more about developing games & apps for MeeGo … • Intel AppUp Application Lab sessions are scheduled March 3 at 12pm and 3:30pm

An (old) open problem• “Order-dependent transparency has always been a big limitation for

content creators & developers

– Restrictive art pipeline: no glass houses– Even windows on cars & buildings can be painful– Restrictive interaction between objects”

• “Order-independent transparency is must going forward

– Big challenge! Gradual process”

Five Major Challenges in Interactive Rendering”, SIGGRAPH 2010Johan Andersson

Page 6: Adaptive Transparency · 2013. 12. 17. · Learn more about developing games & apps for MeeGo … • Intel AppUp Application Lab sessions are scheduled March 3 at 12pm and 3:30pm

order-dependent transparency(alpha blending)

order-independent transparency(adaptive transparency)

Assets courtesy of Valve Corporation

Page 7: Adaptive Transparency · 2013. 12. 17. · Learn more about developing games & apps for MeeGo … • Intel AppUp Application Lab sessions are scheduled March 3 at 12pm and 3:30pm

1) Render fragments color and depth in per-pixel lists

2) Per-pixel sort and composite fragments

A-buffer

to the frame buffer

Page 8: Adaptive Transparency · 2013. 12. 17. · Learn more about developing games & apps for MeeGo … • Intel AppUp Application Lab sessions are scheduled March 3 at 12pm and 3:30pm

A-buffer Limitations

• Poor & unstable performance, memory BW limited

• BW scales quadratically with (per pixel) fragment count

• Unbounded memory requirements

Page 9: Adaptive Transparency · 2013. 12. 17. · Learn more about developing games & apps for MeeGo … • Intel AppUp Application Lab sessions are scheduled March 3 at 12pm and 3:30pm

Re-balancing BW usage

• Trade-off memory bandwidth for compute

– Data compression?

• E.g.: GPUs already do it with color/z compression

• No clear way to rebalance BW usage when sorting fragments

Page 10: Adaptive Transparency · 2013. 12. 17. · Learn more about developing games & apps for MeeGo … • Intel AppUp Application Lab sessions are scheduled March 3 at 12pm and 3:30pm

An Alternative Compositing Method..

• Re-factor the alpha-blending equation to avoid recursion and sorting*– Process terms in any order (iterative)

– Introduce a “visibility function”

• final_color =

*[Sintorn et al. 2009]

)( iii zvisc

Page 11: Adaptive Transparency · 2013. 12. 17. · Learn more about developing games & apps for MeeGo … • Intel AppUp Application Lab sessions are scheduled March 3 at 12pm and 3:30pm

• The visibility function (VF) models how light is absorbed as it travels through space

• VFs are monotically decreasing functions with values over the interval [0, 1].

– For thin blockers the VF is a product of step functions.

Page 12: Adaptive Transparency · 2013. 12. 17. · Learn more about developing games & apps for MeeGo … • Intel AppUp Application Lab sessions are scheduled March 3 at 12pm and 3:30pm

Alternative A-buffer Implementation

• For each pixel..

1) Read fragments from list and build a visibility function

2) Read list again, evaluate vis() and composite fragments

• Apply

• Still BW limited, no performance improvement

)( iii zvisc

Page 13: Adaptive Transparency · 2013. 12. 17. · Learn more about developing games & apps for MeeGo … • Intel AppUp Application Lab sessions are scheduled March 3 at 12pm and 3:30pm

• Idea: Save BW by working with an approximate visibility function (AVF)

Tran

smit

tan

ce

Distance from viewer (depth)

Tran

smit

tan

ce

Distance from viewer (depth)

32 steps

200+ steps

Page 14: Adaptive Transparency · 2013. 12. 17. · Learn more about developing games & apps for MeeGo … • Intel AppUp Application Lab sessions are scheduled March 3 at 12pm and 3:30pm

• Represent AVF as a sorted (front-to-back) sequence of nodes stored into a fixed-size array.

• To each red node corresponds a pair of values for depth and transmittance: – Don’t store first node, it always carries the values (0, 1)

Tran

smit

tan

ce

Distance from viewer (depth)

),( td

Page 15: Adaptive Transparency · 2013. 12. 17. · Learn more about developing games & apps for MeeGo … • Intel AppUp Application Lab sessions are scheduled March 3 at 12pm and 3:30pm

• To add a fragment f to the AVF we multiply all nodes located behind it by )1( f

Tran

smit

tan

ce

Distance from viewer (depth)

new fragment will be here

Tran

smit

tan

ce

Distance from viewer (depth)

)1( f

Page 16: Adaptive Transparency · 2013. 12. 17. · Learn more about developing games & apps for MeeGo … • Intel AppUp Application Lab sessions are scheduled March 3 at 12pm and 3:30pm

• To compress visibility we remove the node that generates the smallest area variation

smallest area variation

Page 17: Adaptive Transparency · 2013. 12. 17. · Learn more about developing games & apps for MeeGo … • Intel AppUp Application Lab sessions are scheduled March 3 at 12pm and 3:30pm

AVF Storage

• Store AVF in the frame buffer?– Data structure update cannot be mapped to DX11 blend modes

– No Read/Modify/Write to the frame buffer from pixel shaders

• Store AVF in a Read/Write buffer (UAV)?– Cannot avoid data races as GPUs can concurrently shade two or

more fragments that map to the same pixel (no atomicity)

• Cannot map DX11 atomic ops to fragment insertion/compression ops

Page 18: Adaptive Transparency · 2013. 12. 17. · Learn more about developing games & apps for MeeGo … • Intel AppUp Application Lab sessions are scheduled March 3 at 12pm and 3:30pm

Adaptive Transparency

1) Render transparent fragments to per pixel lists– Same as A-buffer implementation

2) For each pixel: build an approximate visibility function and use it to composite all transparent fragments– Full-screen pass guarantees atomicity

Page 19: Adaptive Transparency · 2013. 12. 17. · Learn more about developing games & apps for MeeGo … • Intel AppUp Application Lab sessions are scheduled March 3 at 12pm and 3:30pm

Live Demo• Up to 40x faster than A-buffer

– O(N) vs. O(N^2)

• High image quality (no noise, popping, etc.)– Easy to trade-off IQ for performance by tuning node count

• Works on any type of transparent geometry– Foliage, particles, hair, glass, etc.

Page 20: Adaptive Transparency · 2013. 12. 17. · Learn more about developing games & apps for MeeGo … • Intel AppUp Application Lab sessions are scheduled March 3 at 12pm and 3:30pm

SMOKE scene10.6 MFragmentMax fragment per pixel: 31221 ms (30x faster than A-buffer)

HAIR scene15.0 MFragment

Max fragment per pixel: 66348 ms (40x faster than A-buffer)

FOREST scene6.0 MFragmentMax fragment per pixel: 458 ms (7x faster than A-buffer)

Results

Page 21: Adaptive Transparency · 2013. 12. 17. · Learn more about developing games & apps for MeeGo … • Intel AppUp Application Lab sessions are scheduled March 3 at 12pm and 3:30pm

Integration with Forward Renderers

• Simply replace your typical alpha-blending pass with lists rendering plus AT compositing

– Exploit Hi-Z to reject occluded transparent fragments

Page 22: Adaptive Transparency · 2013. 12. 17. · Learn more about developing games & apps for MeeGo … • Intel AppUp Application Lab sessions are scheduled March 3 at 12pm and 3:30pm

Integration with Deferred Renderers

• Memory & shading costs associated to defer shading over transparent layers are prohibitive– Not aware of any title deferring shading for transparent

geometry, even without OIT

• Fall-back: use forward rendering like pass for transparent geometry

Page 23: Adaptive Transparency · 2013. 12. 17. · Learn more about developing games & apps for MeeGo … • Intel AppUp Application Lab sessions are scheduled March 3 at 12pm and 3:30pm

MSAA

• Store coverage mask in list nodes, composite and resolve at MSAA-sample frequency*– Slow, not accurate on intersections

• Do we need anti-aliasing on transparent geometry?– Not with proxy-geometry (foliage, particles, etc.)

– MLAA can help in the remaining scenarios

* [Carpenter 1984; Yang et al. 2010]

Page 24: Adaptive Transparency · 2013. 12. 17. · Learn more about developing games & apps for MeeGo … • Intel AppUp Application Lab sessions are scheduled March 3 at 12pm and 3:30pm

AT Limitations• Same unbounded memory requirements of A-buffer

– Current APIs issue, could be addressed on future APIs– Poor performance vs. running out of memory

• 10% of high-end GPU memory to render up to ~15MFragments

• Screen-space tiling helps avoiding memory issues– Render geometry N times with scissoring– Performance impact (~50% fillrate reduction with 4 tiles)

• Per-tile frustum culling could improve performance

Page 25: Adaptive Transparency · 2013. 12. 17. · Learn more about developing games & apps for MeeGo … • Intel AppUp Application Lab sessions are scheduled March 3 at 12pm and 3:30pm

Conclusions• AT is a new high-performance OIT algorithm for

DX11 class GPUs

• Excellent image quality– E.g.: enables nicely anti-aliased foliage without MSAA

• Easy to integrate with modern rendering engines

Page 26: Adaptive Transparency · 2013. 12. 17. · Learn more about developing games & apps for MeeGo … • Intel AppUp Application Lab sessions are scheduled March 3 at 12pm and 3:30pm

Acknowledgements

• Jefferson Montgomery, Aaron Lefohn and the rest of the Advanced Rendering Team at Intel.

• Special thanks to Craig Kolb, Matt Pharr, Charles Lingle and Elliot Garbus for supporting this work.

• Jason Mitchell and Wade Schinn at Valve Software for the assets from Left-for-Dead-2

Page 27: Adaptive Transparency · 2013. 12. 17. · Learn more about developing games & apps for MeeGo … • Intel AppUp Application Lab sessions are scheduled March 3 at 12pm and 3:30pm

Q&A

slides & demo source code: http://intel.ly/aoit_gdc

twitter: @marcosalvi

e-mail: [email protected]

blog: http://pixelstoomany.wordpress.com

Page 28: Adaptive Transparency · 2013. 12. 17. · Learn more about developing games & apps for MeeGo … • Intel AppUp Application Lab sessions are scheduled March 3 at 12pm and 3:30pm

Learn more about developing games & apps for MeeGo …

• Intel AppUp Application Lab sessions are scheduled March 3 at 12pm and 3:30pm across the street at the Marriott Marquis

• Space is limited, register today at intelapplicationlab.com and arrive 15-30 minutes before the session to check in and reserve a seat!

Talk about this on Twitter! #appup

Page 29: Adaptive Transparency · 2013. 12. 17. · Learn more about developing games & apps for MeeGo … • Intel AppUp Application Lab sessions are scheduled March 3 at 12pm and 3:30pm

Bibliography• PORTER, T., AND DUFF, T. 1984. “Compositing digital images.” SIGGRAPH Comput. Graph. 18, 3,

253–259.

• CARPENTER, L. 1984. “The A -buffer, an antialiased hidden surface method.” SIGGRAPH Comput. Graph. 18, 3, 103–108.

• SINTORN, E., AND ASSARSON, U. 2009. “Hair self shadowing and transparency depth ordering using occupancy maps.” In I3D ’09: Proceedings of the 2009 Symposium on Interactive 3D Graphics and Games, 67–74

• PATNEY, A., TZENG, S., AND OWENS, J. D. 2010. “Fragment parallel composite and filter.” Computer Graphics Forum (Proceedings of EGSR 2010) 29, 4 (June), 1251–1258.

• YANG, J., HENSLEY, J., GR¨U 547 N, H., AND THIBIEROZ, N. 2010. “Real-time concurrent linked list construction on the gpu.” Computer Graphics Forum (Proceedings of EGSR 2010) 29, 4 (June),

• SALVI, M., VIDIMCE, K., LAURITZEN, A., AND LEFOHN, A. 2010. “Adaptive volumetric shadow maps.”Computer Graphics Forum (Proceedings of EGSR 2010) 29, 4 (June), 1289–1296.

Page 30: Adaptive Transparency · 2013. 12. 17. · Learn more about developing games & apps for MeeGo … • Intel AppUp Application Lab sessions are scheduled March 3 at 12pm and 3:30pm

BACKUP

Page 31: Adaptive Transparency · 2013. 12. 17. · Learn more about developing games & apps for MeeGo … • Intel AppUp Application Lab sessions are scheduled March 3 at 12pm and 3:30pm

• To composite fragments with color and depth we can use two equivalent OIT methods:

a. For each pixel sort and recursively composite fragments according their distance from the viewer.

b. For each pixel compute a visibility function, which can be used to composite fragments in any order.

1)1( nnnnn fcf

)(1

ii

n

i

i zvisc

),( iic n

iz

Page 32: Adaptive Transparency · 2013. 12. 17. · Learn more about developing games & apps for MeeGo … • Intel AppUp Application Lab sessions are scheduled March 3 at 12pm and 3:30pm

Visibility Functions

• Visibility functions are monotically decreasing functions with values over the interval [0, 1].

– For thin blockers the VF is a product of step functions.

zz

i

i

zvis 1)(

Page 33: Adaptive Transparency · 2013. 12. 17. · Learn more about developing games & apps for MeeGo … • Intel AppUp Application Lab sessions are scheduled March 3 at 12pm and 3:30pm

alpha-test

AT