Anti-Aliasing in Ogre 2.1

Discussion area about developing with Ogre-Next (2.1, 2.2 and beyond)


Post Reply
Smooth
Gnoblar
Posts: 8
Joined: Mon Oct 01, 2018 2:04 pm

Anti-Aliasing in Ogre 2.1

Post by Smooth »

Hi,

After upgrading the graphics engine to Ogre version 2.1 I am having trouble getting anti-aliasing to show. I have to say that im new to the world of graphics programming so this is all a bit confusing to me. I was hoping that you could help me answer some simple questions regarding anti-aliasing in Ogre to help me debug my application.

1. Does Ogre supply anti-aliasing "out of the box" by setting the fsaa value in the render settings higher than 1?
2. What anti-aliasing effect does the fsaa refer to (my guess is MSAA)?
3. At the moment I have no anti-aliasing working in my application, even though I have set up a basic workspace and I am rendering to an Ogre render window (fsaa is set to 8). Is there any common misstakes when dealing with anti-aliasing in Ogre 2.1 that you can think off?
4. Should I be using fsaa at all? Is there other anti-aliasing methods out there more suited for real-time graphics?

Thanks guys.
User avatar
dark_sylinc
OGRE Team Member
OGRE Team Member
Posts: 5296
Joined: Sat Jul 21, 2007 4:55 pm
Location: Buenos Aires, Argentina
x 1278
Contact:

Re: Anti-Aliasing in Ogre 2.1

Post by dark_sylinc »

Hi!

Yes, we do have MSAA support in 2.1. Although Ogre 2.2 (which is currently WIP) is more suited for advanced & efficient MSAA manipulation. Though considering you're asking for simple stuff I guess that's not a current concern for you.
Smooth wrote: Mon Oct 01, 2018 10:35 pm 1. Does Ogre supply anti-aliasing "out of the box" by setting the fsaa value in the render settings higher than 1?
Yes.
If you check the code in GraphicsSystem::initialize it boils down to:

Code: Select all

params.insert( std::make_pair("FSAA", cfgOpts["FSAA"].currentValue) );
Assuming the user set FSAA setting in the Ogre config dialog to values higher than 1. Though you can of course override this value (or skip the config dialog entirely). For example 2x MSAA would be:

Code: Select all

params.insert( std::make_pair("FSAA", "2") );
However in certain cases more than that is needed. For example HDR has special interactions with MSAA in order to work correctly. These are shown in the HDR sample.

A few samples, such as the Screen Space Reflections one, has problems with MSAA.
Smooth wrote: Mon Oct 01, 2018 10:35 pm 2. What anti-aliasing effect does the fsaa refer to (my guess is MSAA)?
Yes, it's MSAA. The odd naming is an old relic from the past, which is being corrected in 2.2 by renaming the option to msaa.
Smooth wrote: Mon Oct 01, 2018 10:35 pm4. Should I be using fsaa at all? Is there other anti-aliasing methods out there more suited for real-time graphics?
Well, MSAA is quite good, but MSAA only affects geometric aliasing (i.e. aliased lines caused by the borders of polygon/triangle borders). There are other sources of aliasing: Texture aliasing, shader aliasing; which MSAA cannot handle.
But of course there are other solutions.
We offer an SMAA sample which uses SMAA algorithm. SMAA is explained in the December 2017 Report. Although SMAA is lower quality than 4xMSAA when it comes to geometric aliasing, it's much more compatible with postprocessing effects and it also affects all sources of aliasing, not just geometric. However it can also make some pics a bit blurrer.

Cheers
Post Reply