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. Subpixel Reconstruction Anti-Aliasing (SRAA)是附加的抗锯齿技术,可还原较小的图像细节。与超级采样相比,它还提供了净加速和最小的开销。建议将此技术与 TAA 结合使用,以获得更好的抗锯齿质量。
How SRAA worksSRAA如何运作#
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. SRAA用于延迟渲染中,通过以比底纹更高的分辨率对几何进行采样来实现高质量的抗锯齿效果,因为底纹通常比几何形状变化更慢。
There are two stages in SRAA: 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. 深度预通过多重采样以子像素分辨率生成深度位置信息。子像素是像素的细分单元。深度预通过对屏幕空间中的几何进行采样,并将采样的位置信息存储在G缓冲区中。
-
Reconstruction pass uses the custom filter after the deferred shading to refine the shading results and output a screen-resolution, antialiased frame. In the picture below you can see how the SRAA reconstructs one subpixel. 延迟着色后的 重建过程使用自定义的 filter 来优化着色结果并输出屏幕分辨率的抗锯齿帧。在下面的图片中,您可以看到SRAA如何重建一个 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. 在每个几何样本中,均会考虑固定半径内所有阴影邻居,并使用我们的自定义滤镜对它们的值进行插值,以权重还原子像素细节。深度明显不同的相邻样本被认为是跨越几何边缘(蓝线),并且重量轻。过滤器权重通过比较源样本和目标样本的 depth 值来估计它们之间的距离。
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. UNIGINE对SRAA的实现使用深度 threshold 方法来识别带有边缘的帧区域。这样,我们消除了由于对没有深度变化的区域应用平滑滤镜而引起的模糊问题。尽管该方法仅使用深度,但仍保持可接受的质量,并且为性能起见,是一个很好的折衷。
Pros and Cons of SRAA:
+ Subpixel details and geometry reconstruction.
- Costs performance.
SRAA的优缺点:
+ 具有固定的运行时间,与场景和图像的复杂性无关。
- 性价比。
SRAA AdjustmentSRAA调整#
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. The following settings are available when the Custom preset for Anti-Aliasing is selected. Subpixel Reconstruction Anti-Aliasing (SRAA)设置可通过Settings窗口的Render -> Antialiasing部分以及快速近似抗锯齿(FXAA),临时抗锯齿(TAA)进行调整。和 Supersampling 设置。
SRAA SettingsSRAA设置#
SRAA |
The value indicating if Subpixel Reconstruction Anti-Aliasing (SRAA) is enabled. Enabled by default.
Console access: render_sraa (API control) |
---|---|
Samples |
The number of depth geometry samples per pixel. This value may significantly affect performance, so keep it low when the image quality differences are not apparent. One of the following values:
Console access: render_sraa_samples (API control) |
Depth Threshold |
The depth threshold value used 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. Range of values: [0.0f, inf]. The default value is 0.1f. Console access: render_sraa_depth_threshold (API control) |
Show Debug |
The value indicating if the SRAA debug mode is enabled. This mode shows the geometry edges smoothed by the SRAA. Enabled by default.
Console access: render_sraa_debug (API control) |
Use TAA |
The value indicating if TAA integration is enabled. SRAA will use the shading sample from the previously rendered frame (TAA) to achieve correct anti-aliasing. Uses camera jittering, so it works only when the TAA is enabled. It is recommended to use this option by default. Enabled by default.
Console access: render_sraa_temporal (API control) |