Anti-aliasing
Anti-aliasing (AA) is a graphics technique extensively employed in Valve video games, such as those in the Half-Life series, as well as in other software applications developed by Valve, including Steam and Source Filmmaker, etc. This technique is utilized to enhance the visual quality and reduce the jagged edges, or jaggies, that can appear in computer-generated imagery.
Computer monitors are essentially a large grid of squares that can be set to any color or brightness. As such, it is impossible to draw a perfectly straight line, because no matter how many squares there are, it will never be able to make a perfectly smooth diagonal. This creates a stair-step pattern that gets increasingly noticeable the lower the resolution is, which is often referred to in the video game world as "Aliasing". Spatial anti-aliasing, often referred to simply as anti-aliasing, is designed to combat the problems of aliasing. In simple terms, anti-aliasing is designed to smooth out that stair-step pattern in images and make them look less pixelated, while not changing the resolution of the final image.
While anti-aliasing is available on PC, it was often not supported on consoles until the release of Portal 2 (which uses MLAA on PlayStation 3), as traditional methods like MSAA are very expensive, compared to post-processing methods like FXAA/TAA/MLAA used in later games. In all Source 2007 games and above on Xbox 360, it uses software AA, which is not as effective as newer post-processing methods.
Overview
Traditional methods
SSAA
SuperSampling Anti-Aliasing, also known as Full Scene Anti-Aliasing (FSAA) in some games and often interchangeable with the term downscaling.
- Technically when implemented correctly, these do differ in that downscaling applies to an entire frame buffer – 2D and 3D Elements, while SSAA/MSAA are techniques only applied internally to 3D elements. In some implementations this can result in a lesser performance impact and better compatibility.
Compared to MSAA, SSAA/FSAA produces the same result as MSAA, but completely reduced stair-step pattern in alpha textures, and makes transparent letters (on the container prop) less blurry. Additionally, ReShade depth buffer detection works with SSAA. However, despite it's very high-quality results, SSAA is very expensive when it comes to performance compared to MSAA, and SSAA is not available as an option in Source by default, but can be enabled below:
On NVIDIA graphics cards, it's implemented as OGSSAA (Ordered Grid Supersample Anti-Aliasing), and can only be enabled through third-party applications such as Nvidia Profile Inspector, using the following modes: 2x1, 1x2, 2x2, 3x3, 4x4. OGSSAA also only supports Direct3D.
Downscaling
Downscaling or downsampling is a brute-force method for AA, which applies SSAA to both 2D (such as HUD and UI) and 3D elements by running the game at a higher resolution. It can be enabled on graphics card control panel as NVIDIA DSR or AMD VSR. Unlike SSAA, downscaling will produce slightly blurrier results and does not get rid of the shimmering effect on transparent textures/objects.
Another downside to downscaling is that many older games' UI (such as VGUI) will become smaller at higher resolutions. However, recently Half-Life 2 and Half-Life 2: Deathmatch (both since 20th anniversary), and aswell as Team Fortress 2 has been updated to allow VGUI to scale properly on higher resolution, while all games since Left 4 Dead properly scales UI at 4K or higher (except close captioning which does not scales in Left 4 Dead, but does on Left 4 Dead 2 and newer titles).
MSAA
MultiSample Anti-Aliasing (MSAA) was the gaming industry standard of anti-aliasing (prior to the TAA gradually replacing MSAA in mid-late 2010s as games transitioned from forward rendering to deferred rendering), and as such is the only anti-aliasing available (alongside CSAA on NVIDIA cards prior to Maxwell) in all Source games before Counter-Strike: Global Offensive, and later available in GoldSrc in 2013, with only MSAA 4x being available, which is enabled by default. In GoldSrc, the anti-aliasing can be disabled by starting with the -nomsaa
launch option. Essentially, if a polygon is crossing a multisample point, or subpixel, it detects how many of its neighboring points are also being intersected, then takes the color of that polygon and adds it over the existing image to create a slightly smother line. This creates a smoother line, but does not completely remove the stair-step pattern (especially on alpha textures that don't use alpha to coverage) without combining FXAA/SMAA/other post-FX AA methods with MSAA, plus games that use deferred rendering and MSAA may not work properly and can cause various other issues. This is usually sufficient for most users, however.
All GoldSrc, Source and Source 2 games contain 3 different settings of MSAA, which include:
- 2x
- 4x - Default level in post-SteamPipe GoldSrc (can be enhanced in GPU control panels), aswell default on post-20th anniversary
- 8x - Very expensive on older/low-end hardware. Introduced in Source 2006. You can enable 8x MSAA in Source 2004 by using the
mat_antialias 8
console command, or force it through driver settings.[1]
What this does is add more subpixels to a specified location and increases the accuracy of the multisampling, at the cost of performance. Some alternative anti-aliasing methods such as the post-processing one will be less demanding compared to MSAA or other methods.
SGSSAA (and transparency AA)
(only in ) SGSSAA, short for Sparse Grid Super-Sampling Anti-Aliasing is a improved version of SSAA (or OGSSAA), using MSAA and TrSSAA (for transparent textures without alpha to coverage), to apply anti-aliasing to the image. Enabling this method requires third-party application such as NVIDIA Profile Inspector, plus change the "Antialiasing - Compatibility (DX9)" flag and LOD bias to allow SGSSAA to work, produce good results and makes distant texture looks significantly sharper (compared to NVIDIA DSR), it also produces more detail than OGSSAA (or regular SSAA).
Game | Flag |
---|---|
All | LOD Bias: Set Negative LOD to "Allow", then set the following value: 2xSGSSAA (2 samples): -0.5 (or -0.375) 4xSGSSAA (4 samples): -1.0 (or -0.875) 8xSGSSAA (8 samples): -1.5 (or -1.375) |
Source 2004 - Source 2013 | 0x000000C1 0x004000C1 (if ReShade is used) 0x004010C1 (Portal) |
Left 4 Dead engine branch and above | 0x000000C0 0x004000C0 (if ReShade is used) 0x004010C0 (Portal 2) |
CSAA[ Deprecated]
Coverage Sampling Anti-Aliasing (CSAA) was an NVIDIA-exclusive method of anti-aliasing, introduced with the GeForce 8 Series. It aims to further reduce the additional stress that MSAA puts on the system, with NVIDIA claiming that a CSAA-rendered image will rival 8x-16x MSAA while only putting a load on the system comparable to 4x MSAA. It does this by reducing the number of settings each sample determines (by creating a new sample for coverage) while increasing the overall number of samples.
However, by the release of Maxwell-based GPUs such as GTX 750 Ti, GTX 800M/900 series in 2014, and newer NVIDIA graphics card (or drivers released around Feb 2014 onwards which affects GeForce 400 series card and above) drops support for CSAA completely, and Multi-Frame Anti-Aliasing (MFAA) completely succeeded it, with limitations such as disabling D3D11 Driver Command Lists, killing multi-threaded rendering in DX11 Source games (and thus performance when CPU-limited), and FPS lower than 40 will cause smearing and blurring when in motion (similar to TAA).
Source natively support CSAA since Source 2007. Support for CSAA was removed since Maxwell and later NVIDIA cards, or Source 2013 update.[2]
There are 3 different settings of CSAA, which include:
- 8x (MSAA 4x performance)
- 16x (MSAA 4x performance)
- 16xQ (MSAA 8x performance)
Post-processing methods
Software AA
(in all games since ) All Source engine games since Source 2007 introduced software AA, which blurs the jagged edges (similar to FXAA or other post-processing AA). It currently only works on Source 2007 games (tested on Black Mesa 2012/mod version). Software AA is also supported (and used) in Xbox 360 port of Source engine games.
This bug does not apply to console port, however (confirmed on Postal III cancelled Xbox 360 port which run on Source 2009). (tested in: , , , , Source SDK Base 2013.)
FXAA
Fast Approximate Anti-Aliasing (FXAA) is a post-processing anti-aliasing with a very low performance cost. The main advantage of this technique over regular anti-aliasing is that it doesn't require a lot of computing power, and is also capable of smoothing out alpha-blended textures (aka transparent textures). Its main drawback is that it blurs the final image, so textures will look less sharp, and plus, they don't recover the missing pixel (or alpha to coverage) without using FXAA with MSAA simultaneously (or by downscaling). Regular Source (prior to CS:GO engine branch, or in third-party engine branch such as Xengine) doesn't have support for it but as FXAA is a post-processing effect, it can easily be implemented like with the Source shader editor or with ReShade.
Additionally, using ReShade on Counter-Strike: Global Offensive and Counter-Strike 2 requires the
-allow_third_party_software
and -insecure
command-line options, which would prevent you from connecting to any VAC-secured server.MLAA
Morphological Anti-Aliasing (MLAA) is a post-processing anti-aliasing typically available on AMD cards, but it can be used with any other graphics card. It's similar to NVIDIA's FXAA but has a higher performance cost, but is less demanding compared to MSAA. It's used in PlayStation 3 version of Portal 2.
SMAA
Subpixel Morphological Anti-Aliasing (SMAA) works similarly to FXAA or MLAA (which is what SMAA was based off), but results in much better image quality than both FXAA and MLAA, while also taking little performance impact. There are currently no GoldSrc, Source or Source 2 games using this AA method, but users can add SMAA by using ReShade or Source Shader Editor.
CMAA
Conservative Morphological Anti- Aliasing (CMAA) is an image-based post-processing technique originally developed by Filip Strugar at Intel. CMAA uses 4 main steps to reduce aliasing:
- Color break detection
- Locally dominant edge detection
- Simple shape handling
- Symmetrical long edge shape handling.
CMAA, while having slight performance impact compared to FXAA, but still has less performance impact than SMAA, CMAA manages high quality anti-aliasing while preserving text and without over blurring the geometry.
CMAA is currently only implemented in Counter-Strike 2.
Temporal methods
TAA/TSSAA
Temporal Anti Aliasing (TAA) is an anti-aliasing technique that reduces shimmering or flickering effects by smoothing the frame when in motion. There are multiple implementations of TAA, but the most common one is TSSAA (Temporal Super-Sampling Anti-Aliasing) which combines information from past frames (usually 8 frames) and the current frame, while also slightly jittering to smooth the current frame. Each pixel is sampled once per frame but in each frame the sample is at a different location within the pixel. Pixels sampled in past frames are blended with pixels sampled in the current frame to produce an anti-aliased image. While being cheaper to calculate than MSAA, and produces image similar to super sampling anti-aliasing (SSAA) or downscaling, its main drawback is that it can cause ghosting and blurriness to the image, especially when in motion, noticeable with lower framerate or resolution, depending on the implementation (Example here). Some of the drawbacks can be mitigated by adding a sharpening filter.
As of mid 2010s, it's the current gaming industry standard of anti-aliasing (alongside FXAA for weaker hardware) with many modern games (except many VR and mobile games) started to use TAA as most modern games transitioned from forward rendering to deferred rendering, which allows many lights to be rendered without a significant performance hit, and because MSAA is harder to implement on deferred rendering yet produce worse result than games using forward rendering, and some games use TAA to hide dithering effect (such as SSAO or ray tracing).
Apex Legends as well as Titanfall 2 are the only Source games that uses TSSAA, while Titanfall uses TXAA which requires MSAA to function. Portal with RTX and all other RTX Remix games also use TSSAA anti-aliasing, through DLSS (or DLAA). One upcoming Source 2 game made by Valve, Deadlock, supports TAA through AMD FSR2. Both DLSS, XeSS and FSR 2.0 (and later) not only apply TAA anti-aliasing (using AI/Tensor Cores), but also improve performance by rendering the image at lower resolutions then scaling to higher resolutions.
TXAA
TXAA is an older form of TAA that creates a smoother image by combining MSAA with Nvidia-designed temporal filters. TXAA is supported with Nvidia GeForce GTX 600 series or higher, and requires MSAA to be enabled in order to use.
Media
GoldSrc
Source
Closeup
This image shows how each anti-aliasing methods affect text, details, transparent textures (both non-alpha to coverage and alpha to coverage).
Source 2
Support
GoldSrc
Source
Source 2
Performance impact
Below is the performance impact of each AA method. Most modern mid-range and high-end GPUs are capable of 8x MSAA with no performance loss, and over 60-100 FPS in Source games, as they are capped at 300 FPS by default.
Console commands
Source
MSAA / CSAA
Source 2013 games and older Source engine games have these console commands dedicated to anti-aliasing:
- mat_antialias (0-8)
- Goes from 0x to 8x MSAA.
This command also does nothing in Black Mesa (since Xen update) as MSAA has been removed. MSAA is still available on previous versions of Black Mesa.
On Source 2004 (which only supports up to 6x officially), 8x MSAA can be enabled by using this command, but once you quit the game, it will reset to 4x MSAA.
- mat_aaquality (0-4)
- It was used to set CSAA anti-aliasing settings. 8x and 16xQ is "mat_aaquality 2", 16x is "mat_aaquality 4".
Software AA
Software AA is also supported (and used) in Xbox 360 port of Source engine games.
- mat_software_aa_blur_one_pixel_lines (0-1)
- How much software AA should blur one-pixel thick lines: (0.0 - none), (1.0 - lots)
Default: 0.5
- mat_software_aa_debug (0-3)
- Software AA debug mode: (0 - off), (1 - show number of 'unlike' samples: 0->black, 1->red, 2->green, 3->blue), (2 - show anti-alias blend strength), (3 - show averaged 'unlike' colour)
Default: 0
- mat_software_aa_edge_threshold (value)
- Software AA - adjusts the sensitivity of the software AA shader's edge detection (default 1.0 - a lower value will soften more edges, a higher value will soften fewer)
Default: 1.0
- mat_software_aa_quality (0-1)
- Software AA quality mode: (0 - 5-tap filter), (1 - 9-tap filter)
Default: 0
- mat_software_aa_strength (0-4)
- Software AA - perform a software anti-aliasing post-process (an alternative/supplement to MSAA). This value sets the strength of the effect: (0.0 - off), (1.0 - full)Note:This can be set up to "4", but will cause dithering to be more visible around the edges.
Default: 0.0 (PC), 1.0 ()
- mat_software_aa_strength_vgui (0-1)
- Same as mat_software_aa_strength, but forced to this value when called by the post vgui AA pass.
Default: 1.0 (PC), 2.0 ()
- mat_software_aa_tap_offset (value)
- Software AA - adjusts the displacement of the taps used by the software AA shader (default 1.0 - a lower value will make the image sharper, higher will make it blurrier)
Default: 1.0
Source 2
Counter-Strike 2 only:
- r_csgo_cmaa_enable (0-1)
- Enable CMAA2.
- r_csgo_cmaa_extra_sharp (0-1)
- Enable sharpening when CMAA2 enabled.
- r_csgo_cmaa_quality (0-3)
- Adjust CMAA2 quality from Off, Low, Medium, and High.
See also
External links
References
References | ||||||||
---|---|---|---|---|---|---|---|---|
|