Líneas con anti-aliasing en OpenGL

Para dibujar líneas suaves (con anti-aliasing) en OpenGL, se deben tener en cuenta varios detalles:

  • El blending debe estar activo mientras se está pintando
  • Debe haberse definido una función de blending específica
  • El suavizado de líneas debe estar activado
  • En algunos casos, un hint para el pintado de líneas suaves debe haberse definido

Las siguientes lineas de código son las llamadas OpenGL necesarias para obtener lineas suaves:

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);

La siguiente imagen muestra la diferencia entre pintar lineas con y sin anti-aliasing:

Comparison between non-antialiased lines and antialiased lines