CMAA an alternative antialiasing with less blur

My understanding is that MSAA in a forward renderer supersamples the depth buffer but not fragment shaders, so it can be much, much faster than simple supersampling.

For standard applications this is arguable-- I strongly dislike the artifacts temporalAA creates, and I’ve found that the absence of anisotropic lighting makes it impossible to represent the materials I need with the fidelity I want, but I understand that not everyone shares my needs.

For VR, my experience has been that you get all of the drawbacks of deferred rendering with none of the benefits-- If we used UE4, we would get (what I would consider to be) an unacceptable quality of AA, coudn’t art direct the lighting of our scenes with exclusion lists, and would still have to use light maps because dynamic lights are too slow and dynamic GI at 90+hz is simply a dream.

I know I know… but we don’t necessarily need it to be as fast, even if there was a better AA solution that cut the fps by ~30% I would still gladly take it and still be able to make a PC game that runs at 60+ fps :stuck_out_tongue: …just saying.

At any case, point is that Temporal AA is simply not good enough (I don’t think there is an argument about that) and we need to look for a better solution.

Honestly just having an option for better/more conservative temporal reprojection might solve a lot of people’s problems. Saw a clever thing of giving… I can’t remember if it was tile or pixel based, per pixel I think… a unique ID, storing the ID buffer and matching from previous frame. So if the reprojection of the last frames information doesn’t have a matching ID to contribute to this frame’s ID you reject. Should get rid of ghosting/blur.

That would be a good idea for consoles/PC anyway, which can run morphological edge AA/Toksvigg on top of temporal AA and so don’t need to rely on temporal AA as heavily. Morphological (other than FXAA) and Toksvigg are fairly performant anyway, and yes Toksvigg can’t do procedural meshes, well it’s still super performant and looks good, so not really the end of the world if its use case is only for 95% of projects rather than 100%.

I hate to be This Guy…

But in every PC game I ever played, I had the option to choose which antialiasing method I used, with the knowledge that higher settings would have a negative impact on my framerate unless my hardware was strong enough to handle it.

It just seems sort of ridiculous to me that we’re having a conversation about whether or not this or that AA algorithm is performant enough; Epic doesn’t have to pick ONE, and in many cases neither does the developer. There’s no reason not to include better-looking but less performant options so that end-users with GPU cycles to spare couldn’t get a better looking end result.

That said, I understand why specifically MSAA isn’t a good choice for UE (since it’s basically useless in a deferred environment)… But right now our options are “Temporal, FXAA, Supersampling” with zero modifiable parameters… and that seems like a really small number of choices, IMO. I can’t remember the last time I played a PC game without at least a half-dozen options in that drop-down menu.

I can’t think of a reason to ever have FXAA or Temporal AA enabled. The only major drawback of not having Temporal AA enabled is it removes a huge chunk of reflections. If I could selectively re-enable those reflections, even at a comparable performance loss, and then just supersample to tackle jaggies, that would still be a far more preferable solution than re-enabling the blur filter. Not to speak of the ghosting.

FXAA does not create blur or ghosting. Without any Antialiasing the game looks way too aliased, but FXAA is not perfect and the edges are not really smooth, even if it’s way better than Temporal AA because it does not have blur and ghosting.

We also need some sort of sharpening method for the times that we do use temporal AA. I sharpen most games I play with Reshade or SweetFX.

Temporal AA is doing far more than I would ever want an AA solution to do. This is my main problem with it. It drastically changes the final image and reflections are also heavily tied into it for whatever reason that is unknown to me. You basically have to use it from the start or not at all, it’s not an option for later. It also has issues with making everything look soft, physical camera movement making it not exist and ghosting. None of which are acceptable.

FXAA is not fixing the problem. It’s rounding the edges of the aliasing and usually touching more than it should. Every game I’ve seen it used in typically looked worse for the effort and any players that knew about it were usually clamoring to get it turned off. The upside is we no longer have motion issues, but that’s about it. Losing reflections is also an issue.

