Multi-sampling and CSAA

Started by
6 comments, last by Zipster 16 years, 10 months ago
Right now I have a D3D9 application that only uses non-maskable anti-aliasing. The user can select between no anti-aliasing and any number of the quality levels available. The problem is that I'd like to add CSAA for GeForce 8 users and make it as transparent as possible, i.e. if they select 8x or 16x multi-sampling it automatically replaces it with CSAA. However in order to make it transparent, I need to be able to correlate non-maskable quality levels with the number of samples so I can replace it for 8x and 16x. As far as I know, non-maskable quality levels abstract away the number of samples and so I don't have access to this information. Is there any way around this, or should I switch to all maskable multi-sampling? Would there be any performance hit in doing so?
Advertisement
The non maskable mode are internally mapped to the maskable anyway. Therefore you can always use the maskable.
Thanks for the info! But that begs the question, if the non-maskable modes are always mapped to the maskable ones, then why ever use the non-maskable ones? Does it simply tell the hardware not to perform the masking?
AA masking is a render state that can be used for some interesting tricks like motion blur or order independent transparency. As you need to know the number of samples to use it right it works only together with the mask able modes.

I haven’t designed the Direct3D 9 API but IMHO the nonmaskable modes were included to allow the usage of a simple slider control to select the AA mode. But player who tweak the AA setting by their own seems to like to know how many samples are used.

Finally the non maskable AA selecting is removed in Direct3D 10.
One last question :)

My graphics card (GeForce 7950) is reporting that there are 4 non-maskable quality levels, however I only have 2x and 4x maskable multi-sampling. Does that mean that each one of those sample types has two quality levels (2x/2xQ and 4x/4xQ) and that the non-maskable quality levels automatically map to one of those? The problem is that I'm trying to switch over to all maskable multi-sampling, but since 2x and 4x only have one quality level I'm not sure how I can gain access to these extra quality levels that the non-maskable multi-sampling is reporting.
The non maskable quality list will normally cover all the antialiasing modes the card supports, usually in order from quickest to nicest, including the maskable modes. I'm not sure about CSAA modes, but I'd assume they would be in the list too.

Some older cards don't support maskable antialiasing, but do support non-maskable. And some newer cards support some AA modes which aren't maskable (or at least aren't available in the maskable quality list).

Unfortunately there's no simple way to know which non maskable modes do what, so if you want to allow selection of 2x, 4x, etc. rather than just having a quality slider then you need to use the maskable ones.
Have you looked at this: CSAA (Coverage Sampling Antialiasing)
?? It has a section on implementing CSAA under D3D9 including a mapping of API values to 'friendly' names...

hth
Jack

<hr align="left" width="25%" />
Jack Hoxley <small>[</small><small> Forum FAQ | Revised FAQ | MVP Profile | Developer Journal ]</small>

Quote:Original post by jollyjeffers
Have you looked at this: CSAA (Coverage Sampling Antialiasing)
?? It has a section on implementing CSAA under D3D9 including a mapping of API values to 'friendly' names...

hth
Jack

That's actually the reference I was using, however in order to make CSAA transparent to the user I need to know when they have regular 8x/16x anti-aliasing selected so I can "swap" in CSAA. But if the non-maskable quality levels don't let me know the number of samples, I don't really know when I should be swapping it in.

However if what Adam_42 says is true about newer cards supporting more non-maskable modes, then I can't use maskable modes anyway since the goal is to make these video settings as flexible as possible. I'll just have to have special buttons for CSAA I guess :/

This topic is closed to new replies.

Advertisement