martes, 29 de noviembre de 2011

RESUMEN DE VISIÓN Y ANIMACIÓN POR COMPUTADORA Y PROCESAMIENTO DE IMAGENES


Visión por computadora
La visión artificial no ayuda en gran manera para que nosotros podamos identificar de una manera más real una imagen por computadora.
La visión artificial le compete estudiar la estructura física tridimensional del mundo para el análisis automático de imagen. Sin embargo, es necesaria la calidad en el uno de imágenes.
La visión artificial incluye técnicas que son útiles para sí misma, el procedimiento de imágenes y los patrones, de las cuales los patrones visuales son pero solo una instancia. Mas significativamente, la visión artificial incluye técnicas para la descripción útil de la forma y del volumen, para modelos geométricos, y para el llamado proceso cognoscitivo. Así, aunque la visión artificial se refiere ciertamente al procedimiento de imágenes, estas imágenes son solamente la materia prima de una ciencia mucho más amplia del hombre. 
Procesamiento de imágenes
En el procesamiento digital de imágenes se distinguen dos niveles principales de manera general:
*      Procesamiento de imagen de muy bajo nivel: comúnmente se reconoce una secuencia de cuatro para el procesamiento a bajo nivel.
*      Entendimiento de imagen de alto nivel: existe la capacidad de realizar toma de decisiones respecto al contenido de las imágenes.
En el procesamiento de imágenes esta dado por un conjunto de operaciones llevadas a cabo sobre las imágenes a fin de a realizar mediciones cuantitativas para poder describirlas; es decir, extraer ciertas características que permitan la mejora.
El poder realizar mediciones sobre las imágenes generalmente requieren que sus características estén definidas, los bordes bien delimitados y el color y brillo sean uniformes. El tipo de medición a realizar para cada característica especifica un factor importante para poder determinar los pasos apropiados para su procedimiento.
Las herramientas para la adquisición de imágenes transforman la imagen visual de un objeto físico y sus características intrínsecas en un conjunto de datos digitalizados, usados para procesarla.
El procedimiento digital de imágenes, existen diversas aplicaciones y problemas:
v  Representación
v  Transformación
v  Modelado
v  Restauración
v  Reconstrucción
v  Análisis
v  Comprensión de datos
Filtros para eliminación de imágenes
A las imágenes que no son interesantes para la computadora se le define como ruido, existen una gran cantidad de algoritmos para la restauración y mejoramiento de imágenes. Las técnicas de filtraje son transformaciones de la imagen pixel a pixel, que no dependen solamente del nivel de gris de un determinado pixel, sino también del valor de los niveles de gris de los pixeles vecinos de la imagen original. El proceso del filtraje se realiza utilizando matrices denominadas mascaras, que son aplicadas sobre la imagen. La imagen resultante de la aplicación de un filtro es una nueva imagen. Los filtros sirven para visualizar o realzar detalles de la imagen, o inclusive minimizar efectos de ruido.
Existen diferentes formas de filtrar las imágenes, enseguida se mencionara algunas de ellos:
*      Filtro gaussiano
*      Filtro mediana (rango de vecindades)
*      Filtro de suavizado direccional (preservación de bordes)
*      Filtro de suavizado conservador
*      Realce de contraste
*      Filtro por paso bajo
*      Filtro de paso alto
*      Filter SUSAN (Smallest Univalue Segment Assimilating Nucleus)
Operadores para la detección de bordes
La detección de esquinas y líneas se basan en los operadores de detección de bordes que se basan en las primeras y segundas derivadas.
En el análisis de objetos dentro de las imágenes resulta esencias poder distinguir entre el objeto de interés y el resto de la imagen.
A fin de la localización de puntos en los que se produce la variación de intensidad, se emplean métodos basados en los operadores derivados. Básicamente se tienen dos posibilidades: aplicar la primera derivada (gradiente) o la segunda derivada (laplaciana). En el primer caso se busca grande picos y en el segundo, pasos de respuesta positiva a negativa o viceversa.

Animación por computadora
Las animaciones son la simulación de una imagen en movimiento, un cloro ejemplo esta en las caricaturas tradicionales, en computación la animación por computadora se logra a través de varias imágenes modificadas significativamente y al momento de realizar una presentación se obtiene la animación.

