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. 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. 延迟着色后的 重建过程使用自定义的 filter 来优化着色结果并输出屏幕分辨率的抗锯齿帧。在下面的图片中,您可以看到SRAA如何重建一个 subpixel 。 在每个几何样本中,均会考虑固定半径内所有阴影邻居,并使用我们的自定义滤镜对它们的值进行插值,以权重还原子像素细节。深度明显不同的相邻样本被认为是跨越几何边缘(蓝线),并且重量轻。过滤器权重通过比较源样本和目标样本的 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 | Toggles SRAA on and off.
Can be controlled by render_sraa console command.Can be controlled by render_sraa console command. Can be controlled by render_sraa console command.可以通过 render_sraa 控制台命令进行控制。 |
---|---|
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.Can be controlled by render_sraa_samples console command. Can be controlled by render_sraa_samples console command.可以通过 render_sraa_samples 控制台命令进行控制。 |
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.Can be controlled by render_sraa_depth_threshold console command. Can be controlled by render_sraa_depth_threshold console command.可以通过 render_sraa_depth_threshold 控制台命令进行控制。 |
Show Debug | Shows the geometry edges smoothed by the SRAA.
Can be controlled by render_sraa_debug console command.Can be controlled by render_sraa_debug console command. Can be controlled by render_sraa_debug console command.可以通过render_sraa_debug控制台命令进行控制。 |
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.
|