The only option I’m left with is none. I would rather be staring at those jagged edges than put up with the other problems.

We have other solutions already to go in-between like SMAA but they’re being swept aside because Temporal AA is still somehow better because of a purely performance perspective. I’m looking to design for the desktop, not a smartphone. I turn AA on to fix the problem of aliasing and improve quality, not add countless other issues. I really can’t help but feel like this is yet another dodge and its getting really frustrating.

Will the image look blurry after turning off Temporal AA? I mean, not everyone hates dog teeth or pixelated image.

The problem is that the input is **really ** aliased, so it’s not just that it’s a ‘bit’ bad… it’s REALLY bad.

Would it be possible to support multiple types of AA in UE4 and expose them as customisable graphical options for the PC version and choose one method for each of mobile & console platforms on your project?

I personally think that TAA is the best solution out there. Only problem is ghosting, but there are solutions that could be implemented such as quality restrictions on masked materials and animated materials that could help with this. Hopefully they will get integrated, but in the meantime it’s very much useable. Way better than FXAA. I usually work on photorealistic imagery and blurring is something you always need to make the image more realistic. I sincerely don’t understand why people despise this method so much, it’s one of the things that made people drool about UE image quality in the first place…

This is the best way I can think of to describe the problem I have with it. Difference layer with adjusted curves, same settings on all the images. SMAA has an example program you can load images into. Temporal/FXAA at Epic and SMAA at Ultra.

Well that’s just my opinion. Aside from ghosting (that can be very distracting in some cases and I hope epic will fix that at some point) there’s literally no problem in the way that TAA handles images, since the player is gonna focus on the action, the gameplay, the mood, the GENERAL presentation, and not on the pretty reflections. Which by the way still look plenty good. The blurring is there, it’s just that for me this is actually better since I always try to remove that digital feeling in images. Not to mention the total lack of jaggies :slight_smile:

The images you sent don’t really have an objective meaning, they just testify that you don’t like the visual style of the method.

Because it’s all fine when we talk about style, but I’m starting to feel a bit tired of reading everyone here writing that the quality is not there.

We should try not to be too much subjective when evaluating features. Quality is there, even if you don’t like the blurry result. It’s Way better to focus on gameplay or content creation folks.

Okay. Opinion noted.

So why bother using Unreal 4 to begin with when I can make a roguelike? Why can’t I have both?

Um?

Well, okay, for images I guess. I wouldn’t know. I’m dealing with objects in motion in a 3d environment built for fidelity. I’m happy you’re making it work out for your own needs.

Technical inadequacy =! visual style.

Because it isn’t. Believe it or not, but some people prefer to have their games relatively free from excessive post processing blurring out and hiding the game from their players, and many players prefer the game to be free of unnecessary obfuscation.

These observations are objective, not subjective. Are you trolling?

How are graphics not a part of content creation or gameplay? How is a game visually represented not a critical element of its creation and experience? How is asking for more options and control over how a product appears not “focusing on gameplay or content creation”? Do you just throw out random words for the heck of it? If it doesn’t trouble you, that’s fine. Don’t try to derail a legitimate suggestion thread. I’m not going to justify you with the dignity of being read again.

XD

Well if to you blurry = quality then good for you, nothing wrong with that :slight_smile: but I think most of us here will argue that sacrificing sharpness (a lot of sharpness btw) to remove jaggies is not a great solution… that’s like putting a bag over her head, you know? :stuck_out_tongue: lol

Yes i agree on that! That’s why you can use FXAA if you need the sharpness, at the expense of jaggies. Not for me but everyone has different needs. To me FXAA looks like, well, you get it :wink:

You absolutely can. All I’m saying is that your game will look gorgeous with pbr and ssr and all that good stuff even if you see the jaggies with fxaa