Características de la animación en 3D
Una característica importante de la animación por computadora es que nos permite crear escenas “realmente” tridimensionales. Esto quiere decir que, a diferencia de la animación dibujada a mano, en una escena animada por computadora es posible cambiar el Angulo de la cámara y con esto, ver otra parte de la escena.
Otra ventaja es que puede reutilizar partes de la animación por separado, es decir, que se puede ver totalmente diferente de otro punto de vista de la cámara.
Debe considerarse en la animación tres dimensiones es la forma en que se detienen los cuerpos. Si a un modelo lo determinamos por completo, es decir, que todas las partes de su cuerpo se detengan al mismo tiempo, de lo contrario el movimiento no se verá realista.
Hay tres fases que componen una acción:
*      La anticipación
*      La animación realista
*      El flujo y continuidad entre acciones
Animación de cine
Las animaciones de cine se han vuelto muy populares, ya que han realizado muchas películas empezando por la de toy story, a partir de esta se han llevado a cabo tantas como para ser ganadoras de grandes premios por la formas de las animaciones digitales.
Técnicas de animación
Algunas técnicas que se utilizan en la animación tradicional son las animaciones en acetatos, la animación basada en cuadros y la animación en sprite, en seguida se mencionaran algunas de ellas:
v  Key Frammig
v  Rotoscopiado
v  Motion Control
v  Wavelets
v  Técnicas de pixar

martes, 22 de noviembre de 2011

Iluminacion


ILUMINACIÓN LOCAL
·         Cálculos de iluminación por vértices
OpenGL calcula la iluminación en cada vértice, y obtiene una terna rgb que se usará para dar color a los polígonos (si se visualiza como sólido) o aristas (si se visualiza como alambre). El valor obtenido en cada vértice es la suma de cinco componentes:
  1. Emisión (E)
  2. Luz ambiental global (A1)
  3. Luz ambiental específica del polígono (A2)
  4. Reflexión difusa (D)
  5. Reflexión especular (S)
La formula final es la suma de todos los términos anteriores:
I   =  E  +  A1  +  A2  +  D  +  S
OpenGL calcula el valor de I para cada vértice del modelo, y usa esos colores para asignar un color a todos los pixels en los que se proyecta cada triángulo (se detalla como en la sección de sombreado).
En general, I depende de las características de las fuentes de luz definidas y las características del material asignado a los polígonos que se dibujen. OpenGL admite varias fuentes de luz, pudiéndose variar las características de cada una de ellas independientemente. La función glEnablepermite activar o desactivar la iluminación, así como activar o desactivar cada fuente de luz individualmente.
En adelante, una terna RGB o color es un conjunto de tres valores reales entre cero y uno, ambos incluidos. OpenGl permite especificar color con cuatro componentes, siendo la cuarta (llamada alpha) usada para manejar transparencias. En esta práctica, la componente alpha será siempre 1.

·         Renderizado en tiempo real
Renderizado (render en inglés) es un término usado en jerga informática para referirse al proceso de generar una imagen desde un modelo. Este término técnico es utilizado por los animadores o productores audiovisuales y en programas de diseño en 3D.
En términos de visualizaciones en una computadora, más específicamente en 3D, la renderización es un proceso de cálculo complejo desarrollado por un ordenador destinado a generar una imagen 2D a partir de una escena 3D. La traducción más fidedigna es interpretación, aunque se suele usar el término inglés. Así podría decirse que en el proceso de renderización la computadora interpreta la escena en tres dimensiones y la plasma en una imagen bidimensional.
La renderización se aplica en la computación gráfica, más comúnmente a la infografía. En infografía este proceso se desarrolla con el fin de imitar un espacio 3D formado por estructuras poligonales, comportamiento de luces, texturas, materiales (agua, madera, metal, plástico, tela, etcétera) y animación, simulando ambientes y estructuras físicas verosímiles. Una de las partes más importantes de los programas dedicados a la infografía son los motores de renderizado, los cuales son capaces de realizar técnicas complejas como radiosidad, raytrace (trazador de rayos), canal alfa, reflexión, refracción o iluminación global.
Cuando se trabaja en un programa de diseño 3D por computadora, normalmente no es posible visualizar en tiempo real el acabado final deseado de una escena 3D compleja ya que esto requiere una potencia de cálculo demasiado elevada, por lo que se opta por crear el entorno 3D con una forma de visualización más simple y técnica y luego generar el lento proceso de renderización para conseguir los resultados finales deseados. El tiempo de render depende en gran medida de los parámetros establecidos en los materiales y luces, así como de la configuración del programa de renderizado.
Normalmente cada aplicación de 3D cuenta con su propio motor de renderizado, pero cabe aclarar que existen plugins que se dedican a hacer el cálculo dentro del programa utilizando fórmulas especiales. En el caso de los videojuegos, normalmente se utilizan imágenes prerendereadas para generar las texturas y así ayudar al procesador de la consola a trabajar en el entorno virtual con mucha más fluidez.

