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

OpenGL®, el lenguaje de gráficos abiertos, es un estándar de código abierto y una interfaz de programación abstracta (API) para programar gráficos tridimensionales (3D) en programas de computadora. Para que la API funcione cuando se compila y se ejecuta, la computadora que ejecuta el programa debe tener instalados los controladores OpenGL® correctos. Hay muchos tipos de controladores, pero todos tienen el único propósito de actuar como una interfaz entre el código que se escribe utilizando la API de OpenGL® y el hardware que procesa los gráficos. Las personas que mantienen la API de OpenGL® no desarrollan ni publican los controladores de OpenGL®; en cambio, son lanzados por los fabricantes del hardware dentro de la computadora. La única diferencia, en realidad, entre los diferentes tipos de controladores OpenGL® es el código del hardware con el que se interconecta.

El estándar para OpenGL® eventualmente se convirtió en una plataforma unificada y simple y en una implementación mayoritariamente independiente del lenguaje de funciones gráficas 3D básicas que podrían usarse como una forma de muy bajo nivel para interactuar con hardware. Progresó en esta dirección debido a una cantidad creciente de API 3D patentadas, cada una de las cuales tenía diferentes filosofías de diseño y firmas de funciones. La API fue adoptada por programadores y fabricantes de hardware por igual, porque era de código abierto y no requería la compra de una licencia para su uso de la forma en que lo hacía algún otro sistema operativo o API específicas del lenguaje.

Los controladores básicos de OpenGL® son producidos por los fabricantes de tarjetas gráficas, tarjetas de expansión y aceleradores de gráficos. Esto significa que cada controlador está escrito de acuerdo con especificaciones exactas y precisas para el hardware de destino, y que el hardware se puede fabricar con optimizaciones dirigidas al controlador para aumentar el rendimiento. La aceptación generalizada de la API y la sobrecarga relativamente baja que la acompaña la ha convertido en una opción valiosa para aplicaciones gráficas de alto rendimiento y, a su vez, ha llevado a los fabricantes de hardware a esforzarse por lograr optimizaciones de bajo nivel para complementar ese rendimiento con sus tarjetas. .

En respuesta a los esfuerzos de los fabricantes de hardware, los desarrolladores de OpenGL® proporcionaron un mecanismo que permitiría a los controladores implementar operaciones personalizadas que podrían codificarse en los controladores OpenGL®. Estas características especiales de diferentes piezas de hardware podrían incluirse en la API de OpenGL®. Esto permitiría a un fabricante tener una tarjeta gráfica que admita funciones aceleradas por hardware, como algoritmos de simulación de tejido, y permitiría que la API de OpenGL® llame e interactúe con esa funcionalidad. Estas extensiones proporcionaron un mecanismo a través del cual los controladores OpenGL® y la API podrían convertirse en un mecanismo fluido y extensible para la programación de gráficos 3D.

A partir de 2011, los controladores OpenGL® son individuales para cada pieza de hardware que admita el estándar. No puede haber un controlador único y unificado, porque cada pieza de hardware es claramente diferente y, a veces, utiliza información patentada. Esto significa que, si bien técnicamente hay muchos tipos de controladores OpenGL®, uno para cada tarjeta de hardware, todos realizan exactamente la misma función desde una perspectiva de programación.