I’m using UE as a complement to photorealistic VFX. For me fidelity is about getting realistic movies out for film and tv, so i’m just using the intrinsic characteristics of taa to give my frames the smooth quality they need, and then post sharpen. Which by the way you could also do with a post process material yourself, you just need to browse on the net for shader hints and code your own.

Absolutely. Your needs not met != Technical Inadeguacy. To me this remark is subjective, and while I respect your subjective opinion (by which you are entitled to ask Epic for a new algorithm) you cannot really say taa is technically inadequate. It just doesn’t suit your needs.

Again, personal opinion. As mine is btw, since we don’t have analytics on people here to discuss real numbers with. So let’s not go into a “i know my user base better than you” war. It doesn’t get us anywhere.

Not trolling, I’m just observing that out of the three images you set the taa one seems to have some aa applied inside the surface since there’s incoherency on the cheeks and in the face in general, which introduces blurring.
If you don’t like that, well, that’s again a personal preference.
Blurring the speculars on surfaces lets bloom and other post effects play nice together and above all temporally stable. Reflections with ssr can get a bit lower quality without too much degradation as does ssao.
I very much prefer stable results so my blooms don’t go stroboscopic on me, and speculars don’t alias too much.
That kind of things scream CG to me, and again that’s just my personal opinion, no need to get angry about it.

That’s true, and you can absolutely ask for better controls and new algorithms to be implemented, I’m just bothered by the way people keeps asking while referring to taa as (an i’m quoting bits and pieces on this thread):

  • we absolutely need better AA option(s)
  • I think Temporal AA is unusable
  • I think the engine need a internal rework (this one is hilarious)
  • Temporal AA is simply not good enough
  • I can’t think of a reason to ever have FXAA or Temporal AA enabled
    Normally when I ask things to someone I first acknowledge their prior work, not bash it, and then i propose alternatives or just point out use cases to where the prior work breaks, so people in charge can understand why I would need changes.
    And I do this always after I get the hang of the inner workings of what i’m speaking about.
    Some people did that, Some other people pointed out the benefits of taa and the technical problems behind other techniques (TheJamsh answers are always good, tech savvy and rational).
    After this iter, if Epic listens I’m happy, if not i just decide if the tool is right for me in this state and switch over to something else if it’s not.
    Then some people started not to do all this and instead kept on with “not usable! change your rendering!”
    Kinda reminds me when I got annoyed on a Unreal thread (but didn’t comment), where people started arguing with DanielW on the Global Illumination Thread, which made him not post updates on his work until just recently.
    WTF? Why bicker after seeing those gorgeous screenshots? let the guy do his thing, he’s clearly better than everyone on this forum.

I’m not spewing random stuff, nor I’m being impolite to single persons directly, like you kind of did in that last sentence.
I’m just thinking that taa doesn’t stop anyone from creating content or games or images of videos or anything, because there ARE people right now using it to do stuff, so I’m thinking I’m not the only one that feels this way?
So to me the biggest hurlde would be content creation and gameplay. That’s the money sink, and the biggest time budget of every project related to gaming.
In my opinion that’s where Unreal engineers better focus their effort to optimize the engine, so we can save money and time. More workflow! More well thought editors! More standardization!
But again, if people here behave politely again I can’t see the harm in asking. What irked me before was the arrogance of some posts.

So please don’t take this personally, I was just referring to the general mood of the conversation here. Seemed something out of a Unity forum (this is a bit of a troll :)).

Quite honestly here, the pot is calling the kettle black when you talk about arrogance. I’m not IskatuMesk. It’s great you like having something that blurs the final image but sharpening it after to try and fix it is only going to make things worse, anyone could tell you that. I’ve not once talked about anything subjective, if anything that is what you desire from what TAA does. I’m coming from a purely objective point that TAA is degrading the entire image, thats what the difference images are showing. If you are fine with it introducing noise into all the work you put into your assets, fine. I’m not, several others here are not and everyone modding games to fix non-native resolutions/disable FXAA to use SMAA is not either.

