Post on 08-Aug-2015
ORIGEN DE LA COMPUTACIÓN GRÁFICA
La computación gráfica o gráficos por ordenador es el campo de la informática,
donde se utilizan computadoras tanto para generar imágenes visuales
sintéticamente como integrar o cambiar la información visual y espacial probada
del mundo real.
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 uso de gráficos de ordenador se puede remontar a 1940, cuando Jay
Forrester en el MIT un equipo diseñado para la formación de nuevos pilotos. La
computadora digital fue elegida como el instrumento ideal, debido a su
adaptabilidad y la flexibilidad con que la máquina puede ser programada. No fue
sino hasta unos años después, en 1950; de que un proyecto de defensa del
sistema de radar llamado Torbellino (Whirlwind) mostró que el primer uso práctico
de gráficos por ordenador.esta máquina fue la primera computadora que utilizó un
CRT (Tubo de Rayos Catódicos) como dispositivo de visualización, Whirlwind fue,
construida para simular vuelos de entrenamiento de los escuadrones de
bombarderos de la marina de Estados Unidos.
Torbellino es un ordenador conectado a los sitios de radar, y muestra un mapa
electrónico de la ubicación de su monitor con repuntes parcela que representan
los aviones entrantes. Torbellino es el vacío del primer equipo del tubo capaz de
dibujar líneas y puntos en una pantalla de ordenador.
Posteriormente se crea la máquina SAGE (Semi-Automatic Ground
Environment), en 1955; para rastrear naves aéreas que ingresan al espacio aéreo
norteamericano durante la Guerra Fría. Computadores construidos con 50000
tubos de vacío son integrados con sistemas de radar para proveer la primera
aplicación de computación gráfica interactiva. Fue el primero en emplear un lápiz
óptico para seleccionar símbolos en la pantalla.
En 1957, Digital Equipment Corporation (DEC) abrió su empresa con sólo tres
empleados. Tres años más tarde, diciembre presenta el PDP-1 (Programmed Data
Processor), en primer lugar en el mundo interactivo de computadoras pequeñas.
El Procesador de Datos Programados (PDP-1) es un ordenador de alta velocidad,
de estado sólido digital diseñado para funcionar con muchos tipos de dispositivos
de entrada-salida sin cambios internos de la máquina.
En 1958, un cineasta experimental, John Whitney, creó un corto de animación
utilizando el equipo analógico para controlar el movimiento del personaje. Whitney
utilizó el mismo sistema para crear la secuencia de introducción de Vértigo de
Alfred Hitchcock. Más tarde Whitney y su hermano produjeron más películas
basadas en técnicas similares.
El primer gran avanceen la gráfica realizada por computadora fue el desarrollo
de Sketchpad en 1962 por Ivan Sutherland.
RESUMEN CRONOLÓGICO DE LA COMPUTACIÓN GRÁFICA
1955 - La máquina SAGE (Semi-Automatic Ground Environment) es creada
para rastrear naves aéreas que ingresan al espacio aéreo norteamericano durante
la Guerra Fría. Computadores construidos con 50000 tubos de vacío son
integrados con sistemas de radar para proveer la primera aplicación de
computación gráfica interactiva.
1963- Ivan Sutherland presenta su programa Sketchpad gráfico interactivo
desarrollado en el MIT. “I was driven by the idea that I could integrate a
numerical representation of an object with a graphical representation and that by
manipulating the graphical representation I could manipulate the underlying
numerical representation”.
1963 - Douglas Englebart inventa el mouse
1963 - William Fetter hace un estudio de aterrizajes y despegues usando una
malla de una nave aérea en un Boeing. También creó el “primer hombre”, una
imagen humana digital ubicadaen una cabina de piloto, utilizada por los ingenieros
de diseño para determinar si sus manos son capaces de alcanzar los controles.
1963 - DAC-1, un sistema proto-CAD basado en tecnología de IBM entra en uso
en General Motors, sus diseñadores son motivados por la idea de controlar una
máquina con un computador.
1963 - En los Laboratorios Bell, “Satellite Movie” de Ed Zajak demuestra como
los resultados de un cálculo científico pueden ser desplegados como una película
en movimiento.
1966 - La Universidad de Utah recluta a Dave Evan para fundar el primer
Departamento de Computación Gráfica.
1967 - GE introduce el primer simulador de vuelo a color. Las naves aparecen
discretas y requiere mucho hardware para ejecutar.
1968 - Dave Evans e Ivan Sutherland fundan Evans & Sutherland.
1969 - Se funda SIGGRAPH.
1969 - Ivan Sutherland construye el primer despliegue de una cabeza en la
Universidad de Utah.
1970 - Pierre Bezier desarrolla una forma de representar curvas suaves.
1971 - Se introduce el sombrado de Gouraud.
1972 - Se desarrolla el juego Pong en Atari.
1974 - Ed Catmull desarrolló el z-buffer en la Universidad de Utah.
1974 - Dick Shoup inventa Super Paint con alguna ayuda de Alvy Ray Smith.
1975 – Bui Toung Phong crea el sombreado de Phong en la Universidad de
Utah.
1975 - Martin Newell desarrolla una versión gráfica de la tetera de Utah, la que
llega a ser un ícono de la Computación Gráfica. Por años ha sido utilizada por
investigadores para probar nueva tecnología.
1976 - Jim Blinn desarrolló el mapeo de texturas e imágenes.
1976 - Steve Wozniak y Steve Jobs construyen el primer computador Apple.
Bill Gate funda Microsoft junto a Paul Allen.
1977 - Joel y N’omi Orr fundaron Computer Graphics Newsletter en 1976, en
este año pasó, bajo nuevos propietarios a ser Computer Graphics World.
1979 - Turner Whirted introduce Ray Traicing.
1981 - IBM introduce los computadores personales.
1982 - La computación gráfica juega su primer rol principal en una
películaTRON de Disney.
1983 - Autodesk introduce el primer software CAD para computadores
personales.
1983 –Silicon Graphics compra Iris 1000, la primera estación de trabajo con un
acelerador de geometrías en un chip.
1984 - Bill Kovacs funda Wavefront, el cual crea el primer software de
animación 3D para estaciones de trabajo.
1984 - Apple introduce Macintosh.
1985 - El primer cuerpo digital en movimiento aparece en un comercial de TV.
1986 - La Biblioteca Nacional de Medicina (USA) hace planes para un proyecto
(visible HumanProject) que permitirá reconstruir datos 3D tomados de cadáveres
usando CAT y MRI.
1989 - Pixar gana un premio de la Academia por la película “TinToy”, la primera
película animada con herramientas de computación gráfica 3D.
1994 -Indutrial Light & Magic gana un Oscar por los efectos especiales en
Jurassic Park.
1995 - John Lasseter de Pixar recibe un reconocimiento especial de la
Academia por la película “Toy Story”, las primeras películas completamente
generadas por escenas 3D animadas en un computador.
1998 - Siggraph celebra sus 25 años
1998 - Digital Domain recibe un premio de la Academia por los trabajos en
efectos especiales en “Titanic”.
1999 – StarWars Episode One: The Phantom Menace contiene más de 66
personajes digitales. Uno de ellos JarJar Binks juega un rol protagónico en la
película.
2010 Microsoft Corporation crea el dispositivo Kinect, el cual permite al ser
humano interactuar directamente con el computador (o consolas de video) por
medio de movimientos corporales, sin la necesidad de cables o algún tipo de
artefacto conectado a la persona. Sony y Nintendo también presentan en sus
actuales plataformas dispositivos similares.
En la actualidad el mundo de la computación y la tecnología en general está en la
búsqueda de dispositivos electrónicos que le den mayor independencia al hombre
de sistemas cableados o artefactos de interacción directa (mouse, teclado, lápices
ópticos, touchscreen entre otros) y que este pueda interactuar directamente con el
ordenador mediante órdenes verbales, gestuales o de movimiento (incluso con la
mente).
FUNDAMENTOS DE LA COMPUTACIÓN GRÁFICA
En la actualidad, los gráficos por computador se emplean en una gran variedad
de aplicaciones, como en interfaces gráficas de usuario, tipografía digital, paseos
arquitectónicos virtuales, aplicaciones médicas y juegos de vídeo, entre otras.
La computación gráfica comprende una gran variedad de técnicas que pueden
ser agrupadas de acuerdo al número de dimensiones que se empleen en la
representación del modelo geométrico a visualizar, en 2D y 3D, al igual que la
simulación virtual por computadora de una apariencia de la realidad:
Computación gráfica 2D
La computación gráfica 2D corresponde al conjunto de técnicas que tienen
como objeto la generación de una imagen digital a partir de modelos geométricos
bidimensionales. Estas técnicas son principalmente empleadas en interfaces
gráficas de usuario y en aplicaciones desarrolladas a partir de tecnologías de
impresión y dibujo, como tipografía, cartografía y dibujo técnico, entre otras.
Los gráficos vectoriales y de rasterización conforman las principales categorías
de la computación gráfica 2D. Aquellos emplean primitivas geométricas basadas
en ecuaciones matemáticas (puntos, líneas, curvas y polígonos) para representar
las imágenes; mientras que en éstos, la imagen se representa mediante una
matriz rectangular de píxeles que puede ser desplegable en un dispositivo de
salida cualquiera.
Origen de la computación gráfica 2D
El origen de los gráficos 2D por computadora se remonta a la década de 1950,
en la que aparecieron dispositivos con soporte para gráficos vectoriales.Éstos
fueron suplantados en gran parte por dispositivos basados en gráficos raster en
las décadas siguientes. El lenguaje PostScript y el protocolo de sistema de
ventanas X fueron piezas claves en la evolución histórica del campo. Debido al
advenimiento del software libre, en la última década se ha dado una gran
proliferación y desarrollo de paquetes de interfaces gráficas. Entre los más
destacados se tienen los siguientes:
- Qt
- Wxwidgets
- GTK+
- Motif
- XForms
- FLTK.
Interfaces gráficas
Una interfaz gráfica permite al usuario interactuar gráficamente (de modo visual)
con distintos dispositivos electrónicos, como PCs, PDAs, etc. Las interfaces
gráficas, en contraste con las textuales, ofrecen elementos gráficos (indicadores
visuales) que sirven para representar las acciones de la aplicación disponibles al
usuario. Dichas acciones son usualmente ejecutadas mediante la manipulación
directa de los elementos gráficos presentes en la interfaz. Por razones históricas,
el dominio de las interfaces gráficas se encuentra restringido al espacio
bidimensional.
Computación gráfica 3D
La computación gráfica 3D trata acerca de la síntesis de una imagen
bidimensional a partir de un modelo geométrico tridimensional. De acuerdo con la
complejidad de los cálculos empleados en la generación de las imágenes, las
técnicas se clasifican en prerendering y real-time rendering. Aquellas son
típicamente empleadas en la creación de animaciones de tipo foto-realista;
mientras que éstas se emplean en aplicaciones que requieren interactividad. En el
último caso, es necesario el uso de un procesador de gráficos dedicado (en la
actualidad, ampliamente disponibles para el usuario común).
Técnicas de rendering
De acuerdo al modo en el que la luz se modele, las técnicas de rendering se
clasifican en las siguientes categorías:
Rasterización: Este método consiste en iterar en cada cuadro a través de
todas las primitivas geométricas que conforman la escena para determinar, a partir
del punto de vista del usuario, cuales píxeles de la imagen se ven afectados. Por
ser el método de rendering más ampliamente empleado por la mayoría de GPUs
en la actualidad, este método es el más eficiente y por ello es el predilecto cuando
la aplicación requiere interactividad.
Ray-tracing: El raytracing es una extensión del ray-casting. Mientras que en el
ray-casting el color de cada píxel de la imagen se calcula como el color del primer
objeto intersecado por un rayo imaginario que se lanza desde el punto de vista, al
píxel en cuestión; en el ray-tracing se emplea esta técnica de modo recursivo, i.e.,
empleando rayos de refracción y reflexión a partir del punto en la superficie del
objeto intersecado por el rayo inicial. Usualmente este cómputo se realiza
promediando un número aleatorio de muestras (rayos de luz emanados de la
superficie de los objetos que intersecan el punto de vista) mediante técnicas de
Monte Carlo.
Métodos de iluminación global: En estas técnicas se emplea la teoría de
elementos finitos para simular el modo en que las superficies iluminadas actúan a
su vez como fuentes de iluminación de otras superficies, produciendo una efecto
más realista en el que el ambiente de la escena parece ser mejor captado.
Gracias al gran avance que recientemente ha tenido la tecnología presente en las
GPUs, en la actualidad han surgido aplicaciones gráficas mediante las cuales es
posible interactuar en tiempo real con una escena sintetizada mediante algún
modelo de iluminación complejo, como el ray-tracing. Lo anterior es
particularmente posible gracias al advenimiento de los shaders que permiten
combinar algunos modelos de iluminación complejos, con los algoritmos básicos
de rasterización.
Realidad Virtual
La realidad virtual es simulación por computadora, dinámica y tridimensional,
con alto contenido gráfico, acústico y táctil, orientada a la visualización de
situaciones y variables complejas, durante la cual el usuario ingresa, a través del
uso de sofisticados dispositivos de entrada, a "mundos" que aparentan ser reales,
resultando inmerso en ambientes altamente participativos, de origen artificial.
La meta básica de la realidad virtuales producir un ambiente que sea
indiferenciado a la realidad física (Lee, 1992). Un simulador comercial de vuelo es
un ejemplo, donde se encuentran grupos de personas en un avión y el piloto entra
al simulador de la cabina, y se enfrenta a una proyección computadorizada que
muestra escenarios virtuales en pleno vuelo, aterrizando, etc. Para la persona en
la cabina, la ilusión es muy completa, y totalmente real, y piensan que realmente
están volando un avión. En este sentido, es posible trabajar con procedimientos de
emergencia, y con situaciones extraordinarias, sin poner en peligro al piloto y a la
nave.
La realidad virtual toma el mundo físico y lo sustituye por entrada y salida de
información, tal como la visión, sonido, tacto, etc. Computadorizada
Inteligencia Artificial
La inteligencia artificial es considerada una rama de la computación y relaciona
un fenómeno natural con una analogía artificial a través de programas de
computador. La inteligencia artificial puede ser tomada como ciencia si se enfoca
hacia la elaboración de programas basados en comparaciones con la eficiencia
del hombre, contribuyendo a un mayor entendimiento del conocimiento humano.
Si por otro lado es tomada como ingeniería, basada en una relación deseable
de entrada-salida para sintetizar un programa de computador. "El resultado es un
programa de alta eficiencia que funciona como una poderosa herramienta para
quien la utiliza."
La inteligencia artificial se basa en dos áreas de estudio: el cuerpo humano y el
ordenador electrónico. Puesto que la meta es copiar la inteligencia humana, es
necesario entenderla. Sin embargo, a pesar de todos los progresos en Neurología
y Psicología, la inteligencia del hombre se conoce poco, exceptuando sus
manifestaciones externas. Muchos estudiosos de la inteligencia artificial se han
vuelto para obtener su modelo de inteligencia hacia el estudio de la Psicología
cognoscitiva, que aborda la forma de percibir y pensar de los seres humanos..
Después comprueban sus teorías programando los ordenadores para simular los
procesos cognoscitivos en el modelo. Otros investigadores intentan obtener
teorías generales de la inteligencia que sean aplicables a cualquier sistema de
inteligencia y no solo al del ser humano.
A través de la inteligencia artificial se han desarrollado los sistemas expertos
que pueden imitar la capacidad mental del hombre y relacionan reglas de sintaxis
del lenguaje hablado y escrito sobre la base de la experiencia, para luego hacer
juicios acerca de un problema, cuya solución se logra con mejores juicios y más
rápidamente que el ser humano. En la medicina tiene gran utilidad al acertar el 85
% de los casos de diagnóstico.
Características de la Inteligencia Artificial.
Una característica fundamental que distingue a los métodos de Inteligencia
Artificial de los métodos numéricos es el uso de símbolos no matemáticos, aunque
no es suficiente para distinguirlo completamente. Otros tipos de programas como
los compiladores y sistemas de bases de datos,también procesan símbolos y no
se considera que usen técnicas de Inteligencia Artificial.
El comportamiento de los programas no es descrito explícitamente por el
algoritmo. La secuencia de pasos seguidos por el programa es influenciado por el
problema particular presente. El programa especifica cómo encontrar la secuencia
de pasos necesarios para resolver un problema dado (programa declarativo). En
contraste con los programas que no son de Inteligencia Artificial, que siguen un
algoritmo definido, que especifica, explícitamente, cómo encontrar las variables de
salida para cualquier variable dada de entrada (programa de procedimiento).
Las conclusiones de un programa declarativo no son fijas y son determinadas
parcialmente por las conclusiones intermedias alcanzadas durante las
consideraciones al problema específico. Los lenguajes orientados al objeto
comparten esta propiedad y se han caracterizado por su afinidad con la
Inteligencia Artificial.
El razonamiento basado en el conocimiento, implica que estos programas
incorporan factores y relaciones del mundo real y del ámbito del conocimiento en
que ellos operan. Al contrario de los programas para propósito específico, como
los de contabilidad y cálculos científicos; los programas de Inteligencia Artificial
pueden distinguir entre el programa de razonamiento o motor de inferencia y base
de conocimientos dándole la capacidad de explicar discrepancias entre ellas.
Aplicabilidad a datos y problemas mal estructurados, sin las técnicas de
Inteligencia Artificial los programas no pueden trabajar con este tipo de problemas.
Un ejemplo es la resolución de conflictos en tareas orientadas a metas como en
planificación, o el diagnóstico de tareas en un sistema del mundo real: con poca
información, con una solución cercana y no necesariamente exacta.
Evolución de la Inteligencia Artificial
Los juegos matemáticos antiguos, como el de las Torres de Hanói (hacia el
3000 a. C.), muestran el interés por la búsqueda de un modo resolutor, capaz de
ganar con los mínimos movimientos posibles.
Cerca de 300 a. C., Aristóteles fue el primero en describir de manera
estructurada un conjunto de reglas, silogismos, que describen una parte del
funcionamiento de la mente humana y que, al seguirlas paso a paso, producen
conclusiones racionales a partir de premisas dadas.
En 250 a. C. Ctesibio de Alejandría construyó la primera máquina
autocontrolada, un regulardor del flujo de agua que actuaba modificando su
comportamiento "racionalmente" (correctamente) pero claramente sin
razonamiento.
En 1315, RamonLlull tuvo la idea de que el razonamiento podía ser efectuado
de maneral artificial.
En 1847 George Boole estableció la lógica proposicional (booleana), mucho
más completa que los silogismos de Aristóteles, pero aún algo poco potente.
En 1879 Gottlob Frege extiende la lógica booleana y obtiene la Lógica de
Primer Orden la cual cuenta con un mayor poder de expresión y es utilizada
universalmente en la actualidad.
En 1903 Lee De Forest inventa el tríodo, también llamado bulbo o válvula de
vacío.
En 1937 Alan Turing publicó un artículo de bastante repercusión sobre los
"Números Calculables", un artículo que estableció las bases teóricas para todas
las ciencias de computación, y que puede considerarse el origen oficial de la
informática teórica. En este artículo introdujo el concepto de Máquina de Turing,
una entidad matemática abstracta que formalizó el concepto de algoritmo y resultó
ser la precursora de las computadoras digitales. Podía conceptualmente leer
instrucciones de una cinta de papel perforada y ejecutar todas las operaciones
críticas de un computador. El artículo fijó los límites de las ciencias de la
computación porque demostró que no es posible resolver problemas con ningún
tipo de computador. Con ayuda de su máquina, Turing pudo demostrar que
existen problemas irresolubles, de los que ningún ordenador será capaz de
obtener su solución, por lo que se le considera el padre de la teoría de la
computabilidad.
En 1940 Alan Turing y su equipo construyeron el primer computador
electromecánico y en 1941 Konrad Zuse creó la primera computadora
programable y el primer lenguaje de programación de alto nivel Plankalkül. Las
siguientes máquinas más potentes, aunque con igual concepto, fueron la ABC y
ENIAC.
En 1943 Warren McCulloch y Walter Pitts presentaron su modelo de neuronas
artificiales, el cual se considera el primer trabajo del campo de inteligencia
artificial, aun cuando todavía no existía el término.
En 1950 Turing consolidó el campo de la inteligencia artificial con su artículo
Computing Machinery and Intelligence, en el que propuso una prueba concreta
para determinar si una máquina era inteligente o no, su famosa Prueba de Turing
por lo que se le considera el padre de la Inteligencia Artificial. Años después
Turing se convirtió en el adalid que quienes defendían la posibilidad de emular el
pensamiento humano a través de la computación y fue coautor del primer
programa para jugar ajedrez.
En 1951 William Shockley inventa el transistor de unión. El invento hizo posible
una nueva generación de computadoras mucho más rápidas y pequeñas.
En 1956 se dio el término "inteligencia artificial" en Dartmouth durante una
conferencia convocada por McCarthy, a la cual asistieron, entre otros, Minsky,
Newell y Simon. En esta conferencia se hicieron previsiones triunfalistas a diez
años que jamás se cumplieron, lo que provocó el abandono casi total de las
investigaciones durante quince años.
En 1980 la historia se repitió con el desafío japonés de la quinta generación,
que dio lugar al auge de los sistemas expertos pero que no alcanzó muchos de
sus objetivos, por lo que este campo sufrió una nueva interrupción en los años
noventa.
En 1987 Martin Fischles y Oscar Firschein describieron los atributos de un
agente inteligente. Al intentar describir con un mayor ámbito (no sólo la
comunicación) los atributos de un agente inteligente, la inteligencia artificial se ha
expandido a muchas áreas que han creado ramas de investigación, enormes y
diferenciadas.
Podemos entonces decir que la inteligencia artificial posee características
humanas tales como el aprendizaje, la adaptación, el razonamiento, la
autocorrección, el mejoramiento implícito, y la percepción modular del mundo. Así,
podemos hablar ya no sólo de un objetivo, sino de muchos, dependiendo del punto
de vista o utilidad que pueda encontrarse a la inteligencia artificial.
En los 90´s surgen los agentes inteligentes
El programa Artificial Linguistic Internet Computer Entity (A.L.I.C.E.) ganó el
premio Loebner al Chatbotmas humano en 2000, 2001 y 2004, y en 2007 el
programa Ultra Hal Assistant ganó el premio.
En la actualidad se está tan lejos de cumplir la famosa prueba de Turing como
cuando se formuló: Existirá Inteligencia Artificial cuando no seamos capaces de
distinguir entre un ser humano y un programa de computadora en una
conversación a ciegas. Como anécdota, muchos de los investigadores sobre
inteligencia artificial sostienen que «la inteligencia es un programa capaz de ser
ejecutado independientemente de la máquina que lo ejecute, computador o
cerebro.
En 2010 el programa Suzette ganó el premio Loebner. Algunos programas de
inteligencia artificial gratuitos son Dr. Abuse, Alice, Paula SG, Virtual woman
millenium