SRAA: Subpixel Reconstruction Anti-Aliasing
Filtering Approaches
for
Real-Time Anti-Aliasing
http://www.iryoku.com/aacourse/
SRAA: Subpixel Reconstruction Anti-Aliasing
Morgan
McGuire1 Matthäus Chajdas2
Sergey Puchin Miguel Sainz David
Luebke
NVIDIA
Also affiliated with:
(1)
Williams College (2) Technische Universität München
SRAA result
Data courtesy of Crytek
from Crysis 2
SRAA result
Data courtesy of Crytek
from Crysis 2
SRAA
- SRAA is
research targeting cases where 1 spp morphological approaches fail
- Combined with
another method for edges
- Performance
and quality improvements since I3D 2011 paper (NVIDIA tech report coming
soon)
1 sample-per-pixel input
Data courtesy of DICE
from Battlefield 3
Data courtesy of DICE
from Battlefield 3
Input
SRAA
Output
Edges
Data courtesy of DICE
from Battlefield 3
Input
SRAA
Output
Subpixel
Features
Data courtesy of DICE
from Battlefield 3
Input
SRAA
Output
Subpixel
Features
Vector Input
1x Sampled
Ideal
Ideal
MLAA
SRAA
SRAA Attributes
- Reconstructs
subpixel precision from 1x color, e.g., for:
- About 1 ms
on GeForce 560 at 1080p
- Requires MSAA
depth buffer
- Accepts optional
MSAA normal/uv/ID buffers
- Alternative:
temporal or subpixel-morphological (SMAA)
- Polygon edges
- Power lines
- Fences
- Trees
- Distant characters
- CAD wireframe
- Grass
- Antennae
The Key Idea
Implementation Notes
- Combine
with other methods
- Run FXAA on
1x color before SRAA (not shown today)
- Keep alpha-blending
for billboards
- Primitive
antialiasing on lines or select polygons
- Compatible
with SSAA, MSAA and CSAA
- Super-sampled
depth is “free”
- Depth-only
4x MSAA renders 3x faster than even 1x flat shading
- Depth buffer
read/writes are compressed on many architectures
- Still have
to pay memory cost
- “discard”
or stencil-mask pixels without edges
Space and quality
Space and quality
|
Input (no AA) |
Depth16F |
Depth16F + RGB8 Normal |
R8 Primitive ID |
| |
16.6 MB |
49.8
MB |
8.2
MB |
All run in about 0.55
ms at 1920x1080 on GeForce 560 Ti
R8 Primitive ID Buffer
Conclusion
- I currently
use FXAA for large-triangle edge antialiasing
- A small
amount of MSAA data can improve subpixel-triangle antialiasing
- Primitive
IDs are an effective and compact heuristic discriminator for AA