ILUMINACIÓN GLOBAL
·          Trazado de rayos
El método de trazado de rayos (propuesto por Whitted como mejora del método de Ray Casting es una alternativa elegante y sencilla que permite calcular de una forma unificada la reflexión y la refracción de la luz, sombras, eliminación de superficies ocultas y otros efectos necesarios para conseguir escenas fotorrealistas. De este método surgieron aproximaciones más completas que resolvían de forma más exacta la ecuación de render, basándose en los mismos principios de trazado de los caminos que sigue la luz. Por esta razón, prestaremos especial atención a la descripción de este método.
La idea básica del trazado de rayos es seguir el camino de la luz desde las fuentes emisoras de fotones hasta que llegan a la posición del observador. La simulación del camino natural de la luz presenta el principal inconveniente de que la mayoría de los rayos nunca llegan al observador (o plano de imagen), lo que resulta computacionalmente prohibitivo. Este es el esquema de trazado de rayos hacia delante (forward RayTracing).
Para evitar trazar un número alto de rayos que no llegarán al plano imagen, y como solución sencilla a la discretización del espacio continuo en píxeles, se emplea el trazado de rayos hacia atrás (backward RayTracing), donde los rayos parten del plano imagen hasta alcanzar los objetos de la escena. La Figura 1 muestra un esquema general de los componentes básicos que forman un trazador de rayos hacia atrás.
Descripción: http://www.esi.uclm.es/www/cglez/fundamentos3D/imagenes/05.02.Fig01v2.gif
Figura 01. Esquema de funcionamiento del RayTracing.
Una de las principales características del método de RayTracing es el cálculo recursivo de la contribución de la luz debido a la reflexión y refracción que se produce en ciertas superficies. Así, definimos cuatro tipos de rayos:
  • Rayos Primarios o Visuales (V): Son los rayos que parten de la cámara virtual, pasando por cada uno de los píxeles en el plano de imagen. Para cada elemento de la escena se comprueba si el rayo visual intersecta con alguno de ellos, quedándonos con el punto de intersección más cercano de toda la lista de objetos.
  • Rayos de Sombra (S): Parten del punto de intersección con el objeto y tienen dirección hacia las fuentes de luz. De nuevo se realiza una prueba de intersección del rayo con todos los objetos de la escena para ver si hay algún objeto que corte su trayectoria, en cuyo caso el punto de origen del rayo estaría en sombra.
  • Rayos Reflejados (R): Si el objeto donde intersectó el rayo tiene propiedades de reflexión de tipo espejo, se generará un nuevo rayo reflejado en ese punto. Este rayo se construirá típicamente en un procedimiento recursivo, pasando a comportarse como un rayo primario en la siguiente iteración del algoritmo.
  • Rayo Transmitidos (T): En el caso de objetos en mayor o menor grado transparentes, y de forma análoga al tratamiento para los rayos reflejados, se generará un rayo transmitido. De igual forma, este nuevo rayo se comportará como un rayo primario en la siguiente iteración del algoritmo.

·          Radiosidad
Es un conjunto de técnicas para el cálculo de la iluminación global que tratan de resolver el problema básico de la renderización de la forma más realista posible en el campo de los gráficos 3D por computadora. Dicho problema es:
El transporte de la luz sólo se puede modelar de forma óptima considerando que cada fuente luminosa emite un número enorme de fotones, que rebotan al chocar contra una superficie describiendo una cantidad de trayectorias imposibles de simular en un computador.
Una de las técnicas empleadas en el cálculo de la radiosidad es el método de Montecarlo para resolver este problema mediante números aleatorios y de forma estadística.
El auge de la radiosidad y otros métodos eficientes de renderización han posibilitado un auge en la infografía, siendo muy habitual encontrar por ejemplo películas que aprovechan estas técnicas para realizar efectos especiales.

·         Cálculos de iluminación por pixel
·         Alto acabado
 
SOMBREADO CONSTANTE O PLANO
·          Un cálculo para todo el polígono
INTERPOLACIÓN DE INTENSIDADES (GOURAUD).
·          Calcula normales al polígono
·          Calcula normales a vértices
·          Calcula intensidad para el vértice
·          Interpola intensidades
INTERPOLACIÓN DE NORMALES (PHONG).
·          Calcula normales al polígono
·          Calcula normales a vértices
·          Interpola Normal para el pixel
·         Calcula intensidad para el


Un píxel o pixel, plural pixeles es la menor unidad homogénea en color que forma parte de una imagen digital, ya sea esta una fotografía, un fotograma de vídeo o un gráfico.

El raytracing o trazado de rayos es un algoritmo para síntesis de imágenes tridimensionales. Propuesto inicialmente por Turner Whitted en 1980, está basado en el algoritmo de determinación de superficies visibles de Arthur Appel denominado Ray Casting (1968).
En el algoritmo Ray Casting se determinan las superficies visibles en la escena que se quiere sintetizar trazando rayos desde el observador (cámara) hasta la escena a través del plano de la imagen. Se calculan las intersecciones del rayo con los diferentes objetos de la escena y aquella intersección que esté más cerca del observador determina cuál es el objeto visible.

Recortado de caras traseras esto se utiliza para poder  determinar con exactitud de la visibilidad del objeto.

Buffer de Profundidad esta aplicación es para que la imagen se vea de una forma profunda a través de sus líneas.

Buffer de Transparencia se utiliza cuando se colocan imágenes y en su interior hay otra y tiene que haber una trasparencia para que se pueda ver a través de él.

Buffer de Stenci se suele utilizar en dos etapas: uno se escribe en él, procesando los vértices de algún objeto o varios y dos se procesan los vértices de otros objetos utilizando el stencil como filtro de pixeles.

Buffer de acumulación es muy útil para el visualizado, consiste en promedia sobre el buffer de acumulación varias imágenes.

FUENTES DE LUZ
Fuentes de Color  no solamente las fuentes de luz emiten cantidad de luz en diferentes frecuencias, pero también sus propiedades direccionales varían con la frecuencia. Por lo tanto, un modelo físicamente correcto puede ser muy complejo. Para la mayoría de las aplicaciones, se puede modelar fuentes de luz en base a tres componentes primarios, RGB, y puede usar cada uno de los tres colores fuentes para obtener el componentes de color correspondiente que un observador humano vería.
Se describe una fuente una función de intensidad o luminancia de tres componentes:
Cada uno de los componentes es la intensidad de los componentes rojo, verde y azul independientes. Como las computadoras involucran tres cálculos similares pero independientes, se presentan ecuaciones escalares sencillas, con el mantenimiento de que pueden representar cualquiera de los tres colores.

Luz Ambiente
En algunos cuartos, as luces se diseña y ubican para proveer iluminación uniforme en el cuarto. Tal iluminación se logra mediante fuentes grandes con difusores cuyo propósito es esparcir la luz de todas las direcciones. Se puede crear una simulación precisa de tal iluminación, modelando todas las fuentes distribuidas, y luego integrando la iluminación de estas fuentes en cada una de la superficie reflectora. Hacer tal modelo y generar la escena sería una tarea formidable para un sistema gráfico, especialmente si se desea la ejecución en tiempo real.

Spotlights (direccionales) se caracterizan por un rango delgado por los cuales se emiten luz. Se puede construir un spothight sencillo de una fuente de punto limitando los ángulos de donde la luz de la fuente se puede ver. Se puede usar un cono cuyo ápice esta  en ps, apuntando en la dirección Is, y cuyo ancho está determinado por un ángulo ɵ, como se muestra en la siguiente imagen
 
Fuentes de Luz Distantes  la mayoría de los cálculos de sombreado requieren la dirección de un punto sobre la superficie a la fuente de lun. Según se mueve a los largo de la superficie, se debe re computar este vector para calcular la intensidad en cada punto, una computación que es una parte significativa del cálculo del sombreado. Sin embargo, si la fuente de la luz está lejos de la superficie, el vector no cambiara mucho según se mueve de un punto a otro, al igual que la luz del sol da en todos los objetos cercanos a este si con el mismo ángulo.

Intensidad Completa la intensidad completa exclusivamente por efectos de iluminación es la siguiente: