Anti-aliased lines in OpenGL

In order to draw smooth (anti-aliased) lines in OpenGL, some things must be taken into account:

  • Blending during rendering must be enabled
  • An specific blending function must be explicitly defined
  • Line smoothing must also be enabled
  • In some cases, the proper hint for line smoothing should be specified

The following code are the OpenGL calls needed to obtain anti-aliased rendering of lines:

1
2
3
4
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glEnable(GL_LINE_SMOOTH);
glHint(GL_LINE_SMOOTH_HINT, GL_NICEST);

In the next image one can see the difference between drawing lines with and without anti-aliasing:

Comparison between non-antialiased lines and antialiased lines