UNIDAD IV

4.1 RELLENO DE POLÍGONOS




     Polígono es una figura básica  dentro de las representaciones y tratamiento de imágenes bidimencionales y su utilización es muy interesante para modelar objetos del mundo real.
     En un sentido amplio, se define como una región del espacio delimitada por  un conjunto de lineas (aristas) y cuyo interior puede estar rellenado por un color o patrón dado.
  
CASOS DE RELLENO SEGÚN SU COMPLEJIDAD



  El caso mas sencillo de relleno es el triangulo.
  Luego sigue el relleno de polígonos convexos de N-lados.
  Relleno de polígonos cóncavos.


MÉTODO DE RELLENO DE POLÍGONOS CON  COLOR

  • SCAN-LINE

  • INUNDACIÓN


  • FUERZA BRUTA

  • PATRÓN


SCAN-LINE




  Fila a fila van trazando lineas de color entre aristas.
  • para scan-line que cruce el polígono se busca en la intersección entre las lineas de barrido y las aristas del polígono.
  • Dichas intersecciones se ordenan y se rellenan a pares.


LINEA DE BARRIDO


     Es valido para polígonos cóncavos como convexos. Incluso para si el objeto tiene huecos interiores.
     Funcionan en el trozo de lineas horizontales, denominadas lineas de barridos, que intersectan un numero de veces, permitiendo a partir de ella identificar los puntos que se consideran interiores al polígono.

INUNDACIÓN

  • Empieza en un interior y pinta hasta encontrar la frontera del objeto.
  • Partimos de un punto inicial (x,y), un colo de relleno y  un color de frontera.
  •  El algoritmo va testeando los píxeles vecinos a los ya pintados, viendo si son frontera o no.
  • No solo sirven para polígonos, sino para cualquier área curva para cualquier imagen AE se usan los programas de dibujo.


FUERZA BRUTA

  • Calcula una caja contenedora del objeto.
  • Hace un barrido interno de la caja para comprobar c/pixel este dentro del polígono.
  • Con polígonos simétricos basta con que hagamos un solo barrido en una sección y replicar los demás pixeles.
  • Requiere aritmética punto-flotante, esto lo hace preciso y costoso.




RELLENO MEDIANTE UN PATRÓN


     Un patrón viene definido por el área rectangular en el que cada punto tiene determinado color o novel de gris. Este patrón debe repetirse de modo periódico dentro de la región a rellenar. Para ello debemos establecer una relación  entre los puntos del patrón y los pixeles de la figura. En definitiva debemos determinar la situación inicial del patrón respecto a la figura de tal forma que podamos establecer una correspondencia entre los pixeles interiores al polígono y los puntos del patrón.



ALTERNATIVAS PARA LA SITUACIÓN INICIAL DEL PATRÓN


Consiste en situar el punto asociado a la esquina superior izquierda del patrón en un vértice del polígono.
Considerar la región a rellenar en toda la pantalla y por lo tanto el patrón se citua en el origen de esta (esquina superior izquierda).

EJEMPLO DE SCAN-LINE

  • Encontrar las intersecciones de los scanlines en el polígono.
  • Almacenar las intersecciones en alguna estructura de datos ET (edge table), de manera ordena ascendiente en Y y en X  en  buckets.
  • Rellenar los spans usando la estructura.
  • Usar algún criterio de paridad para saber cuando un intervalo debe ser rellenado o no.






4.2 Modelos básicos de iluminación.




Luz ambiental:


Corresponde al modelo en el cual cada objeto se presenta con una intensidad intrínseca. Se puede considerar este modelo, que no tiene una fuente de luz externa,
como la descripción de un mundo ligeramente irreal de objetos no reflejantes y autoluminosos.
Un modelo de iluminación se puede expresar con una ecuación de iluminación 
de variables asociadas con el punto en el objeto que se sombrea. 
La ecuación de iluminación que expresa este sencillo modelo es:
I = Ki

Donde I es la intensidad resultante y el coeficiente Ki es la intensidad 
intrínseca del objeto.
En un lugar de Autoluminosidad hay una fuente luminosa difusa no direccional, producto de reflexiones múltiples de la luz en las superficies presente en el ambiente.
 Esto se conoce como luz ambiental. Si suponemos que la luz ambiental afecta de la misma forma a todas las superficies desde todas las direcciones, nuestra ecuación se convierte en:
I = Ia * Ka
Donde,
Ia es la intensidad de la luz ambiental (constante para todos los objetos); y,
Ka es la cantidad de luz ambiental reflejado por la superficie de un objeto, 
su valor está entre 0 y 1 y se conoce como el Coeficiente de Reflexión 
Ambiental. Este valor es una propiedad material no una propiedad física.

