¿Cuáles son los diferentes tipos de bibliotecas OpenGL?

Hay varios tipos de bibliotecas Open Graphics Library® (OpenGL®) que se pueden instalar y usar en sistemas informáticos, y la mayoría de ellas satisfacen las necesidades específicas de los programadores gráficos. El primer tipo incluye las bibliotecas OpenGL® básicas y centrales, que contienen aproximadamente 120 comandos para permitir el acceso al hardware de gráficos, aunque estas bibliotecas OpenGL® se pueden dividir aún más según la plataforma en la que se pretenda operar. Se han creado muchas bibliotecas de utilidades, algunas de las cuales casi siempre son utilizadas por los programadores de OpenGL®, para ayudar a agrupar funciones de muy bajo nivel en llamadas únicas de alto nivel para mayor comodidad y claridad del código. En ocasiones, existen bibliotecas OpenGL® que son desarrolladas por fabricantes específicos de hardware de gráficos para ayudar a mejorar el rendimiento o admitir efectos especiales que el hardware realiza de forma nativa. También hay bibliotecas de muy alto nivel creadas por usuarios que han surgido de proyectos más grandes y se distribuyen para ayudar en el desarrollo rápido de aplicaciones.

Las bibliotecas Core OpenGL® son necesarias para el desarrollo y la implementación de programas que usan OpenGL® para renderizar gráficos. Permiten que los programas utilicen una interfaz de programación abstracta (API) común para llamar a las funciones dentro de la biblioteca OpenGL®, después de lo cual la biblioteca interactuará directamente con los controladores de hardware. Luego, los controladores acceden al hardware directamente, lo que aumenta la velocidad de visualización. Todas las demás bibliotecas de OpenGL® se basan en las bibliotecas principales.

Muchos de los comandos utilizados por las bibliotecas centrales son de nivel bastante bajo, por lo que se han creado varias bibliotecas de utilidades, también llamadas kits de herramientas. Estos agrupan los comandos básicos en rutinas más funcionales que eliminan gran parte de la repetición del uso de OpenGL®. Un ejemplo del uso de una biblioteca de utilidades implica dibujar un círculo, que podría tomar varias líneas de código con solo el núcleo de OpenGL®, pero se puede condensar en una rutina optimizada dentro de una biblioteca de utilidades como OpenGL® Utility Toolkit (GLUT). Ocasionalmente, algunas bibliotecas comparten el mismo nombre, pero están adaptadas para su uso en diferentes sistemas operativos o para diferentes enlaces de idioma, y ​​pueden contener diferentes funcionalidades.

Algunas bibliotecas OpenGL® son producidas por fabricantes de hardware. Se puede acceder a las bibliotecas extendidas a través del mecanismo de extensiones OpenGL® o directamente con las API proporcionadas por los fabricantes. Estos tipos de bibliotecas no siempre tienen un uso generalizado debido a sus estrechas plataformas de destino y porque las extensiones muy populares a menudo se incluyen en las bibliotecas centrales.

También hay bibliotecas OpenGL® creadas por programadores y usuarios que no están asociadas con las bibliotecas centrales ni con ningún hardware. Estas bibliotecas a menudo se publican para que otros programadores que están creando ciertos tipos de aplicaciones científicas, matemáticas o de entretenimiento puedan beneficiarse de tener un marco sobre el cual construir. También hay bibliotecas derivadas de la comunidad que agregan interactividad y lógica de programa a las otras bibliotecas de una manera práctica.