martes, 28 de junio de 2011
martes, 26 de abril de 2011
El Software Grafico
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.
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.
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.
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.
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.
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.
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.
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.
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.
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
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.
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.
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 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.
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.
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.
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.
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.
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.
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
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.
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.
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 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.
Breve Historia de la Computación Grafica
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.
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.
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.
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 horas-hombre escribir la primera versión de Spacewar. El juego se escribió en una PDP-1 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.
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.
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:
• 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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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”.
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.
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.
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.
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.
Suscribirse a:
Entradas (Atom)