OpenGL maneja polígonos correctamente siempre y cuando sean simples y convexos. Si ese no es el caso, OpenGL dibuja cosas raras.
Además en algunas ocasiónes se quiere especificar el vector normal del plano en el cual se encuentra el polígono. Dicho vector normal se necesita p.e. para algoritmos de visualización avanzada (``Phong shading'').
Cuando se escriben aplicaciones gráficas nos enfrentamos con el problema siguiente: desde alguna fuente ``vienen'' listas de puntos (o bién de otro programa, o bién de un fichero, o bién de modo interactivo) y hay que interpretar las listas como polígonos, es decir, hay que verificar si las listas cumplen la definición de especificar polígonos simples y convexos. Si ese no es el caso, a lo mejor se pueden ``corregir'' las listas. (Programas con tal propriedades se llama robustos y tolerantes.)
Entonces (en el caso de mera visualización con OpenGL):
Antes de dedicarnos a los detalles, dibujamos polígonos con OpenGL asumiendo que la lista de puntos cumple la definición.
Siempre que se quiera dibujar un objeto de OpenGL (en este caso unos polígonos, antes vimos puntos y segmentos), hay que decírselo de antemano con la función
La lista de puntos se define con consecutivas llamadas a
y se termina el trabajo con
En lugar de dibujar polígonos rellenados, OpenGL puede dibujar, o bién solo las esquinas o bién solo los segmentos del borde. Eso se realiza con la función
a la cual hay que pasar también cuál de las dos posibles caras del polígono se quiere pintar.
Además se pueden llenar los polígonos con patrones que no detallamos por el momento.