DiscussionsIssue archiveOCCT:Visualization

Archived issue #0026756

Antialiasing cannot be controlled anymore by graphics driver

CommunityOCCT:Visualizationclosed6 public notes

Search issues

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'

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

Public activity

6 archived notes

Participants are labeled by their role within this record.

01Commenter 2
> 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.

02Author
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?
03Commenter 2
> 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):
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.

04Author
Thanks for the explanation.
So, if I understand it correctly, V3d_View.SetAntialiasingOn() will activate MSAA in OCC 7.0 if FBO are used.
05Commenter 2
> 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.

06Commenter 2
Dear Commenter 1,

please close this issue as duplicate of #0026711.

Related records