Yes, people are using TAA without any issues with it. Some just don’t care or are fine with it? That’s nice. The AAA industry also has no problems forcing the i’m-going-to-blur-everything implementations of FXAA on every game or rendering at non-native resolutions either. They also have no problem with Chromatic Aberration and the obsession to bring camera defects into games. That doesn’t make the negative effects of TAA or the incapability of FXAA any better or usable for people like myself that are not interested in heavy handed post processing. It’s not subjective that your game being clear and readable is a good thing to have, something else that gets missed very painfully most of the time.

The GI thread? You mean where a couple users were complaining about the quality of an a very early experimental implementation? I’m looking forward to where that’s going because I know the limitations lightmass has. However TAA is not early or experimental, It’s defaulted to on. This isn’t the first time someone has complained about TAA’s problems, there’s hardly been a real response about them.

Whoops sorry about that, got lost in the long post. I was just referring at the screens to make a point though, again, nothing personal.

I’m going to file this sentence as personal opinion. Sharpening when done right can work wonders, and it’s a must on whatever render I do while working on film. I do know that it falls apart very quickly though, especially when not handled correctly.
Of course this is my opinion, I’m not forcing this on anyone.

Point taken. That’s why i was referring to my opionions as just mine. I’m not trying to force anything on anyone, but since we should all know that AA techniques have all their pros and cons and there are gonna be tradeoffs, this whole aa choice becomes a matter of personal perspective, not an objective one.
This means that when anyone says (and i’m going to refer to your sentence specifically but it could be anyone’s) “It’s not subjective that your game being clear and readable is a good thing to have”, I think that person’s starting to blur the line between his needs and constrained technology efficiency.
So, I respect that for you a clear and readable image is very important, but for others (me included) replicating camera artifacts and blurriness becomes a need as well. If it were an objective matter we woudn’t be arguing right now.

Here’s my personal opinion on this matter: whatever asset you’re gonna see through unreal, actual asset quality (shader behaviour, meshing, colours, shape etc) and proper lighting is the thing that matters.
That’s why I very much appreciate what the epic team did on the kite demo, since it’s a workflow that is being done in every vfx facility I know.
Put into the mix a not so smooth jaggies algorithm and the whole thing falls apart.
That’s why I love TAA. No jaggies whatsoever and temporal coherency. For me it’s a BIG win. I hate the ghosting, but it’s a minor issue for me now, even if I do want Epic to improve TAA on this matter.
And still, whatever blurring it introduces in my image, it’s not so heavy to call the output unforgivable. I just work around that problem if I need, by adding a bit of sharpening in the textures and other tricks. I agree that it’s not ideal nor it’s good practice, but that’s the way it can be done right now.

Nope, I was referring to the first image that DanielW posted (it was a fortnite still with two houses and sunlight bounce between them) on the Global Illumination Alternatives thread, where he pointed out the gists of his technique and some users kept telling him how to change his technical approach for the better. He politely answered with technical points that left no doubt about his knowledge and skill, but users still pressed him on and he just stopped posting in that thread for a period of time. That kind of behaviour is toxic in my opinion.

Point is guys, if you turn this thread into a “your algorithm is not useable” thing, the guys at Epic will just laugh it off and keep on going with their stuff.
They kind of did that already, or did anyone miss the post in which they linked the presentation slides as “please re-evaluate TAA because we do think it’s very good”?
Instead, if you offer respect and actually help with smart comments or use cases, Epic guys will answer in one way or another. (@UntamedLoli, even if we’re disagreeing on this matter your post with the three images was a good way to communicate with Epic, and I still consider it as constructive criticism)
Every person needs motivation to do anything, so we can be smart about this or just voice complaints like hell and see nothing done in the end.

And i’m just gonna remark this again, this is all a PERSONAL opinion, so please take it easy and don’t feel offended :slight_smile:

So, on with suggestions about AA again, i personally don’t find CMAA that exciting (it’s gonna kill temporal coherency when implemented in UE), but TAA with a lot less ghosting would turn me into a very happy man.