Tema 1 - Computación Gráfica FI

Anuncio
Objetivo:
Proporcionar al alumno el contexto dentro del cual se desarrolla la
actividad del Cómputo Gráfico, abarcando aspectos históricos y
tecnológicos, para así comprender la importancia de éste y áreas de
desarrollo.
Breve introducción histórica
En sus inicios las computadoras se utilizaban principalmente en aplicaciones
científicas. La ENIAC, una de las primeras computadoras, calculaba densidades
de neutrón transversales para ver si explotaría la bomba de hidrógeno. Los
resultados se reportaban por medio de dispositivos de impresión sencillos que
producían secuencias de caracteres alfanuméricos que los usuarios debían
examinar. El siguiente paso en la evolución de las computadoras fue la creación
de dispositivos de visualización que permitían al usuario de una computadora
observar los resultados del procesamiento en el dispositivo. La primera
computadora que utilizó un CRT (Tubo de Rayos Catódicos) como dispositivo de
visualización fue Whirlwind, construida en el MIT (Instituto Tecnológico de
Massachussets) en 1950 para simular vuelos de entrenamiento de los
escuadrones de bombarderos de la marina de Estados Unidos.
Figura 1: La
computadora
Whirlwind
desarrollada
en el MIT.
Durante la década de los 50 también continuó el desarrollo de los dispositivos de
entrada. El sistema para la defensa espacial SAGE, desarrollado para convertir los
sonidos de detección de un radar en imágenes, fue el primero en emplear un lápiz
óptico para seleccionar símbolos en la pantalla.
4
El primer videojuego de la historia fue creado en 1952, con el nombre de OXO.
Fue producto de la tesis doctoral de Alexander Sandy Douglas en la Universidad
de Cambridge para demostrar la interactividad entre computadoras y seres
humanos. El juego era una versión del conocido “tres en raya” y fue escrito para la
computadora EDSAC.
Figura 2: La
computadora
EDSAC.
El programa podía tomar sus decisiones en función de los movimientos del
jugador, que transmitía las órdenes por medio de un dial telefónico integrado en el
sistema.
La enorme computadora EDSAC en la que se corría el juego fue la primera
computadora electrónica capaz de almacenar programas. El juego aunque tenía
un nivel de interacción solo permitía un jugador.
Figura 3: La pantalla de OXO.
5
En 1961 un estudiante del MIT, Steve Russell dirigió un equipo que creó el primer
videojuego interactivo de naves espaciales. Le tomó al equipo cerca de 200 horashombre escribir la primera versión de Spacewar. El juego se escribió en una PDP1 que fue una donación de DEC al MIT esperando que en el MIT se pudiera hacer
algo trascendente con su producto.
El modo de juego de Spacewar! Involucra dos naves espaciales armadas llamadas
“la aguja” y “la cuña” intentando disparar a la otra mientras se maniobra en el flujo
gravitacional de una estrella. Cada nave tiene un número limitado de misiles y
combustible. Cada jugador controla una de las naves y debe intentar
simultáneamente disparar a la otra nave y evitar chocar con la estrella. Los
movimientos de las naves inicialmente se controlaban por medio de interruptores
de prueba en el panel frontal del equipo, con cuatro interruptores para cada
jugador.
Figura 4 a)
Escena de Spacewar!
Figura 4 b)
DEC PDP-1
6
Fue en 1963 cuando se creo el primer sistema que permitía la manipulación
directa de objetos gráficos y fue el precursor de los sistemas modernos de gráficos
por computadora y los programas de diseño asistido por computadora (CAD). El
sistema, creado para aplicaciones de diseño e ingeniería fue desarrollado por Ivan
Sutherland como trabajo de tesis doctoral en el MIT. El sistema permitía a los
usuarios dibujar puntos, segmentos de líneas rectas y arcos circulares
directamente sobre la pantalla mediante un lápiz óptico.
Figura 5: El Sketchpad permitía dibujar objetos con un lápiz óptico mediante una indicación en la
pantalla.
El sistema de Sutherland, llamado Sketchpad se basaba en la “interfaz” del TX-2,
una de las primeras computadoras que por medio de una especie de lápiz de luz y
una serie de interruptores permitía introducir formas a la computadora.
El Sketchpad inventado por Ivan Sutherland fue el primer sistema interactivo
de gráficos por computadora utilizado para aplicaciones de diseño e ingeniería.
En 1966 Sutherland, ejerciendo como profesor en Harvard, junto con Bob Sproull
fue el primero en implementar un sistema de realidad virtual, a través del cual, con
la ayuda de un casco, los usuarios podían ingresar virtualmente en una habitación
y mirar en todas direcciones una vez adentro.
Los inventos de Ivan Sutherland contribuyeron al desarrollo de las interfaces
gráficas de usuario que actualmente son una parte indispensable en cualquier
sistema de cómputo.
Muchas de las ideas demostradas por primera vez en el Sketchpad ahora son
parte de entornos de computadoras usadas por millones en aplicaciones de
investigación científica, negocios y recreación. Estas ideas incluyen:
7
•
•
•
•
•
•
•
•
El concepto de estructura jerárquica interna de una imagen
representada por computadora y la definición de esa imagen en
términos de sub-imágenes.
El concepto de imagen maestra e instancias de imagen las cuales son
versiones transformadas de la imagen maestra.
El concepto de restricción como un método para especificar detalles de
la geometría de una imagen.
La habilidad para desplegar y manipular representaciones icónicas de
las restricciones.
La habilidad de copiar así como crear instancias tanto de imágenes
como restricciones.
Algunas técnicas elegantes para la construcción de imágenes usando
un lápiz luminoso.
La separación del sistema de coordenadas en el cual una imagen es
definida a partir de lo que es desplegado; y
Operaciones recursivas tales como “mover” y “borrar” aplicadas a las
imágenes definidas jerárquicamente.
En el ámbito del hardware, los CRT utilizados hasta entonces podían trazar líneas
rectas entre dos puntos en la pantalla, pero ya que las líneas dibujadas se
desvanecían en la pantalla, era necesario redibujarlas varias veces por segundo,
lo que solo era posible por medio de dispositivos muy costosos de hardware.
Estos dispositivos se denominaban pantallas de vector, de trazo o caligráficas. El
primer dispositivo de este tipo fue introducido al mercado por IBM en 1965.
En 1968 Tektronix introdujo un CRT con tubo de almacenamiento que permitía
retener permanentemente un dibujo hasta que el usuario decidiera borrarlo. Este
sistema eliminó la necesidad de utilizar costosos sistemas especiales de hardware
y memoria para redibujado. Aunque su precio era más accesible no dejaba de ser
elevado. Sus modelos 601 y 611 fueron los primeros en su línea de productos
diseñados especialmente para gráficos por computadora. El primer modelo
comercial de Tektronix fue el 4002A con un precio aproximado de 9000 dólares.
Figura 6: Monitor con
tubo de almacenamiento
de despliegue directo
Tektronix 4002A
8
En 1970 un estudiante de nombre Edwin Catmull iniciaba sus estudios en la
Universidad de Utah, inscribiéndose a la clase de gráficos por computadora de
Sutherland. Habiendo crecido con los dibujos animados de Disney, Catmull amaba
la animación aunque rápidamente descubrió que no tenía talento para dibujar.
Pero Catmull, al igual que otros, vio las computadoras como la evolución natural
de la animación y quería ser parte de esa revolución. La primera animación por
computadora que Catmull vio fue de si mismo. El creó una animación de su mano
abriéndose y cerrándose. Se volvió uno de sus objetivos crear una película entera
usando gráficos por computadora. En la misma clase Fred Parke creó una
animación del rostro de su esposa.
Figura 7: Rostro digital
creado por Fred Parke
Con la presencia de Sutherland que fue reclutado por Dave Evans para el
programa de ciencia computacional en la Universidad de Utah, esta comenzó a
ganar reputación como lugar para la investigación de gráficos computacionales, de
modo que Catmull acudió ahí para aprender sobre gráficos 3D.
De ese modo el laboratorio de gráficos por computadora de la Universidad de Utah
atrajo gente de todas partes, John Warnock fue uno de esos pioneros; mas tarde
fundaría Adobe Systems y crearía una revolución en el mundo de la publicación
con su lenguaje de descripción de páginas PostScript. Tom Stockham dirigió el
grupo de procesamiento de imagen en Utah que trabajó estrechamente con el
laboratorio de gráficos por computadora. Jim Clark también estuvo ahí; después
fundaría Silicon Graphics Inc.
El mayor de los primeros avances en gráficos por computadora tridimensionales
fue creado por esos pioneros, el algoritmo de superficie oculta. Para dibujar la
representación tridimensional de un objeto en la pantalla, la computadora debe
determinar cuales superficies están “detrás” del objeto desde la perspectiva del
observador, y de ese modo serían “escondidas” cuando la computadora crea (o
renderiza) la imagen.
9
A partir de 1970 se comenzaron a introducir los gráficos por computadora en el
mundo de la televisión. Computer Image Corporation (CIC) desarrollo sistemas
complejos de hardware y software como ANIMAC, SCANIMATE y CAESAR.
Todos esos sistemas funcionaban escaneando una imagen existente, para
después manipularla, aplastándola, estirándola, girándola y haciéndola volar por la
pantalla, etc.… Bell Telephone y CBS Sports fueron unos de los muchos que
empezaron a usar los nuevos gráficos por computadora.
Figura 8: Sistema SCANIMATE
para procesamiento por
computadora de imágenes
para TV.
Figura 9: Primeros sistemas para
la generación de personajes
animados por computadora.
10
Uno de los mas importantes avances para los gráficos por computadora apareció
en escena en 1971, el microprocesador. Usando tecnología de circuitos integrados
desarrollada en 1959, la electrónica de un procesador de computadora fue
reducida a un único chip, el microprocesador a veces llamado CPU (Unidad
Central de Procesamiento). Una de las primeras microcomputadoras de escritorio
diseñada para uso personal fue la Altair 8800 de Micro Instrumentation Telemetry
Systems (MITS). Se entregaba por correo en forma de kit para armar, la Altair
(nombrada como un planeta en la popular serie Star Trek) se vendía alrededor de
los 400 dólares. Tiempo después las computadoras personales avanzarían hasta
punto de permitir la creación de gráficas computacionales con calidad de película.
Figura 10: Kit para armar la
Microcomputadora personal
Altair 8800.
11
En el mismo año Nolan Kay Bushnell junto con un amigo creo el Atari. Después
de esto comenzó el desarrollo de un videojuego de arcadia llamado Pong, que se
conoció en 1972 y comenzó una industria que continúa siendo hasta hoy una de
las que mayor uso hace de los gráficos por computadora.
Figura 11: El Atari Pong de 1972.
El juego se basaba en aquel creado en 1958 por William Higinbotham, quien
programó un osciloscopio para que simulara una partida de ping-pong que
permitía la interacción entre dos jugadores. El objetivo era manejar dos líneas
móviles que interceptaban la pelota representada por un punto móvil en la pantalla
circular del osciloscopio. El juego fue llamado Tenis for two.
Figura 12 b) La pantalla del juego.
Figura 12 a) El osciloscopio en el que se
jugaba Tennis for two en 1958.
12
Pong poseía una menor calidad gráfica que el juego en el que se inspiraba, pero la
clave de su éxito radicaba en la ventaja de poder producirse en masa a un precio
relativamente económico convirtiéndose en uno de los videojuegos mas vendidos
de la historia.
Figura 13: Anuncio para la
versión en arcadia del juego
Pong de Atari en 1972.
Pero el avance de la industria no se limitaba al entretenimiento para el hogar. El
primer videojuego público y comercial de la historia fue el Galaxy Game, creado
por dos estudiantes de la Universidad de Stanford, Hill Pitts y Hugh Tuck, quienes
reprogramaron la versión original del juego Spacewar de Stephen Russell. La
máquina fue instalada en Tresidder Memorial Union, una tienda dentro del
complejo del campus en la Universidad. Oficialmente la primer máquina de
videojuegos para obtener ganancias económicas en ser colocada en un sitio
público y que poseía un mecanismo para recaudar monedas de 5 centavos. Fue
arrollador el éxito de la máquina, con colas interminable para disfrutar del juego
por unos minutos.
13
Figura 14: Galaxy Game en el
Museo de Computación
de Stanford.
Después del éxito de Galaxy Game comenzaron a producirse otras máquinas en
serie, la primera fue Computer Space, otra variación del juego Spacewar y que
automáticamente se convirtió en el detonante de la comercialización masiva de los
videojuegos, abandonando el ambiente experimental que hasta entonces había
rodeado a los avances en ese campo.
Tanto en la industria de los videojuegos y entretenimiento como en las
aplicaciones científicas se presentaron avances con gran rapidez. Durante la
década de los 70’s Don Greenberg de la Universidad de Cornell creó un
laboratorio de gráficos por computadora que produjo nuevos métodos de
simulación realista de superficies. El programa de gráficos por computadora de
Cornell es bien conocido por sus trabajos en síntesis de imágenes realistas,
incluyendo el método de radiosidad para el cálculo de iluminación directa e
indirecta en escenas sintéticas. El objetivo del laboratorio a largo plazo es
desarrollar modelos de iluminación basados en física y procedimientos de
renderizado preceptúales que sean visual y cuantificablemente indistinguibles de
imágenes del mundo real. Su trabajo ha generado muchas de las más notables
capacidades de iluminación en el software comercial.
Desde su fundación, el laboratorio de Cornell ha articulado y refinado un
sistema para investigación en iluminación global incorporando modelos de
reflexión, simulación de transporte de energía y algoritmos de despliegue
visual.
14
Figura 15: Escena de
Cornell en perspectiva.
En la conferencia SIGGRAPH de 1980 fue mostrada una impactante película
titulada “Vol Libre”. Se trataba de un vuelo de alta velocidad a través de montañas
fractales generadas por computadora. El programador de nombre Loren Carpenter
de la compañía Boeing en Seattle, Washington había estudiado y modificado la
investigación de Mandelbrot para simular montañas fractales realistas.
Carpenter había estado trabajando en el departamento de servicios de cómputo
de Boeing desde 1966 y era estudiante en la Universidad de Washington.
Eventualmente trabajó con un grupo en Boeing en un sistema de dibujo asistido
por computadora. Esto finalmente le dio acceso al equipo de gráficos por
computadora. Trabajando ahí con otros empleados, desarrolló varios algoritmos
de renderizado y publicó artículos sobre ellos.
Figura 16: Escena de
la película de
animación
Vol Libre.
15
A finales de los 70’s Carpenter había construido modelos en 3D de diseños de
aeroplanos y quería algunos escenarios para usarlos. Así que leyó el libro de
Mandelbrot y de inmediato se decepcionó cuando encontró que las fórmulas no
eran prácticas para lo que el tenía en mente. En esa época se había estrenado
Star Wars y siendo gran fan de la imaginación Carpenter soñó con crear algún tipo
de paisaje extraterrestre. Esto lo condujo a hacerlo realmente; para 1979 tenía una
idea de cómo crear un terreno fractal en animación.
Durante un viaje de negocios al estado de Ohio en 1979, Carpenter encontró a
una persona que conocía bastante gente en el campo de los gráficos por
computadora, gente como Ed Catmull. Él le explicó como Catmull había sido
contratado por George Lucas para montar un laboratorio en Lucasfilm. Carpenter
se interesó inmediatamente pero no quería mandar su currículo aún, porque
todavía estaba trabajando en su película de la montaña fractal.
Carpenter continuó trabajando, quería demostrar no solo que esas imágenes
fractales lucían bien, sino que además podían animarse bien. Lo logró después de
resolver varias dificultades técnicas y su película estuvo lista para presentarse en
SIGGRAPH 1980. Quería llamar la atención tanto como fuera posible ya que
deseaba trabajar en Lucasfilm. Al término de la película fue contratado por la
gente de Lucasfilm que era parte de la audiencia. Mas tarde, en 1981 Carpenter
escribió su primer programa de rendering para Lucasfilm, llamado REYES
(Renders Everything You Ever Saw). REYES eventualmente formaría parte del
motor de Renderizado Renderman y actualmente, Carpenter aún está con Pixar.
En 1986 se formó Pixar cuando la división de gráficos por computadora de
Lucasfilm fue adquirida por Steven Jobs. El equipo pionero de la compañía
formado por John Lasseter, Ed Catmull y Ralph Guggenheim produjo el famoso
software Renderman.
Renderman Interface Specification, o RISpec, es un API desarrollada por los
estudios de animación Pixar para describir escenas tridimensionales y
convertirlas en imágenes digitales foto realistas.
Figura 17: Escena generada con
Renderman para la película “The
Abyss” de 1989.
16
Terminator 2 fue estrenada en 1991 e impuso un nuevo estándar para los efectos
con imágenes generadas por computadora (CGI). El robot maligno T-1000 en T2
fue alternado entre el actor Robert Patrick y una versión animada computarizada
en 3D de Patrick.
Figura 18: Escena de la película
Terminator 2 de 1991.
El verano de 1994 trajo toda una gama de películas llenas de gráficos por
computadora. Algunos efectos sin embargo, eran tan fotorealistas que el uso de la
computadora era indetectable. Por ejemplo en la película Forrest Gump, los
artistas usaron composición digital, sobreponiendo distintas secuencias de video
una encima de otra, produciendo la ilusión de que el actor Tom Hanks estaba en la
misma escena con algunos famosos politicos americanos como John F. Kennedy.
También usaron técnicas de edición estándar de imágenes para “cortar” las
piernas de un actor que interpreta el papel de un soldado herido que perdió sus
piernas en la guerra. Simplemente lo hicieron usar calcetines largos de color azul.
De ese modo después de que la grabación fue escaneada en la computadora, el
artista usó el software Parallax para copiar porciones del escenario de fondo sobre
los calcetines azules en cada cuadro. El resultado es que Tom Hanks carga al
actor fuera de la cama y se ve como si este realmente no tuviera piernas.
Figura 19: Efecto especial usado en la película Forrest Gump de 1994.
17
En 1995 se presentó la primera película de larga duración con gráficos y
animaciones 3D por computadora. La película realizada por Pixar fue llamada Toy
Story. La película no presentó mejoras revolucionarias, sin embargo solo por ser
una película de larga duración tuvo un gran impacto en la manera en que la gente
percibía los gráficos por computadora.
Para 1995 las audiencias de todo el mundo estaban acostumbradas a ver
asombrosos gráficos en películas, pero hubo otra revolución de gráficos, que
comenzó ese año. Sony lanzó al mercado mundial su consola de juegos
Playstation (X). Hasta entonces las llamadas consolas de videojuegos solamente
podían manejar gráficos 2D, pero el Playstation contenía un chip (además del
CPU) de 3D acelerado por hardware capaz de dibujar 360,000 polígonos por
segundo.
Figura 20: Playstation de Sony.
1996 podrá no ser el año más excitante en el uso de CGI en películas, pero la
industria de los videojuegos experimentó un gran avance en los gráficos 3D con la
salida de Quake de ID Software. 3D acelerado por hardware se convirtió en la
frase de moda y al menos dos fabricantes sacaron al mercado aceleradores
gráficos para PC (Diamond Edge de Diamond Multimedia usando el procesador
NV1 de nVidia, y Virge de S3). Sin embargo los aceleradores de esta primera
generación fueron prácticamente inútiles. Quake nunca los requirió y aún cuando
los usara, los aceleradores ofrecían un pobre desempeño.
En 1997 la industria de los videojuegos experimentó de nuevo una revolución, esta
vez fue el acelerador 3DFX Voodoo 3D. Este chip 3D aplastó por completo a la
competencia con su increíble y extremadamente práctico desempeño en 3D. Este
era el momento de cambio para los gráficos 3D acelerados por hardware.
Después de Voodoo no hubo vuelta atrás. 1997 también vio la llegada de Quake 2.
Los beneficios de un buen acelerador 3D fueron obvios y el lema fue: “Si quieres
jugar juegos geniales, tendrás que comprar un acelerador 3D”.
18
1999 fue probablemente el año más excitante para los videojugadores de todo el
mundo. nVidia finalmente logró superar el desempeño de 3DFX en la batalla de
los chips 3D con su procesador TNT2. Ni siquiera la Voodoo 3 podría igualar al
chip TNT2 (y TNT2 Ultra). Pero nVidia no se detuvo ahí. En octubre sacaron a la
venta el primer GPU (Unidad Gráfica de Procesamiento) para consumidor del
mundo, la GeForce256. La GeForce (nombre código nv10) fue la primera tarjeta
3D que poseía un motor de hardware llamado Transform & Lighting. Ninguno de
los títulos lanzados en 1999 soportaba esta opción con la excepción de Quake III,
el cual salió a la venta en diciembre. La GeForce 256 podía renderizar triángulos
con soporte de T&L en hardware, todo esto capaz de trabajar en conjunto con un
rendimiento igual o mayor a 10 millones de polígonos por segundo.
Figura 21: Escena del juego Quake III Arena de 1999.
El año 2000 fue realmente “el año de nVidia“. En diciembre, nVidia adquirió los
activos intelectuales de su alguna vez competidor 3DFX. Este es un buen
recordatorio de que tan rápido cambian las cosas en la industria. ATI se estaba
volviendo fuerte y Matrox había anunciado nuevos productos, pero sobre todos
ellos, claramente nVidia se había convertido en el estándar para el cómputo en
casa. En el 2001 nVidia continuó dominando el mercado con una competencia
ocasional por parte de ATI.
19
Nintendo lanzó el Gamecube en septiembre de 2001, al igual que el Gameboy
Advance. Pero probablemente el gran evento del 2001 fue el lanzamiento de la
consola Xbox de Microsoft. Con un procesador gráfico desarrollado por nVidia,
disco duro, CPU Intel y más, fue diseñada para ganarles a sus principales
competidores que serían el Playstation 2 y el Gamecube de Nintendo. El alguna
vez tan influyente SEGA había dejado el negocio del hardware y ahora se
concentraba en el software.
El mundo de la cinematografía también se vio beneficiado con estos avances y se
puede ver en películas como Final Fantasy: The Spirits Within, tal vez el primer
intento verdadero por crear humanos realistas en una película completamente
generada por computadora.
Figura 22: Escena
de Final Fantasy:
The Spirits Within,
con personajes
completamente
generados por
computadora.
Jurassic Park triunfó de nuevo, por supuesto, con dinosaurios tan reales que
incluso un artista gráfico podría sentarse a disfrutar la película sin pensar acerca
de los efectos especiales. La película A.I. presentó efectos especiales
extremadamente bien producidos, pero que fueron la simple evolución de las
técnicas creadas para Terminator 2. La gran película del año fue Lord Of The
Rings, presentando algunas escenas sorprendentes.
Durante 2003 aparecieron varias secuelas cinematográficas con grandes efectos
especiales. X-Men 2, Matrix 2 y Terminator 3 son solo algunos ejemplos. Matrix
Revolutions presentó una gran cantidad de asombrosos efectos especiales.
El 2004 fue un buen año para los videojuegos. Algunos de los juegos que
aparecieron ese año como FarCry de Ubisoft fueron de los primeros juegos en
utilizar los últimos avances en los gráficos por computadora como los shaders de
Direct X 9.0. El segundo gran juego fue Doom 3, la secuela de la legendaria y
revolucionaria serie de Doom. Aunque el juego no fue del completo gusto de todos,
nadie puede negar la calidad gráfica que se conseguía con el uso de iluminación
dinámica, sombras y el sonido surround.
20
Hacia finales del año llegó el juego posiblemente mas esperado de todos los
tiempos, Half-Life 2. Habiéndose desarrollado durante seis años el juego
presentaba gráficos increíblemente realistas y creaba toda una nueva dimensión
en el modo de juego con su cuidadosamente implementado motor de física.
Para la película Spider-Man 3 de 2007 Sony Pictures Imageworks (SPI) usó el
software Autodesk Maya para la animación en 3D, el modelado, texturizado y
combinación de movimientos de los personajes y efectos visuales
aproximadamente en 80% de las tomas realizadas por el estudio. Se usó el
sistema de efectos visuales Autodesk Flame para hacer cambios en el rostro de
los personajes y para integrar tomas reales de ellos en ambientes generados
totalmente por computadora. El uso de ese software también fue decisivo para
crear la secuencia extremadamente compleja de Sandman y la sustancia
simbiótica de Venom.
Figura 23: Efectos especiales de Spider-Man 3 generados con el software de Autodesk.
21
Actividades de aprendizaje
Investiga:
•
Funcionamiento del casco del sistema de realidad virtual desarrollado
por Sutherland.
•
Características de un sistema de renderizado compatible con
Renderman.
•
Ventajas del lenguaje shading de Renderman.
•
Que es SIGGRAPH y para que se realiza.
22
El hardware gráfico
Un sistema gráfico tradicional consta de cuatro componentes: procesador, unidad
de procesamiento gráfico, dispositivos de entrada y dispositivos de salida. El
procesador desempeña un papel central en cualquier sistema gráfico y cada uno
de los demás componentes debe comunicarse en algún momento con otro, o con
el procesador mediante un canal de datos.
Figura 24: Arquitectura de un sistema gráfico básico.
Generalmente el dispositivo principal de salida de un sistema gráfico es un monitor
de video. El tipo más común es un CRT y actualmente se incrementa el uso de los
LCD. Uno de los componentes de un monitor de video CRT es el cañón de
electrones; el cañón tiene un cátodo que al calentarse emite un haz de electrones
(rayos catódicos) que pasa a través de los sistemas de enfoque y desviación que
dirigen el haz hacia una posición específica de la pantalla que se encuentra
recubierta con una película de fósforo con carga positiva, de modo que al impactar
el rayo de electrones en un punto de la cubierta de fósforo esta emite luz durante
una fracción de segundo. El sistema de desviación consta de un par de placas
metálicas horizontales y un par de verticales. Al pasar los electrones del haz entre
cada par de placas, el campo eléctrico generado entre estas produce una
desviación en el haz, primero en dirección vertical y después horizontal.
23
Figura 25: Componentes de un CRT.
La pantalla de video que utilizan la mayoría de las microcomputadoras se dividen
en pequeños puntos. Cada uno de esos puntos se denomina pixel (picture
element). Discretamente, el CRT es representado por una rejilla de líneas
verticales y horizontales. A cada línea horizontal se le conoce como línea de
barrido mientras que la presentación de video se denomina presentación por
barrido. La calidad de una presentación por barrido se describe de acuerdo a su
resolución. La resolución se determina por el número de líneas de barrido y
pixeles por línea. Cuanto mayor sea la resolución mas detallada resultará la
imagen. Las presentaciones de baja resolución tienen cerca de 300 líneas de
barrido, cada una con aproximadamente 400 pixeles. Las presentaciones de alta
resolución tienen por lo menos 1000 líneas de barrido, con más de 1000 pixeles
por línea.
Un pixel es la unidad mínima de representación gráfica. La resolución de una
presentación por barrido es un indicador de su calidad gráfica y se determina
por el número de pixeles por unidad de área.
24
Cuando hablamos de mejor resolución gráfica, hablamos de usar un número
mayor de líneas de barrido (horizontales) con mayor número de píxeles.
Realmente, lo que sucede es que cuanto más se juntan los píxeles, es más difícil
distinguir entre uno y otro píxel adyacente. Esto se debe en parte a la distancia
física entre los conos de la retina del ojo humano y en parte a las condiciones
visuales que dependen del entorno. Esta habilidad de discernir detalles se llama
agudeza visual. Nuestra agudeza es menor por el desgaste, al envejecer, y por
efectos de nuestro entorno; por ejemplo, al disminuir el contraste y brillo.
La resolución y el concepto de una malla de áreas de colores son análogos a un
mosaico. En tal forma de arte, un mosaico intenta representar una imagen a partir
de azulejos pequeños de determinados colores y tonos. Cada azulejo intenta
aproximarse en color a un área de la imagen, combinando los colores en dicho
área, como refleja la siguiente imagen:
Figura 26: Analogía entre el
concepto de resolución y
una figura de mosaicos.
25
En un sistema de barrido se presenta la imagen por medio de una secuencia
predefinida y cíclica. El haz de electrones que ha sido desviado por las placas de
deflexión choca contra la esquina superior izquierda de la pantalla recubierta de
fósforo produciendo luminiscencia en ese punto. En los monitores a color, cada
punto o pixel de la pantalla esta compuesto por tres pequeños puntos de fósforo:
rojo, azul y verde. Iluminando estos puntos con diferentes intensidades puede
obtenerse cualquier color. Este tipo de monitores tiene tres cañones de electrones
que producen rayos de electrones de distintas intensidades, correspondientes a
los tres colores, que pasan por la máscara de sombra colocada detrás de la
pantalla de fósforo. La máscara de sombra es una placa con pequeños agujeros
que aseguran que los electrones de cada uno de los tres cañones alcancen solo
los fósforos del color apropiado en la pantalla. Los tres rayos pasan a través de los
mismos agujeros en la máscara, pero el ángulo en que llegan es diferente para
cada cañón. El espacio entre los agujeros, el espacio entre los fósforos y la
colocación de los cañones esta ajustada para que por ejemplo el cañón azul
solamente tenga libre el camino hacia los fósforos azules. Los fósforos rojo, verde
y azul para cada pixel, generalmente están alineados en una formación triangular.
Figura 27 a)
Detalle de una pantalla de CRT a color.
Figura 27 b)
Funcionamiento de la máscara de sombra.
Después de que el haz de electrones ha iluminado el primer punto de la pantalla,
la tensión de las placas de deflexión cambia continuamente, guiando al haz de
electrones sobre la línea de barrido de izquierda a derecha. Cuando se llega al
final de la línea el cañón de electrones se apaga y la tensión de las placas se
ajusta para desviar el haz al inicio de la segunda línea de barrido; este proceso se
conoce como retorno horizontal. Se continúa repasando cada línea de barrido de
la pantalla y cuando se ha llegado al extremo derecho de la última línea de barrido
se ha completado un cuadro. Al final de cada cuadro el haz de electrones se
apaga y regresa a la esquina superior izquierda para iniciar el cuadro siguiente; a
esto se le llama retorno vertical.
26
El proceso de barrido es tan rápido que el ojo humano no es capaz de distinguir
como se activan los puntos por separado, percibiendo la ilusión de que todos los
pixeles se activan al mismo tiempo. Sin embargo, un punto de fósforo iluminado
emite luz solo durante una fracción de segundo, el patrón de barrido de izquierda a
derecha y de arriba hacia abajo debe repetirse varias veces por segundo. El
número de veces en un segundo que el cañón de electrones dibuja un cuadro
completo en la pantalla se conoce como frecuencia de refresco y se mide en
hertz (ciclos por segundo). El recíproco de la frecuencia de refresco es el tiempo
transcurrido entre cada barrido completo, que es llamado tiempo de cuadro. Una
frecuencia de refresco muy baja puede producir un efecto de parpadeo.
El proceso de barrido generalmente se divide en dos fases, cada una con una
duración de 1/60 de segundo. En la primera fase se despliegan las líneas de
barrido numeradas impares y, en la segunda, las líneas pares. El resultado de este
ciclo de refresco entrelazado es una reducción del efecto de parpadeo con un
tiempo de cuadro de 1/30 de segundo. Se observa que los sistemas de
presentación entrelazada requieren dos retornos verticales por tiempo de cuadro.
Figura 28: Una exposición de alta
velocidad en video puede mostrar al
rayo de electrones en el proceso de
barrido.
Cuando se despliega una imagen en la pantalla de un monitor de video, se
necesita iluminar solo los pixeles adecuados. La iluminación de los pixeles
apropiados requiere una unidad de presentación que consta de dos partes:
memoria de video y controlador de video.
En ese esquema se hace un uso mas eficiente de la memoria ya que se destina la
memoria de video destinada al almacenamiento de copias de la imagen a
desplegarse en pantalla es independiente de la memoria principal del sistema.
27
Figura 29: Arquitectura de un sistema gráfico con presentación con barrido.
La memoria de video almacena el resultado de las funciones gráficas. Cada pixel
en pantalla corresponde a una entrada particular en un arreglo bidimensional en
memoria. Algunos sistemas gráficos cuentas con una memoria de video diferente
de la memoria principal. El número de renglones en el arreglo de la memoria de
video es igual al número de líneas de barrido en la pantalla, así el número de
columnas en este arreglo es igual al número de pixeles en cada línea de barrido.
El término pixel se usa también para describir el renglón y la columna de
colocación en el arreglo de la memoria de video que corresponda a la posición en
pantalla. Cada pixel se codifica mediante un conjunto de bits de longitud
determinada (la llamada profundidad de color), por ejemplo, puede codificarse
un pixel con un byte, u 8 bits, de manera que cada pixel admite 256 variantes (2
dígitos por bit, elevados a la octava potencia). En las imágenes de color
verdadero se suelen usar tres bytes para definir un color, es decir, en total
podemos representar un total de 2 elevado a 24, o sea 16,777,216 colores
diferentes.
La cantidad de memoria de video requerida para almacenar una pantalla se
determina multiplicando el número de pixeles horizontales, el número de
pixeles verticales y el número de bytes usados para codificar un pixel.
Memoria de video = Res. H x Res. V x Núm. de bytes por pixel
28
Si se quiere desplegar un pixel en pantalla, se coloca un valor específico en la
localidad de memoria correspondiente en el arreglo de la imagen. Se accede a
cada posición de pixel en pantalla y su correspondiente localidad en la memoria de
video por medio de un par coordenado entero (x, y). El valor de x se refiere a la
columna, mientras que el valor de y representa la posición del renglón. Por lo
general, el origen de este sistema de coordenadas aparece en la esquina inferior
izquierda aunque la imagen continúe desplegándose en el mismo orden que las
líneas de barrido, de arriba abajo.
El controlador de video es un dispositivo de hardware que lee el contenido de la
memoria de video y lo deposita en un buffer de video, para luego convertir la
representación digital de una cadena de valores de pixeles en señales analógicas
de tensión que se envían en serie a la pantalla de video. Siempre que el
controlador encuentra un valor de 1 en la memoria de video, se envía una señal de
alta tensión al CRT, el cual enciende el pixel correspondiente en pantalla.
El controlador de video realiza una interacción secuencial a lo largo de la
memoria de video, satisfaciendo la frecuencia de refresco.
El tiempo de cuadro 1 / frecuencia de refresco es la suma del tiempo de
retorno vertical (k = 2 si está entrelazado, de lo contrario k = 1), el tiempo total
de retorno horizontal (uno por cada línea de barrido), y el tiempo de
presentación de todos los pixeles. El tiempo de acceso a un pixel es:
t acceso =
[t c − (k × t rv )] − [t rh × nlineas ]
n pixeles
tacceso = tiempo de acceso al pixel
tc = tiempo de cuadro
trv = tiempo de retorno vertical
trh = tiempo de retorno horizontal
nlineas = número de líneas de barrido
npixeles = número de pixeles en la pantalla
El controlador de video lee de la memoria de video el color del pixel a dibujar y
envía la información a un convertidor digital analógico (DAC) en donde por
medio de las componentes de color RGB se determina la intensidad del pixel.
29
El usuario de un sistema gráfico se comunica con el programa por medio de
ciertos dispositivos de entrada y obtiene los resultados en los dispositivos de
salida.
Figura 30: Dispositivos
de entrada y salida.
Dispositivos de entrada
•
•
•
•
•
•
•
•
•
Teclado: un dispositivo para introducir texto y caracteres presionando
botones (referidos como teclas), similar a una máquina de escribir. La
configuración más común de teclas en la QWERTY.
Ratón: un dispositivo apuntador que detecta el movimiento
bidimensional relativo a su superficie de contacto.
Trackball: un dispositivo apuntador que consiste en una esfera
expuesta colocada en un armazón que detecta la rotación sobre dos
ejes.
Joystick: un dispositivo general de control que consta de dos o tres
ejes que transmiten el ángulo de su movimiento en dos o tres
dimensiones a la computadora.
Gamepad: un control de juegos general que posee botones y un control
de dirección que se manipulan con los dedos.
Scanner: dispositivo que analiza imágenes, texto impreso o escritura a
mano y los convierte en imágenes digitales.
Cámara Web: una cámara de video de baja resolución usada para
proveer una entrada visual que puede ser fácilmente transferida por
Internet.
Lápiz óptico: un dispositivo con fotocelda que, cuando se activa
oprimiendo la punta contra la pantalla, devuelve a la computadora la
posición del pixel iluminado en ese campo visual.
Guante de datos: un dispositivo con sensores que detectan los
movimientos de la mano y de los dedos para poner en posición o
30
Dispositivos de salida
•
•
•
Impresora: un dispositivo periférico que produce una copia impresa de
un documento.
Monitor: dispositivo que despliega una señal de video, similar a una
televisión, para proporcionar información y una interfaz con la cual
interactuar.
Altavoces: dispositivo que convierte señales de audio analógicas en
vibraciones de aire equivalentes para hacer el sonido audible.
El hardware gráfico también incluye a las tarjetas gráficas. Una tarjeta gráfica o
tarjeta de video, es una tarjeta de expansión para una computadora encargada de
procesar los datos provenientes de la CPU y transformarlos en información
comprensible y representable en un dispositivo de salida, como un monitor o
televisor. Algunas tarjetas gráficas han ofrecido funcionalidades añadidas como
captura de vídeo, sintonización de TV, decodificación MPEG-2 y MPEG-4 o
incluso conectores de ratón, lápiz óptico o joystick.
Figura 31: Tarjeta gráfica ATI PowerColor Radeon X850XT PE.
31
Actividades de aprendizaje
Investiga:
•
Como funciona un monitor LCD.
•
Que es un dispositivo de despliegue vectorial.
•
Diferencias entre gráficos raster y gráficos vectoriales.
Resuelve el siguiente problema:
Determina el tiempo de acceso a un píxel para una pantalla con una resolución
de 768 por 256 pixeles y con una frecuencia de refresco de 40 Hz en un
sistema de barrido entrelazado. Para un sistema de representación de este tipo,
el tiempo de retorno horizontal es de 20 µs, el tiempo de retorno vertical de
1500 µs, y el tiempo de cuadro de 25000 µs.
32
El software gráfico
Figura 32: modelo
producido con un
software gráfico
de aplicación.
Una representación gráfica consisten en un conjunto de pixeles que se obtiene a
partir de una idea de más alto nivel; como puede ser la descripción de la gráfica en
términos de líneas, arcos, colores etc. o incluso en términos de objetos
tridimensionales, puntos de vista e iluminación.
El como llegar de estas descripciones de alto nivel al conjunto de pixeles final es
algo de lo que las diferentes partes del sistema se deberán encargar; por lo
general el programador dispone de una serie de librerías de programación gráfica
que le permiten escribir aplicaciones sin tener que llegar a conocer en detalle el
hardware sobre el que se ejecutará su código, y sin tener que escribir desde el
principio miles de procedimientos que, además, distan de ser triviales. Ejemplos
de estas librerías podrían son OpenGL de SGI y Direct3D de Microsoft.
Por lo general, estas librerías permiten trabajar creando estructuras en un sistema
de coordenadas local, integrar estas estructuras en una escena más compleja que
utiliza un sistema de coordenadas global o "de mundo". De algún modo, el
software transformará estas coordenadas a unas coordenadas de dispositivo
normalizado (independiente de las características físicas del dispositivo real) y en
un último paso estas se ajustarán al rango de salida del dispositivo final.
Figura 33: Proceso de transformación de una descripción a una imagen.
33
Los bloques de construcción básicos que ofrece una librería se conocen como
"primitivas" y pueden incluir desde un mínimo de líneas, círculos, caracteres, etc.
en dos dimensiones hasta mallas de polígonos tridimensionales, definiciones de
luces, etc.
Las siguientes APIs para gráficos por computadora son particularmente
populares:
•
OpenGL
•
Direct3D (subconjunto de DirectX para producir gráficos interactivos en
3D)
OpenGL
OpenGL (Open Graphics Library) es una API portable para desarrollar
aplicaciones gráficas interactivas 2D y 3D. Fue desarrollada por Silicon Graphics y
actualmente es un estándar abierto controlado por diversas compañías. Su mayor
ventaja es su portabilidad, es decir que puede ser usada en una gran cantidad de
plataformas de hardware, desde dispositivos móviles hasta súper computadoras,
además de distintos sistemas operativos y tarjetas aceleradoras 3D. Es
relativamente fácil de usar.
Algunas de las operaciones que se pueden realizar con OpenGL son las
siguientes:
•
•
•
•
Modelado de figuras a partir de primitivas básicas, mediante la creación de
descripciones geométricas de los objetos (puntos, líneas, polígonos y
mapas de bits).
Situar los objetos en el espacio de una escena tridimensional y seleccionar
el punto de vista desde el que se quiere observar.
Determinar el color de los objetos. El color puede asignarse a cada pixel, o
calcularse a partir de las condiciones de iluminación o asignarse por medio
de una textura mapeada sobre los objetos.
Convertir la representación matemática de los objetos y la información de
color y textura asociada, en pixeles de la pantalla, en una imagen virtual
tridimensional.
Además de estos procesos, OpenGL realiza otras operaciones complejas como la
eliminación de líneas y caras de los objetos que quedan ocultas para el usuario al
ser cubiertas por otros objetos de la escena.
34
Figura 34: Escenario generado en OpenGL.
Direct3D
Direct3D es parte de DirectX, una API propiedad de Microsoft disponible tanto en
los sistemas Windows de 32 y 64 bits, como para sus consolas Xbox y Xbox 360
para la programación de gráficos 3D.
El objetivo de esta API es facilitar el manejo y trazado de entidades gráficas
elementales, como líneas, polígonos y texturas, en cualquier aplicación que
despliegue gráfico en 3D, así como efectuar de forma transparente
transformaciones geométricas sobre dichas entidades. Direct3D provee también
una interfaz transparente con el hardware de aceleración gráfica.
Se usa principalmente en aplicaciones donde el rendimiento es fundamental, como
los videojuegos, aprovechando el hardware de aceleración gráfica disponible en la
tarjeta gráfica.
El principal competidor de Direct3D es OpenGL, desarrollado por Silicon Graphics
Inc.
35
Actividades de aprendizaje
Investiga:
•
En consiste el modo retenido y el modo inmediato de Direct3D.
•
Que implementaciones existen basadas en OpenGL.
•
Que es un API.
36
Descargar