Taller de Computación Gráfica Capítulo I.- Introducción I.1.- Aplicaciones de la CG Las aplicaciones de la computación gráfica son muy diversas, abarca áreas muy técnicas como lo es la visualización científica o ingenieril y se aplica a áreas menos tradicionales como el arte y la fotografía. Veamos algunas aplicaciones y expresiones de éstas a continuación: GUIs Graficación Im p a c to S o c ia l d e P o lític a s E c o n ó m ic a s % e s ta b ilid a d 5 R e n ta s N ro .h ijo s 4 3 2 1 0 N ro .h ijo s A B Profesor : Javier Vidal Valenzuela C1 C2 % e s ta b ilid a d C3 D E Taller de Computación Gráfica Visualización Cartografía Profesor : Javier Vidal Valenzuela Taller de Computación Gráfica Medicina CAD Profesor : Javier Vidal Valenzuela Taller de Computación Gráfica Multimedios Entretenimiento Arte I.2.- Clasificación de Aplicaciones 2D y 3D (líneas vs mallas, grises y colores vs idem + sombras + luces + otros efectos) Tipos de interacción Se refiere al grado de control de los usuarios, por tanto se tiene: Off line : Como al escanear Interactividad : Cambiando parámetros y redibujando Profesor : Javier Vidal Valenzuela Taller de Computación Gráfica Tiempo real : Como en visualización o simulación Objetivos del producto Se refiere a si el producto obtenido es objetivo de la aplicación de técnicas de CG o es sólo un producto intermedio. Aquí se puede diferenciar: ♦ Producto final, como en cartografía, bosquejos, animaciones, arte, etc. ♦ Producto intermedio Relación lógico temporal entre objetos y sus imágenes ♦Sólo una imagen a la vez ♦Una secuencia de imágenes variable en el tiempo ♦Conjuntos de objetos relacionados I.3.- Tecnologías de salida Los dispositivos de despliegue desarrollados a mediados de los 60s y de uso común hasta mediados de los 80s son denominados vectoriales. En este contexto el término vector es usado como sinónimo de línea o trazo, de hecho las líneas curvas son aproximadas con un conjunto de trazos, es más, los mismos caracteres son aproximados con pequeños de estos trazos. Un sistema vectorial consiste de un procesador de despliegue conectado como un periférico de E/S a la UCP, conectado también al buffer de memoria de despliegue y a un monitor CRT (Cathode Ray Tube). El buffer almacena el despliegue producido por el computador, este contiene comandos para el trazado de líneas y puntos, usando coordenadas (x, y) o (x, y, z) y además comandos para el trazado de caracteres. Profesor : Javier Vidal Valenzuela Taller de Computación Gráfica Los comandos para trazar puntos, líneas y caracteres son interpretados por el procesador de despliegue, éste envía coordenadas digitales y puntos a un generador de vectores que convierte el valor de las coordenadas digitales a voltajes análogos, los que van al circuito de deflexión del rayo de electrones (*** ver si va figura explicativa***). La esencia de un sistema vectorial es que el rayo de electrones es deflectado desde un extremo al otro de acuerdo a las órdenes dictadas por los comandos de despliegue. Esta técnica se denomina rastreo aleatorio (random scan). Como el brillo del fósforo de los monitores CRT decae, de debe restaurar la intensidad de la imagen proyectada refrescando el despliegue unas 30 veces por segundo (30 HZs), para ello el procesador de despliegue repasa las órdenes almacenadas en el buffer de despliegue. A mediados de los 70s se desarrollaron los gráficos de barrido, esto consiste en el almacenamiento de los píxeles comoponentes de las imágenes en una memoria de refrescamiento. La imagen completa en una pantalla de barrido se forma a partir de una trama, la cual consiste en un conjunto de líneas de rastreo horizontales, cada una correspondiente a una fila de pixeles de la pantalla, así una imagen en el buffer de refresco es una matriz de bits 1 cuyo tamaño en filas es igual al número de filas de pixeles del monitor y cuyo número de columnas corresponden al número de columnas de pixeles de la pantalla. 1 El número de bits por cada elemento de esta matriz depende del número de colores que pueden ser desplegados, en el caso más simple de un monitor en blanco y negro sólo se requiere un bit de representación, sin embargo, actualmente existe la posibilidad de almacenar 24 bits ó más por cada pixel desplegado. Profesor : Javier Vidal Valenzuela Taller de Computación Gráfica Los sistemas de barrido tienen menor costo que los sistemas vectoriales, fundamentalmente por que el tamaño de la memoria requerida para el despliegue en el primer caso es fija y depende sólo de la resolución del despliegue, en cambio en los sistemas vectoriales el tamaño de la memoria depende del número de objetos desplegados y de su complejidad. Por otro lado, los sistemas de barrido permiten la representación de figuras que tienen colores de relleno sólidos y bien usan patrones de relleno, lo cual es fundamental para el trabajo con imágenes fotorealistas. Profesor : Javier Vidal Valenzuela Taller de Computación Gráfica I.4.- Marco conceptual para la graficación interactiva En la especificación de este marco conceptual nos referiremos fundamentalmente al software, distinguiremos 3 componentes: El modelo de aplicación que permite la representación de los datos u objetos que son dibujados sobre la pantalla, esto es, por ejemplo los distintos formatos para almacenar imágenes dibujadas o digitalizadas, el modo de almacenar los datos de un gráfico realizado con una planilla electrónica o un plano arquitectónico realizado con una herramienta CAD, etc.). El programa de aplicación permite crear, almacenar y recuperar los datos desde el modelo de aplicación, también recibe las entradas de la interacción del usuario y genera vistas de los datos, las cuales son enviadas al sistema gráfico a través de una serie de comandos que describen la geometría del objeto a desplegar y de la forma en que debe ser desplegado. El sistema gráfico es el responsable de producir la salida gráfica, siendo intermediario entre el programa de aplicación y el hardware de despliegue produce la transformación de salida desde los objetos en el modelo de la aplicación a la vista del modelo. También se encarga de transformar las entradas o acciones del usuario a entradas del programa Profesor : Javier Vidal Valenzuela Taller de Computación Gráfica de aplicación, las que causarán transformaciones en el modelo o simplemente en el despliegue. I.1.1.- Modelo de aplicación Captura todos los datos, objetos y relaciones entre estos, los que son necesarios para interactuar desde el programa de aplicación o desde cualquier modelo no gráfico de postprocesamiento (por ejemplo, simulación de un modelo de crecimiento de población, de clima, etc.). Un modelo de aplicación puede ser tan rudimentario como un arreglo de puntos o tan complejo como listas enlazadas que representan una red de estructuras de datos o relaciones en un sistema de bases de datos, etc. Los modelos típicamente almacenan descripciones de primitivas (puntos, líneas, polígonos, bi o tridimensionales, polihedros y superficies en 3D) que definen la forma de los componentes del objeto. También almacenan atributos de los objetos (estilos de líneas, color, textura de superficies) y relaciones de conectividad y datos de posicionamiento que indican como los objetos se unen entre sí. Modelo de la aplicación = datos de geometría + datos no geométricos. I.4.1.- Descripción de lo visto por el sistema gráfico El programa de aplicación crea el modelo de la aplicación, como resultado de cálculos, por ejemplo, realizados por un supercomputador durante una simulación científica o en ingeniería, o bien como parte de una sesión interactiva con dispositivos de E/S (en este caso, el usuario selecciona paso a paso datos geométricos y no geométricos de los componentes). Profesor : Javier Vidal Valenzuela Taller de Computación Gráfica Los modelos son específicos a las aplicaciones y son creados independientemente de cualquier sistema particular de despliegue. Por lo tanto, el programa de aplicación debe convertir una descripción de la parte del modelo que será vista, desde su representación interna de la geometría a llamadas a procedimientos o comandos del sistema gráfico usados para crear una imagen. Este proceso de conversión tiene 2 faces: 1. El programa de aplicación recorre la base de datos de la aplicación que almacena el modelo y usando algún criterio de selección y de consulta extraerá la parte que será vista. 2. La geometría extraída es puesta en formato que pueda ser enviado al sistema gráfico. Los datos extraídos desde la base de datos pueden ser da naturaleza geométrica o deben ser convertidos a datos geométricos. Generalmente, los datos geométricos extraídos o calculados a partir del modelo coinciden con las primitivas usadas por el sistema gráfico. I.4.2.- Manejo de la interacción El programa de aplicación típicamente administra la interacción como un sistema dirigido por eventos, el cual es caracterizado por el siguiente algoritmo: generar pantalla inicial do { seleccionar mandato (selección de objeto) wait selección del usuario switch { procesar la selección actualizar el modelo actualizar la pantalla } } while (!salir); Profesor : Javier Vidal Valenzuela