Documentation

Conservative Morphological Anti-Aliasing 2 for Unreal Engine 5

CMAA2 is an anti-aliasing solution focused on providing good results while retaining the sharpness of the image at minimal execution cost.
Version: 1.00

Installing the Plugin

Open Epic Games Launcher, head to Fab Library tab and find CMAA2 (Anti-Aliasing). Press “Install to Engine” button and choose the appropriate engine version for you.

Open your project the engine version of which have the plugin already installed and head to Plugins tab. Find the Conservative Morphological Anti-Aliasing 2 and set it enabled by checkbox. The engine will prompt to restart itself. Restart the editor and you will have plugin enabled and ready to work.

How to use the Plugin

Firstly, set the Screen Percentage to 100% in both Editor and Play modes.
To do that, go to Editor Settings > Performance and set Override project’s default screen percentage more for realtime editor viewports using desktop renderer to Manual (or type in console “r.ScreenPercentage 100”).

Then set Anti-Aliasing Method to None.
Go to Project Settings > Rendering > Default Settings > Anti-Aliasing MethodNone (or just type in console “r.AntiAliasingMethod 0”) and that will enable CMAA2 . Choosing any other option will disable CMAA2 and enable other selected method.

Additional console commands:

NameDefault ValueDescription
r.CMAA21Enable Conservative Morphological Anti-Aliasing 2 (CMAA2).
r.CMAA2.Quality2Quality Preset:
0 = Low
1 = Medium
2 = High
3 = Ultra
r.CMAA2.ExtraSharpness0Enable ‘Extra Sharpness’ mode.
r.CMAA2.ShowEdges0Debug view of the Edge Process pass.

Performance

As a post process effect, the performance cost of CMAA2 is tied to the screen resolution and it is generally about the same as native TAA (also the performance might be a little different between engine versions).
CMAA2 also supports PC VR and can be treated as a low-quality alternative to MSAA, since it runs noticeably faster.

(Some performance measurements on different GPUs are coming later)

Technical Details

The plugin uses SceneViewExtensionBase engine class to safely inject the shader into the rendering pipeline. To be specific it’s set after SSR input, which is almost at the start of post processing chain, so every other default post process effects remain compatible.

As a MLAA-type of anti-aliasing it supposed to be rendered at 100% screen resolution (higher is good too).

Supported Plugin Versions

Here’s a table of latest supported Plugin Version for each Engine Version.

Engine Version5.35.45.5
Latest supported plugin version1.001.001.00

Changelog

V1.00

  • Initial release