Yeah, definitely. So anti-aliasing is one of those image quality things that is a graphics programmer's nightmare because there's so many different versions of it. A lot of people have developed different algorithms for it. Within Lumberyard or even legacy CryEngine, there was 10 different anti-aliasing modes. And in most cases, most games just pick one or two. But there's so many differences. Some anti-aliasing modes like SMAA, which is the morphological anti-aliasing. TSAA is another one. FXAA is another one. To kind of explain the differences between them: some of these are temporal, meaning it takes an amalgamation of frames before, so sometimes just one frame before or two frames before. But when you're running at a low frame rate, you end up getting a lot of ghosting, right? So a lot of people will blame that on motion blur, but sometimes that's actually coming from anti-aliasing.
So anyways, for Star Citizen, we actually keep this pretty low. We don't crank up the anti-aliasing by default. One is that the performance cost is pretty huge. And really, the future of anti-aliasing, and I've always thought this, is supersampling, which is you render behind the scenes at much, much higher res, and then you mix it down for whatever your screen is. I'm no graphics programmer, though, so Ali Brown might hear this and just freak out and be like, what is Sean saying? We can't actually render up at 4K and then bring that back down in real time. But I have seen it before, so that could be a nice feature.
To go a little more deep into it: once the shader development is done, that's when you kind of come in behind and deal with all your anti-aliasing. We used to have one within the CryEngine that was MSAA, and this was one that was developed in Frankfurt by a gentleman named Tiago Sousa, who worked a lot with NVIDIA directly. But the problem with that is that every time you're updating your shaders or every time you implement a new one, you've actually got to deal with MSAA on each of them. Again, it's kind of one of those polish things that we put a little closer to the end, when we're not rewriting or adding a whole ton more shaders.
But we want to give a lot of anti-aliasing modes, because that's the other part of it: every player is a little bit different. Some players really like that the diagonals are all really nice, but they're okay with no shader anti-aliasing, for example. So you get this mode. But if you want shader anti-aliasing and you're not so stressed out about the diagonals, then you're fine. You use a different mode. So it's a deep question and it becomes highly subjective.