Examen Graf
Examen Graf
Examen Graf
OpenGL 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. 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.
Explique brevemente las primitivas de OpenGL y elabore un programa con ejemplos de cada una
de ellas.
1. Puntos – glBegin(GL_POINTS);
Se dibuja un punto en las coordenadas especificadas y con el color actual por cada llamado a
glVertex
Con esta primitiva es posible dibujar líneas separadas. Cada para de vértices especificados se
dibuja una línea y si se especifica un numero impar de vértices, el último es ignorado.
Permite dibujar un conjunto de líneas conectadas, donde los dos primeros vértices forman una
línea y cada vértice adicional genera una línea que une dicho a vértice con último suministrado
antes de este.
Similar a LINE_STRIPS, con la diferencia de que la último vértice en ser suministrado se une con el
primero para formar una última línea.
5. Triángulos independientes glBegin(GL_TRIANGLES);
Simple, cada tres vértices se genera un nuevo triangulo con la cara frontal determinada por el
orden que este activo, bien sea CCW o CW. Evidentemente la cantidad de vértices debe ser 0 o
múltiplo de tres, los últimos vértices que no correspondan a ninguna tripleta son despreciados.
Similar a LINE_STRIPS, los primeros tres vértices generan un triangulo y luego cada vértice
adicional genera otro que comparte un lado del triangulo anterior, es decir si se suministran los
vértices a,b,c,d,e se formarán los triángulos abc , cbd y cde. La razón por la que se invierte el orden
de los vértices en algunos triángulos, cbd por ejemplo, es para preservar el winding de la primitiva.
Esta primitiva genera un conjunto de triángulos alrededor de un punto común, al igual que
TRIANGLE_STRIPS, estos están conectados por un lado. En este caso el proporcionar los vértices
a,b,c,d,e generarán los triángulos abc, acd y ade.
Los primeros cuatro vértices generan un rectángulo, luego cada par adicional de vértices genera
un nuevo rectángulo conectado con los dos últimos vértices especificados en el anterior. Esta
primitiva es bastante particular, ya que los bordes deben ser suministrados de manera alternada
con el fin de preservar el winding, esto se ve mas claramente en el ejemplo y el gráfico.
Ejemplo primitivas:
glClear( GL_COLOR_BUFFER_BIT );
bibliografía
https://lsi.ugr.es/fjmelero/ig/opengl1.pdf