Visto que el foro de desarrollo y diseño sólo toca de pasada el gamedev, y que OpenGL se usa mayormente para desarrollar videojuegos, he decidido abrir este hilo para mostrar juegos, animaciones o cualquier cosa hecha con esta librería de 3D.
¿Qué es OpenGL?
OpenGL (Open Graphics Library) es una especificación estándar que define una API multilenguaje y multiplataforma para escribir aplicaciones que produzcan gráficos 2D y 3D. La interfaz consiste en más de 250 funciones diferentes que pueden usarse para dibujar escenas tridimensionales complejas a partir de primitivas geométricas simples, tales como puntos, líneas y triángulos. Fue desarrollada originalmente por Silicon Graphics Inc. (SGI) en 19922 y se usa ampliamente en CAD, realidad virtual, representación científica, visualización de información y simulación de vuelo. También se usa en desarrollo de videojuegos, donde compite con Direct3D en plataformas Microsoft Windows.
¿Cómo funciona OpenGL?
El funcionamiento básico de OpenGL consiste en aceptar primitivas tales como puntos, líneas y polígonos, y convertirlas en píxeles. Este proceso es realizado por una pipeline gráfica conocida como Máquina de estados de OpenGL.
La mayor parte de los comandos de OpenGL bien emiten primitivas a la pipeline gráfica o bien configuran cómo la pipeline procesa dichas primitivas. Hasta la aparición de la versión 2.0 cada etapa de la pipeline ejecutaba una función prefijada, resultando poco configurable. A partir de la versión 2.0 algunas etapas son programables usando un lenguaje de programación llamado GLSL (muy similar a C).
¿Qué lenguajes se usan para desarrollar con OpenGL?
OpenGL está programado con C pero, como se comenta más arriba, sus APIs están disponibles en muchos lenguajes de programación. La mayoría de proyectos actuales se desarrollan con lenguajes orientados a objetos como C++ y Java, especialmente el primero. Hay una infinidad de juegos desarrollados con C++ y OpenGL, y en el caso de Java el ejemplo más famoso es la versión original de Minecraft, que utiliza una API de alto nivel.
Vale, ¿pero dónde empiezo a aprender?
La primera versión de OpenGL tiene casi 25 años. Los tutoriales que se pueden encontrar se dividen en los que enseñan el estilo antiguo y más simple y el estilo moderno y más complejo (pero mucho más potente). Aquí sólo voy a poner tutoriales que cubran versiones modernas (de la 3 en adelante)
Páginas
https://learnopengl.com/
http://www.opengl-tutorial.org/
http://ogldev.atspace.co.uk/
https://open.gl/
Libros
https://www.amazon.es/Antons-OpenGL-4-Tutorials-English-ebook/dp/B00LAMQYF2
https://www.amazon.es/OpenGL-Shading-Language-Cookbook-high-quality-ebook/dp/B07HXYJ9VT/ref=sr_1_1?s=digital-text&ie=UTF8&qid=1544364945&sr=1-1&keywords=shading+cookbook