shown in other instead.
Subpixel Reconstruction Anti-Aliasing (SRAA)
Subpixel Reconstruction Anti-Aliasing (SRAA) is an additional anti-aliasing technique that restores small image details. It also provides a net speedup and minimal overhead compared to supersampling. It is recommended to combine this technique with TAA for better anti-aliasing quality.
How SRAA works#
SRAA is used in deferred rendering to achieve high-quality anti-aliasing by sampling geometry at higher resolution than shading, since shading usually changes more slowly than geometry.
There are two stages in SRAA:
- Depth prepass multisampling generates depth position information at subpixel resolution. Subpixels are subdivision cells of a pixel. Depth prepass samples the geometry in the screen-space and stores samples’ position information in a G-buffer.
- Reconstruction pass after the deferred shading uses the custom filter that refines the shading results and outputs a screen-resolution, antialiased frame. In the picture below you can see how the SRAA reconstructs one subpixel. At each geometric sample, all shaded neighbors in a fixed radius are considered and their values are interpolated using our custom filter with weights to restore subpixel details. A neighboring sample with significantly different depth is considered to be across a geometric edge (blue line), and receives a low weight. The filter weights estimate distance between source and target samples by comparing their depth values.
UNIGINE's implementation of SRAA uses a depth threshold method to identify areas of the frame with edges. This way we eliminate the blur problem that comes from applying a smoothing filter to areas with no depth variation. Despite the fact that this approach uses only depth it keeps acceptable quality and represents a good trade-off for the sake of performance.
Pros and Cons of SRAA:
+ Has fixed run time independent of scene and image complexity.
- Costs performance.
Subpixel Reconstruction Anti-Aliasing (SRAA) settings are available for adjustment via the Render -> Antialiasing section of the Settings window, along with Fast approXimate Anti-Aliasing (FXAA), Temporal Anti-Aliasing (TAA) and Supersampling settings.
|SRAA||Toggles SRAA on and off.
Can be controlled by render_sraa console command.
|Samples||The number of depth geometry samples per pixels. Greater values enhance the anti-aliasing effect but can cause drops in performance.
Can be controlled by render_sraa_samples console command.
|Depth Threshold||Depth threshold for edges detection that specifies the area for the SRAA processing. Turn on the debug mode and adjust this parameter in such a way that covers the required edges but at the same time leaves out the unnecessary geometry in the scene.
Can be controlled by render_sraa_depth_threshold console command.
|Show Debug||Shows the geometry edges smoothed by the SRAA.
Can be controlled by render_sraa_debug console command.
|Use TAA||Specifies if the SRAA should use the shading sample from the previously rendered frame to achieve correct anti-aliasing. It is recommended to use this option by default.|