¡Esta es una revisión vieja del documento!
Gráficos con OpenGL y GLSL
Conceptos
Graphics pipeline
Se refiere a los pasos que sigue la tarjeta gráfica para dibujar por pantalla.
En sí es la manipulación de los vértices y los modelos que acaban siendo una porción del framebuffer, este concretamente corresponde a lo que se acaba mostrando por pantalla.
Operaciones Per-Vertex: los vértices son almacenados por OpenGL mediante la proyección de las matrices modelo-vista y convertidos a coordenadas de ventana. También es justo en esta en la que los shaders son calculados (controlados por GLSL), se colocan pues las luces, los reflejos y propiedades de superficies.
Clipping y culling: Se calcula el clipping (porción de las primitivas que va a dibujarse) y qué caras son marcadas por culling (selección de caras que se han de ver) se han de preparar para la rasterización.
Transformaciones de proyección de de vista: se aplica la transformación por perspectiva, los objetos que están lejos de la cámara se hacen más pequeños.
Rasterización: Los vértices que forman las primitivas se unen y se rasterizan (se rellenan). Esta fase es compleja y contiene el conjunto de sub-pasos denominado pixel pipeline.
Operaciones per-fragment: Esta fase también puede ser manipulada por GLSL, esta vez utilizando los fragment-shaders. Aquí se calculan los colores finales de los pixels en la pantalla.
Framebuffer: En esta última fase los píxels ya forman parte de la porción de memoria llamada framebuffer. Por defecto este es pasado a pantalla cuando hay un intercambio (swap) de buffers. OpenGL permite varios objetos framebuffer (FBO) para crear una animación más fluida. A la vez, esto FBO también pueden ser aplicados como texturas o primitivas.
Matrices de OpenGL
Shaders
GLSL