viernes, octubre 27, 2006

Capítulo 1: Introducción a OpenGL

¿Que es OpenGL?
• Es una API gráfica para realizar aplicaciones tridimensionales.
• Se basa en el modelo Cliente-Servidor. • Posee alrededor 150 comandos.
• Es independiente de la plataforma.
• El estándar OpenGL incluye GLU (OpenGL Library Utility).
• GLU dispone: características de modelamiento, superficies quadric, curvas NURBS, etc.

Pasos en el Rendering de una Escena a Pantalla
1. Construir primitivas geométricas (dada como descripción matemática: puntos, líneas, polígonos, imágenes y mapas de bits).
2. Ubicar los objetos en el espacio 3D y definir el punto de vista.
3. Calcular los colores de todos los objetos.
4. Convertir la información matemática y de color de objetos a píxeles en la pantalla (rasterization).
Sintaxis de Comandos
• Comandos: glVertex3f ( )
• Constantes: GL_COLOR_BUFFER_BIT
La Máquina de Estado OpenGL
• OpenGL mantiene variables de estado.
• Ejemplos: colores, patrones de líneas y polígonos, modos de dibujado, transformaciones, posición y características de luces, etc.
• Muchas variables se habilitan o deshabilitan usando:
– glEnable() – glDisable()
• Listas de Despliegue
– Todos los datos, geometría o píxeles, pueden ser almacenados en la lista de despliegue para su posterior uso.
– Puede mejorar el desempeño.
• Evaluadores
– Proveen un método para obtener los vértices que representan superficies inicialmente dadas como funciones polinomiales y puntos de control.
– Es un mapping polinomial.
• Operaciones Por Vértice
– Los datos de vértices son convertidos en primitivas.
– Coordenadas de vértices son trasformados y proyectados desde el una posición en el mundo 3D a la pantalla.
• Ensamble de Primitivas
– Se elimina porciones de geometría que está fuera del área de visión (clipping).
– El proceso de clipping implica eliminar y agregar vértices.
– El proceso entrega primitivas completas con color, profundidad, coordenadas de texturas, etc. • Operaciones sobre Píxeles
– Los píxeles son leídos de un arreglo en memoria, son procesados y enviados a memoria de textura o enviado al paso de rasterización.
• Ensamble de Texturas
– Las texturas pueden ser colocadas en objetos de texturas para utilizarse fácilmente.
• Rasterización
– Toma los datos de píxeles, vértices y los convierte en fragmentos.
• Operaciones sobre Fragmentos – Antes que los fragmentos sean puestos en el framebuffer pasan por una serie de operaciones y test.