Reflexión difusa:
En este caso se requiere una fuente luminosa puntual cuyos rayos emanan uniformemente en todas las direcciones a partir de un único punto. La brillantez de 
un objeto varia de una parte a otra, dependiendo de la dirección y la 
distancia de éste con respecto a la fuente luminosa.

  
Reflexión Lambertiana:



Se trata de superficies que aparecen con la misma brillantez desde todos los ángulos de observaciones, pues reflejan la luz con igual intensidad en todas las 
direcciones.
En segundo lugar, se debe considerar la cantidad de luz que ve el observador. 
Las superficies lambertianas tienen la propiedad de que la cantidad de luz que reflejan hacia el observador en un área diferencial dA es directamente proporcional al coseno del ángulo entre la dirección al observador y el vector normal N, esto es independiente del material.

I = Ip * Kd * cos φ = Ip * Kd * (N • L)
N y L son vectores normalizados, N normal a la superficie en el punto a 
calcular y L apuntando a la fuente de luz.
Ip es la intensidad de la fuente luminosa puntual.
Kd es el coeficiente de reflexión difusa del material, el cual es una constante 
entre 0 y 1 y varía de un material a otro.
El ángulo φ debe estar entre 0º y 90º para que tenga efecto directo en el punto sombreado (superficie autocluyente).


Reflexión especular:

La reflexión especular se puede observar en cualquier superficie brillante.
En un espejo perfecto α = 0, sólo en la dirección del vector R se puede ver la reflexión de la luz (reflecto perfecto). En este caso el vector V representa la 
dirección del observador.



Modelo de Phong:

Phong Bli-Tong desarrolló un modelo de iluminación para reflectores imperfectos. 
El modelo supone que la máxima reflectancia especular ocurre cuando α es cero y decrece rápidamente conforme aumenta α. Esta caída rápida se aproxima por cosnα, donde n es el exponente de reflexión especular del material.

La cantidad de luz incidente que se refleja especularmente depende del
 ángulo de incidencia θ. Si W(θ) es la fracción de luz reflejada especularmente, 
