LineSmoothing vs. Antialiasing with Radeon cards

Hi @steve and @jeff,

in V5 i´ve often used the TestToggleLineSmoothing and TestLineSmooting commands as the alternative for Antialiasing. The reason is obvious, Antialiasing using Radeon cards did never work right. Example and comparison images using a circle follow below:

No Antialiasing looks like this:

8x Antialiasing (highest possible value):

LineSmoothing (Multiply 2):

the reason for my post is that in Rhino6 current beta, i cannot use LineSmoothing in the same way as i did in Rhino 5. If i enable it and create Lines, Boxes etc, it stays enabled. But if i draw a circle object for example, it gets switched of.

Will there ever be an improvement for the Antialiasing of Radeon cards so 12x and 24x Supersampling can be used in Rhino ? I`m asking with hope that it will look better than the current 8x Aliasing, which as shown above, is not really nice to look at.

LineSmoothing in comparison worked really great in V5, even on Surfaces & Breps but it is bound to the current display mode and mesh wireframes are not included in the smoothing process.

c.

AHHHH!!!
I’m furious!!!
Why didnt i know about this command!!!???
Its just made my v5 rhino on my radeon equipped laptop a different beast!
Fantastic!

Yes - please keep it for v6!!

thanks
rabbit

I’m pretty sure there will be some kind of line smoothing in V6…not really sure why it’s not working atm. The smoothing simply adds thickness to the lines and then anti-aliases them with the frame buffer. The reason it’s a test command is because it causes some systems to crash hard when turned on… We don’t want any kind of setting in Rhino, that when checked or set, immediately crashes Rhino…

V6 will support all of the AA settings available on your system… So for example 16x and 32x will be possible (on supported systems). Which means if you increase the isocurve, edge, and curve thicknesses in your display mode settings, you should see pretty nice results.

I will try to figure out why the test command is no longer working.

-J

I just tried the command here with the current build of the day, and it seems to be working… So I’m not really sure at the moment why it’s not working on your end.

Rabbit, is it working (or not) for you in V6?

-J

Hi Jeff thanks for looking into this. I never had any problem with LineSmoothing in Rhino5. To reproduce what i see in Rhino Wip, once you have it enabled, please draw a few circles using the _Circle command. On my system, LineSmoothing then gets turned of for some unknown reason.

c.

I ran into the same line-smoothing-turning-off problem in V6 ages ago - I moaned to Steve at the time, but he might have been on vacation… and it is a test command, so I had low expectations…

-Pascal

This sounds more like a problem with the new “auto-detect settings changed save hoo ha ha”… The line smoothing is actually a display mode setting…which also means it’s very display mode dependent… For your description, it sounds like the display mode setting gets turned ON using the test command, but then some auto-magic stuff happens, which ends up turning it back off.

Try this:

Select a view and set it to Wireframe
Turn on Line Smoothing (TestLineSmoothing … )
Go into the display mode settings for Wireframe and change something (it doesn’t matter what)
Click Ok to close out the Settings Dialog.
Close Rhino

That will permanently embed Line Smoothing ON into the Wireframe display mode so that you shouldn’t have to turn it on when you enter Wireframe… Toggling it on and off should still work… but just realize, that if Wireframe mode is ever saved AND Line Smoothing is OFF at the time, then you will have to repeat the steps above to re-embed the ON state…

My thinking is that this will keep that auto-magic stuff from stepping on the line smoothing setting, and therefore should remain ON no matter what (except for the case I mentioned above).

Note: You will have to repeat the steps above for every display mode you want this to work with.

Note2: This is just a temporary workaround until we can figure out why mode settings get stepped on any time something else happens in Rhino.

-J

That sounds like the perfect time to moan to me. I’m sure I was very responsive

Hi Jeff- I fund my note from May -

"In V6 though, try this:

testLineSmoothing Mode=AddThickness, default.

make any curve except a circle (so far) and it all looks good, but make a circle and line smoothing shuts off. "

I’d more or less forgot about this since - and right now I see that it no longer happens here, but apparently it happens for Clement.
Your steps do save the smoothing in the display mode- thanks for that - but it still needs to be turned on at startup to work, so I shove it in my startup commands.

-Pascal

Thanks for the trick, it works here as you described, so i don`t have it in my startup commands and it is enabled after reopening Rhino. I´m on version 6.0.14231.9241

c.

Hi @Jeff, i´ve just noticed one thing which hopefully gets resolved once the wip emerges. If i save LineSmoothing by enabling it, changing something in wireframe display mode, close rhino etc. it is enabled if i reopen rhino. If i then disable LineSmoothing (TestToggleLineSmooting) and draw a few boxes, it is getting enabled automatically.

ps. I´m curious how the AA will work in the future. Is it normal that the maximum i can set it to is 8x with the HD7970 ? In the driver i can see 12x and 24x. Do i have to enable something in CCC to get it done ?

c.

Please don’t spend too much time on trying to get Line Smoothing to stick…the saving of settings seems a bit buggy atm.

As for the AA in V6… You will be able to setup whatever is currently reported as “available”… But keep in mind that just because it can do something doesn’t mean it actually will do it, or that it will do it well. For example: Right now using my local V6 build, I can use 32x AA… but at full screen at high resolutions, that really bogs down the system (and I have 4GB of VRAM)… And if you throw in floating point render buffers, then you can really tax your system.

The bottom line is that you will not be limited to a fixed 8x setting, you will be able to use whatever is available and it will be up to you to decide whether or not the performance hit is worth it… Just please don’t expect that 32x AA full screen frame buffers are going to render at the same speeds as 8x, it just doesn’t work that way.

-J

Hi Jeff- the reason I was using testLineSmoothing at all is that it did so much better a job than just setting AA in the OpenGL settings.

-Pascal

Me too. The only problem i have with it now is that it is starting to enable itself when i have it turned off. But i can turn it off, do some changes to the display mode, exit and it stays of.

With AA, i can only set it to 8x, regardless of what is set in the Catalyst Control Center (CCC).

c.

Are you able to reproduce this? Is this something John needs to look at? What’s the YouTrack link for the bug?

@jeff, @stevebaer

both test commands mentioned in the OP do not work anymore with the current WIP version (6.0.16103.12211, 12.04.2016). Enabling AA does not change anything over here and the display of curves and isocurves looks highly blotted using AMD cards. Is there a reason why the test commands have been removed ? Atm. it is impossible to work this way.

c.

Darn; I was going to write up a post about changes in line drawing with respect to the latest WIP. I intended things to have gotten a lot better, not worse.

What AMD card are you using? @jeff tested with one of his AMD cards and saw big improvements in line drawing. It would be nice to know what card you have so we can see if we can test with that one too.

Thanks Steve,

it is a GigaByte Windforce HD7970 with 3GB. If you cannot repeat it, i could try changing drivers but i am a bit hesitant since everything else works pretty good inlcuding GPU rendering with Cycles. :wink:

c.

Thanks, I don’t think you need to change drivers and would rather try and fix things internally. Jeff has some similar cards and will see if he can reproduce the poor quality lines.

OpenGL wire drawing has been dramatically changed in this WIP in order to improve quality. The things that TestLineSmoothing attempted to change would have absolutely no effect on the way wires are drawn now.

Thanks Steve. I’m looking forward to the next WIP.

c.