Archived issue #0026756
Antialiasing cannot be controlled anymore by graphics driver
Description
Up to OCCT 6.8.0 it was possible to control antialiasing via the graphics Driver. In this way, it was possible to use advanced antialiasing methods like multi-sampling.
In 6.9.0 and 6.9.1 this isn't possible anymore.
Is this intended?
It is still possible to control antialiasing by the application using "vantialiasing".
My graphics driver is:
GLvendor = 'ATI Technologies Inc.'
GLdevice = 'ATI FirePro V5800 (FireGL) Graphics Adapter'
GLversion = '4.5.13399 Compatibility Profile Context FireGL 5.200.1062.1004'
GLSLversion = '4.40'
In 6.9.0 and 6.9.1 this isn't possible anymore.
Is this intended?
It is still possible to control antialiasing by the application using "vantialiasing".
My graphics driver is:
GLvendor = 'ATI Technologies Inc.'
GLdevice = 'ATI FirePro V5800 (FireGL) Graphics Adapter'
GLversion = '4.5.13399 Compatibility Profile Context FireGL 5.200.1062.1004'
GLSLversion = '4.40'
Steps to reproduce
Change Settings in graphics Driver to override application Settings by enabling antialiasing Multi-sampling.
In Draw:
pload ALL
vinit
box b 10 10 10
vdisplay b
vfit
In Draw:
pload ALL
vinit
box b 10 10 10
vdisplay b
vfit
Public activity
6 archived notes
Participants are labeled by their role within this record.
> Up to OCCT 6.8.0 it was possible to control antialiasing via the graphics Driver.
> In this way, it was possible to use advanced antialiasing methods like multi-sampling.
> In 6.9.0 and 6.9.1 this isn't possible anymore.
> Is this intended?
this is limitation of graphic drivers, which can be solved only by supporting MSAA buffers within application (OCCT) itself - see referred issue #0026711.
> In this way, it was possible to use advanced antialiasing methods like multi-sampling.
> In 6.9.0 and 6.9.1 this isn't possible anymore.
> Is this intended?
this is limitation of graphic drivers, which can be solved only by supporting MSAA buffers within application (OCCT) itself - see referred issue #0026711.
Do you mean it is a bug of AMD graphics card driver?
If yes, do you have an idea why it changed from 6.8.0 to 6.9.0?
Does #0026711 implement multi-sampling as a replacement for the outdated antialiasing as it was proposed here (http://dev.opencascade.org/index.php?q=node/901) or is it only a first step in this direction?
If yes, do you have an idea why it changed from 6.8.0 to 6.9.0?
Does #0026711 implement multi-sampling as a replacement for the outdated antialiasing as it was proposed here (http://dev.opencascade.org/index.php?q=node/901) or is it only a first step in this direction?
> Do you mean it is a bug of AMD graphics card driver?
No, it is a driver limitation - you can find many D3D games that has the same issue due to changed rendering workflow.
> If yes, do you have an idea why it changed from 6.8.0 to 6.9.0?
This is due to rendering into FBOs by default.
You can see the difference by disabling FBO rendering optimization (command vimmediatefront):
> Does 0026711 implement multi-sampling as a replacement
> for the outdated antialiasing as it was proposed here
> (http://dev.opencascade.org/index.php?q=node/901 [^])
> or is it only a first step in this direction?
MSAA buffers represent the modern way to solve aliasing issues - effectively they should provide similar result as activating MSAA in driver settings in old applications.
However they are not direct replacement for old options like GL_POLYGON_SMOOTH, though usage of old options is mostly useless nowadays due to implementation issues.
No, it is a driver limitation - you can find many D3D games that has the same issue due to changed rendering workflow.
> If yes, do you have an idea why it changed from 6.8.0 to 6.9.0?
This is due to rendering into FBOs by default.
You can see the difference by disabling FBO rendering optimization (command vimmediatefront):
pload MODELING VISUALIZATION box b 1 2 3 vclear vclose ALL vinit View1 vaxo vdisplay b vfit # here is MSAA settings in NVIDIA/AMD/Intel driver panel have almost zero effect vimmediatefront 0 vrepaint # here is result
> Does 0026711 implement multi-sampling as a replacement
> for the outdated antialiasing as it was proposed here
> (http://dev.opencascade.org/index.php?q=node/901 [^])
> or is it only a first step in this direction?
MSAA buffers represent the modern way to solve aliasing issues - effectively they should provide similar result as activating MSAA in driver settings in old applications.
However they are not direct replacement for old options like GL_POLYGON_SMOOTH, though usage of old options is mostly useless nowadays due to implementation issues.
Thanks for the explanation.
So, if I understand it correctly, V3d_View.SetAntialiasingOn() will activate MSAA in OCC 7.0 if FBO are used.
So, if I understand it correctly, V3d_View.SetAntialiasingOn() will activate MSAA in OCC 7.0 if FBO are used.
> So, if I understand it correctly, V3d_View.SetAntialiasingOn() will activate MSAA in OCC 7.0 if FBO are used.
No MSAA requires new API to be activated. In particular, the number of samples should be specified via Graphic3d_RenderingParams::NbMsaaSamples which defines the quality / performance cost of multisampling (0 - no AA, 2 - mostly useless, 4 - is something, 8 - usually the highest quality provided by drivers).
It is not yet decided what to do with old API V3d_View::SetAntialiasingOn(), maybe it can be redirected to new API with predefined number of samples for compatibility with old applications... but I doubt that anyone has actually used this function call due to weird results.
No MSAA requires new API to be activated. In particular, the number of samples should be specified via Graphic3d_RenderingParams::NbMsaaSamples which defines the quality / performance cost of multisampling (0 - no AA, 2 - mostly useless, 4 - is something, 8 - usually the highest quality provided by drivers).
It is not yet decided what to do with old API V3d_View::SetAntialiasingOn(), maybe it can be redirected to new API with predefined number of samples for compatibility with old applications... but I doubt that anyone has actually used this function call due to weird results.
Related records