el Modelo de Phong queda:
I = Ia * K+ fatt * Ip * [Kd * cosθ + W(θcosnα]
Si se utilizan vectores normalizados (R y V), si Ks, que corresponde al coeficiente de reflexión especular del material, reemplaza a W(θ, conservando su valor, el que varía entre 0 y 1, seleccionándolo empíricamente para producir resultados atractivos y si, además, se consideran los componentes de un modelo de colores (Odλ) de la luz difusa, entonces el modelo de Phong queda:

Iλ = Iaλ Ka * Odλ + fatt * Ipλ [Kd * Odλ (N•L) + Ks * (R•V)n]

donde
Odλ Componente difuso perteneciente a la longitud de onda λ.
Iaλ Componente λ de la iluminación ambiental
Ipλ Componente λ de la iluminación puntual que produce reflexión difusa y especular. 



Fuentes Luminosas Múltiples:



Si se suman m fuentes luminosas, los términos de cada una de ellas deben agregarse a la fórmula, quedando esta como:
Iλ = Iaλ * K* Odλ + Σ i=1,n (fatti * Ipλ* [K* Odλ * (N•L) + Ks (Ri•V)n]) 



4.3 TECNICAS DE SOMBREADO

Clásicas: Modelo de iluminación local

Son aquellos en los que se considera que la intensidad de luz en un punto de la superficie de un objeto se debe exclusivamente a las Fuentes luminosas. 

Renderizado en Tiempo Real



La  renderización es el proceso de generar una imagen desde un modelo, y  se suele 
aplicar 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, canal alfa, reflexión, refracción o iluminación global.
Cuando se trabaja en un  programa de diseño  3D asistido por ordenador, 
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.

Realistas: Modelo de iluminación global


Son aquellos en los que se considera que la intensidad de luz en un punto de la superficie
 de un objeto se debe a las fuentes luminosas y al resto de los elementos existentes en la escena.

Trazado de rayos



Consiste en que –teniendo la posición y atributos físicos de cada uno de los objetos a
 iluminar, así como la situación, intensidad y tipo de fuentes de luz que iluminan los
 objetos, junto con la posición del observador y la del plano de proyección de la imagen 
(la pantalla), y el modo de iluminación o cálculo del color en un punto de la superficie
 de un objeto- se traza un rayo desde la posición del observador a través de cada uno
 de los píxeles del plano de proyección (una de las ventajas del raytracing es que los
 rayos que se procesan son sólo los rayos que parten del observador ), y por cada
 uno de estos rayos trazados se busca si interseca con alguno de los objetos que
 se representan; si no se encuentra ninguna intersección, para ese pixel, no se
 sigue el proceso y se le hace corresponder, por defecto, un color de fondo.  
Si el rayo se encontrara con un objeto, se analizan los atributos físicos que 
tiene asignado el objeto y se resuelve según la modelización de la iluminación, 
calculando su color en el punto del objeto donde interseca el rayo.

Radiosidad


El método de radiosidad, consiste en que las reflexiones de la luz sobre los objetos se tratan como reflexiones difusas ideales de tal manera que la modelización de los efectos ópticos, como la de los espejos, por ejemplo, no se realiza. Este método hace aquello que no realiza el trazado de rayos. Para este método, los materiales de los objetos tienen superficies mate que no producen reflexiones espectaculares, por lo que la parte de energía que les llega, y que no haya sido absorbida por la superficie, se refleja por igual a lo largo de toda esta superficie del objeto. 

Cálculos de iluminación por pixel
Antes de que el color final del píxel sea decidido, un cálculo de iluminación debe ser computado para sombrear a los píxeles basados en alguna luz que puede estar presente en la escena.

Sombreado Plano o Constante


Los tres vectores, l, n y v, pueden variar según se va entre puntos sobre una superficie.
• Para un polígono plano, n es constante.
• Si se asume un observador distante, v es constante sobre el polígono.
• Si la fuente de luz es distante, l es constante.
Si los tres vectores son constantes, entonces el cálculo de sombreado se lleva a cabo una sola vez para cada polígono, y se asignará la misma sombra a cada punto en el polígono.
Sombreado plano mostrará diferencias de sombreado entre los polígonos.

Sombreado Gouraud


En el sombreado Gouraud, se define la normal en un vértice como el promedio normalizado de las normales de los polígonos que comparten el vértice.
Desde la perspectiva de OpenGL, el sombreado Gouraud es sencillo. Se necesita solamente asignar correctamente las normales de vértices. Sin embargo, existe un problema, encontrar las normales para promediar. Si el programa es lineal, especificar una lista de vértices (y otras propiedades), no se tiene la información necesaria de cuales polígonos comparten un vértice. Lo que se requiere es una estructura de datos para representar un "mesh". Atravesar esta estructura de datos puede generar los vértices con las normales promediadas. Tal estructura de datos debe contener, de manera mínima, polígonos, vértices, normales, y propiedades de los materiales.

Sombreado Phong


Phong propuso que, en lugar de interpolar intensidades de los vértices, se interpole normales a lo largo del polígono. Para un polígono que comparte lados y vértices con otros polígonos.
Se puede computar normales en los vértices interpolando sobre las normales de los polígonos que comparten el vértice. Luego, se puede usar interpolación bilineal, para interpolar las normales sobre el polígono.
Una vez obtenidas las normales en cada punto, se puede hacer cálculos de sombreado independientes. Normalmente, este proceso se combinará con la rasterización del polígono.
Sombreado Phong producirá imágenes mas suaves que con el sombreado Gouraud, pero a un costo computacional mayor.

Recortado de caras traseras




 En una escena, los objetos se tapan a sí mismos y entre sí, quedando siempre partes ocultas al observador.
Las partes ocultas deben ser eliminadas de posteriores operaciones: proceso de visibilidad.
El proceso de visibilidad es complejo, por lo que existen numerosas soluciones.
 Técnicas implicadas:
  • Cálculo de normales
  • Ordenación
  • Algoritmos de visibilidad
  • Aceleración por coherencia


Técnicas de aceleración
o    Eliminación de caras traseras
o    Coherencia
o    Contenedores
Algoritmo fundamental en el espacio de la imagen: trazado de visuales (ray casting)
Algoritmos más conocidos:
Z- Buffer
Prioridad en lista
Scan- Line

Buffer de Profundidad


El z-buffering, o el buffer de profundidad es la parte de la memoria de nuestra tarjeta gráfica encargada de la visibilidad de nuestros gráficos 3D según las coordenadas de sus pixeles, con lo que se puede gestionar qué elementos de una escena renderizada son visibles y cuales permanecerán ocultos según sus posiciones en el eje Z (distancia a cámara).
En definitiva lo que se hace es comparar las profundidades de ambos gráficos para representar el objeto más cercano al observador. La profundidad elegida se guardará en el z-buffering reemplazando a la anterior.

Transparencias

La implementación de la transparencia en un programa OpenGL no suele ser sencilla. Podemos combinar los colores de los objetos para una escena simple que contenga unas pocas superficies opacas y transparentes utilizando el valor de mezcla alpha para especificar el grado de transparencia y procesando las superficies según su orden de profundidad. Pero las operaciones de mezcla de color OpenGL ignoran los efectos de refracción, y el manejo de superficies transparentes en escenas complejas con una diversidad de condiciones de iluminación o con animaciones puede resultar muy complicado. 


Buffer de Stencil




Stencill Buffer es una memoria intermedia que analiza y actualiza píxeles (con sus operaciones) junto con buffer de profundidad.  Añade planos de bits adicionales para cada píxel además de los bits de color y profundidad.
Stencil Buffer se puede pensar que simplemente etiqueta los píxeles en la interpretación o renderización de la escena en la pantalla para controlar las siguientes interpretaciones. Los pasos son siguientes:
1.    Dada una escena con una sombra fija. Los píxeles de la escena se podrían considerar con “dentro” de la sombra o “fuera”. Asumimos que podemos etiquetar cada píxel apropiadamente.
2.    Cuando los píxeles ya son etiquetados, actualizamos los píxeles etiquetados como “dentro” de la sombra. Y renderizamos la escena con la fuente de luz desactivada.
3.    Después actualizamos los píxeles etiquetados como “fuera” de la sombra.Activamos la luz y renderizamos otra vez.


Buffer de acumulación




El buffer de acumulación sirve para capturar el buffer de color en un fotograma y aplicarle acumulaciones del color de otro fotograma/s. Esto básicamente sirve para simular el efecto de estela que deja un objeto cuando se mueve muy rápidamente en el encuadre de la cámara.

Fuentes de Luz




La luz puede dejar una superficie mediante dos procesos fundamentales:
• Emisión propia
• Reflexión
Normalmente se piensa en una fuente de luz como un objeto que emite luz solo mediante fuentes de energía internas, sin embargo, una fuente de luz, como un foco, puede reflejar alguna luz incidente a esta del ambiente.
Se considerarán cuatro tipos básicos de fuentes, que serán suficientes para generar las escenas más sencillas:
1. Luz ambiente
2. Fuentes de punto
3. Spotlights (Luces direccionales)
4. Luces distantes

Fuentes de color




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 componente de color correspondiente que un observador humano vería.
Se describe una fuente mediante 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.


Luz Ambiente





Como el modelo de iluminación es local, las partes que no están iluminadas por una fuente de luz se verían totalmente negras. Para evitar esto, se supone que hay una iluminación uniforme que es el promedio de la luz reflejada por los objetos, a la que llamamos ambiental. 
En algunos cuartos, las luces se diseñan 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 en 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 punto de una superficie reflectora. Hacer tal modelo y generar la escena sería una tarea formidable para un sistema gráfico, especialmente si se desea ejecución en tiempo real. De manera alternativa, se puede ver el efecto deseado de las fuentes: lograr un nivel de luz uniforme en el cuarto. Esta iluminación uniforme se llama luz ambiente.




CONCLUSIÓN:


La iluminación nos hace ver a detalle los efectos, características mínimas del objeto además de que podemos persivir la  sensación de realismo en el objeto.
Estas técnicas son muy importantes en la realidad virtual, y simulación ya 

 que ese tipo de escenarios lo que queremos visualizar es que  nuestro escenario se vea lo 
mas real y parecido a la realidad posible.
para llevar a cabo que un objeto tenga algo de realismo necesitamos aparte de la iluminación un tipo de sombreado para que nuestro objeto tenga mas vida y sea lo mas acercado a la realidad 



BIBLIOGRAFÍA:

http://www.acta.es/medios/articulos/informatica_y_computacion/055061.pdf
https://sites.google.com/site/tgcutn/Clases/unidad-4---texturas-e-iluminacion
http://graficacionz0r3th.blogspot.mx/2013/11/42-modelos-basicos-de-iluminacion.html
http://graficacionporcomputadora.blogspot.mx/2013/05/41-relleno-de-poligonos.html
http://books.google.com.mx/books?id=ObHAZY484-EC&pg=PA88&dq=iluminacion+y+sombreado+graficacion+relleno+de+poligonos&hl=es-419&sa=X&ei=ol6FUd6ANImg9QTl5IDoBA&ved=0CDQQ6AEwAA#v=onepage&q=iluminacion%20y%20sombreado%20graficacion%20relleno%20de%20poligonos&f=false



No hay comentarios:

Publicar un comentario