![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](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe2feaac05c4b1d8628f048/html5/thumbnails/1.jpg)
![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](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe2feaac05c4b1d8628f048/html5/thumbnails/2.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe2feaac05c4b1d8628f048/html5/thumbnails/3.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe2feaac05c4b1d8628f048/html5/thumbnails/4.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe2feaac05c4b1d8628f048/html5/thumbnails/5.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe2feaac05c4b1d8628f048/html5/thumbnails/6.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe2feaac05c4b1d8628f048/html5/thumbnails/7.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe2feaac05c4b1d8628f048/html5/thumbnails/8.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe2feaac05c4b1d8628f048/html5/thumbnails/9.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe2feaac05c4b1d8628f048/html5/thumbnails/10.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe2feaac05c4b1d8628f048/html5/thumbnails/11.jpg)
• 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](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe2feaac05c4b1d8628f048/html5/thumbnails/12.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe2feaac05c4b1d8628f048/html5/thumbnails/13.jpg)
• 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](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe2feaac05c4b1d8628f048/html5/thumbnails/14.jpg)
• 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](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe2feaac05c4b1d8628f048/html5/thumbnails/15.jpg)
• 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](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe2feaac05c4b1d8628f048/html5/thumbnails/16.jpg)
• 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](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe2feaac05c4b1d8628f048/html5/thumbnails/17.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe2feaac05c4b1d8628f048/html5/thumbnails/18.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe2feaac05c4b1d8628f048/html5/thumbnails/19.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe2feaac05c4b1d8628f048/html5/thumbnails/20.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe2feaac05c4b1d8628f048/html5/thumbnails/21.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe2feaac05c4b1d8628f048/html5/thumbnails/22.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe2feaac05c4b1d8628f048/html5/thumbnails/23.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe2feaac05c4b1d8628f048/html5/thumbnails/24.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe2feaac05c4b1d8628f048/html5/thumbnails/25.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe2feaac05c4b1d8628f048/html5/thumbnails/26.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe2feaac05c4b1d8628f048/html5/thumbnails/27.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe2feaac05c4b1d8628f048/html5/thumbnails/28.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe2feaac05c4b1d8628f048/html5/thumbnails/29.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe2feaac05c4b1d8628f048/html5/thumbnails/30.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe2feaac05c4b1d8628f048/html5/thumbnails/31.jpg)
• 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](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe2feaac05c4b1d8628f048/html5/thumbnails/32.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe2feaac05c4b1d8628f048/html5/thumbnails/33.jpg)
alpha-test
AT