LineSmoothing vs. Antialiasing with Radeon cards

Can you also post a screenshot of your OpenGL settings page from Rhino? Thanks

Here it is:

c.

Thanks; I wanted to make sure the GL version numbers are above 4.0 which is what I currently use to draw wires with the new technique.

@clement the latest WIP has a new version of the “TestLineSmoothing” command that you may want to try. The algorithm is completely different than the older version of TestLineSmoothing, but it may give you improved quality for your set up.

Note that I accidentally didn’t expose an option in the “non-dashed” version of the command. If you run
-TestLineSmoothing
then you will also have an option to adjust an alpha blurring falloff value.

@stevebaer, thanks for adding it again. It works wonders and i guess others should enable it by default. Small comparison, without LineSmoothing it looks like this:

after enabling it, without changing the alpha blurring falloff value, it looks much better:

thanks !

c.

Great. The hard thing is in figuring out when this feature needs to be turned on. Many cards display great without the feature on and there is definitely a performance hit with this feature turned on.

Probably best to just make this another display option.

I´m wondering if it cures with using a more recent driver.

c.

Would it be achievable to render various bitmaps using various settings and then inspect them through code to see which one best resembles some predefined ideal? You could probably burn through several hundred of shader configurations in a matter of seconds.

I thought of that too. It would be nice to auto-detect with some kind of a view capture / inspect set up for setting the default. Either way, I would probably be best to make this an option that I can try to detect a good default for if the setting hasn’t been overridden.

The problem with turning this on for everyone is performance. I have to draw the wires twice which isn’t quite as bad as you think because the all of the extra work is being done on the card. Pseudo-code would be

points = DoLotsOfWorkToDefinePoints()
if smoothingwires then
    SendInfoToDriverWithTechnique1(points)
    SendInfoToDriverWithTechnique2(points)
else
    SendInfoToDriverWithTechnique3(points)
endif