domingo, 10 de noviembre de 2013

Iluminación y sombreado

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.
1.            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 

Entendemos por modelo de iluminación el cálculo de la intensidad de cada punto de la escena.
En el cálculo de la intensidad de un punto intervienen:


  •     El tipo e intensidad de la fuente de luz
  •     El material del objeto
  •     La orientación del objeto con respecto a la luz
El modelo más utilizado es el modelo de Phong. 

PROCESO DE ILUMINACIÓN







  •  Si un rayo de luz entra al ojo directamente     de la fuente, se verá el color de la fuente.

  •   Si un rayo de luz pega en una superficie que es visible al observador, el color visto se basará en la interacción entre la fuente y el material de la superficie: se verá el color de la luz reflejado de la superficie a los ojos.




En término de gráfica por computadora, se reemplaza el observador por el plano de proyección, como se ve en la siguiente figura:


El recorte del plano de proyección y su mapeo a la pantalla significa un número particular de pixeles de despliegue. 

El color de la fuente de luz y las superficies determina el color de uno o mas pixeles en el frame buffer.
Se debe considerar solo aquellos rayos que dejan las fuentes y llegan al ojo del observador, el COP, después de pasar por el rectángulo de recorte.
Cuando la luz da en una superficie, parte se absorbe, y parte se refleja.


  • Si la superficie es opaca, reflexión y absorción significará de toda la luz que dé en la superficie.
  • Si la superficie es translúcida, parte de la luz será transmitida a través del material y podrá luego interactuar con otros objetos.
Un objeto iluminado por luz blanca se ve rojo porque absorbe la mayoría de la luz incidente pero refleja luz en el rango rojo de frecuencias.
Un objeto relumbrante se ve así porque su superficie es regular, al contrario de las superficies irregulares.

El sombreado de los objetos también depende de la orientación de las superficies, caracterizado por el vector normal a cada punto.

INTERACCIONES ENTRE LUZ Y MATERIALES


  • Superficies especulares
  • Superficies Difusas
  • Superficies difusas perfectas
  • Superficies translucidas

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.
Si se considera una fuente como en la siguiente figura, se le puede ver como un objeto con una superficie.

FUNCIÓN DE ILUMINACIÓN


Cada punto (x,y,z) en la superficie puede emitir luz que se caracteriza por su dirección de emisión (θ,Φ) y la intensidad de energía emitida en cada frecuencia λ. Por lo tanto, una fuente de luz general se puede caracterizar por la función de iluminación I(x, y, z, θ,Φ, λ) de seis variables.
Para una fuente de luz distribuida, como un foco de luz, la evaluación de este integral es difícil, usando métodos analíticos I numéricos.
A menudo, es mas fácil modelar la fuente distribuida con polígonos, cada una de las cuales es una fuente simple, o aproximando a un conjunto de fuentes de punto.
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

MODELO DE ILUMINACIÓN PHONG

Es un modelo empírico simplificado para iluminar puntos de una escena


  •  Los resultados son muy buenos en la mayoría de las escenas
  • En este modelo, los objetos no emiten luz, sólo reflejan la luz que les llega de las fuentes de luz o reflejada de otros objetos
El modelo usa cuatro vectores para calcular el color para un punto arbitrario sobre la superficie.
Si la superficie es curva, los cuatro vectores pueden cambiar según se mueve de punto a punto.



  1. El vector es la normal en p.
  2. El vector tiene dirección de al observador o COP.
  3. El vector tiene dirección de una línea de a un punto arbitrario sobre la superficie para una fuente de luz distribuida, o una fuente de luz de punto.
  4. El vector tiene la dirección de un rayo perfectamente reflejado de l. La dirección de está determinada por l.






El modelo Phong apoya los tres tipos de interacciones material-luz: ambiente, difusa y especular. Si se tiene un conjunto de fuentes puntos, con componentes independientes para cada uno de los tres colores primarios para cada uno de los tres tipos de interacciones material-   luz; entonces, se puede describir la matriz de iluminación para una fuente de luz para cada punto sobre una superficie, mediante:



  • La primera fila contiene las intensidades ambiente para rojo, verde y azul para la fuente i.
  • La segunda fila contiene los términos difusos.
  • La tercera fila contiene los términos especulares. (Aún no se ha aplicado ninguna atenuación por la distancia.)


REFLEXION DE AMBIENTE

La intensidad de la luz ambiente La es la misma sobre cada punto de la superficie. Parte de la luz es absorbida y parte es reflejada. La cantidad reflejada está dada por el coeficiente de reflexión de ambiente kaRa = ka. Como sólo se refleja una fracción positiva de luz, se debe tener

      0 ≤ ka≤ 1

y por lo tanto

      Ia= kaLa

Aquí, La puede ser cualquiera de las fuentes de luz individuales, o puede el término ambiente global.

Una superficie tiene tres coeficientes ambiente, kar, kag y kab, que pueden ser distintas. Por ejemplo, una esfera se vería amarilla bajo luz ambiente blanca si su coeficiente ambiente azul es pequeño y sus coeficientes rojo y verde son grandes.

EJEMPLO:

REFLEXION DIFUSA

Un reflector difuso perfecto esparce la luz que refleja de manera igual en todas las direcciones, viéndose igual para todos los observadores. Sin embargo, la cantidad de luz reflejada depende del material, dado que parte de la luz es absorbida, y de la posición de la fuente de luz relativa a la superficie. Reflexiones difusas son caracterizadas por superficies rugosas, como se ve en la siguiente figura (corte trasversal):

Se considera una superficie plana difusa iluminada por el sol, como se muestra en la siguiente figura:

La superficie se vuelve mas brillante al mediodía, y menos durante la madrugada y la puesta, dado que, según la ley de Lambert, solo se ve el componente vertical de la luz entrante. Para comprender esta ley, se considera una fuente de luz paralela pequeña pegando en un plano, como se muestra en la siguiente figura:
Según la fuente baja en el cielo (Artificial), la misma cantidad de luz se esparce sobre una área mas grande, y la superficie parece oscurecerse.
Se puede caracterizar reflexiones difusas matemáticamente. La ley de Lambert dice que:
   Rd  cosθ

Donde θ es el ángulo entre la normal n en el punto de interés y la dirección de la fuente de luz l. Si l y n son ambos vectores unidad, entonces
 cosθ = l  n

Si se agrega un coeficiente de reflexión kd que representa la fracción de luz difusa entrante que es reflejada, se tiene el siguiente término de reflexión
 Id= kd (l  n) Ld 0 ≤ kd≤ 1

Si se desea incorporar el término de distancia, para considerar la atenuación de la luz según esta viaja una distancia d desde la fuente a la superficie, se puede agregar el término cuadrático de atenuación:




EJEMPLO: 


REFLEXION ESPECULAR

Si se emplea solo reflexiones ambiente y difusas, las imágenes serán sombreadas y aparecerán tridimensionales, pero todas las superficies se verán sin vida. Lo que hace falta son la reflexión de secciones más brillantes en los objetos. Esto ocasiona un color diferente del color del ambiente reflejado y luz difusa. Una esfera roja, bajo luz blanca, tendrá un resplandecer blanco que es la reflexión de parte de la luz de la fuente en la dirección del observador.
Mientras que una superficie difusa es rugosa, una superficie especular es suave. Mientras mas lisa se la superficie, mas se parece a un espejo, como se ve en la siguiente figura.



Según la superficie se hace mas lisa, la luz reflejada se concentra en un rango mas pequeño de ángulos, centrado alrededor del ángulo de un reflector perfecto: un espejo o una superficie especular perfecta. Modelar superficies especulares realísticas puede ser complejo, ya que el patrón por el cual se esparce no es simétrico, dependiendo de el largo de onda de la luz incidente y cambia con el ángulo de reflexión
Phong propuso un modelo aproximado que puede computarse con solo un pequeño incremento en el trabajo para superficies difusas. El modelo agrega un término para reflexión especular. Se considera la superficie como rugosa para el término difuso u lisa para el término especular. La cantidad de luz que el observador ve depende del ángulo ø entre r, la dirección de un reflector perfecto, y v, la dirección del observador. El modelo de Phong usa la ecuación

                            Is= ks Ls cosα φ                                         0 ≤ ks ≤ 1

El coeficiente ks (0 ≤ ks ≤ 1) es la fracción reflejada de la luz especular entrante. El exponente α es el coeficiente de brillantez.

La siguiente figura muestra como, según se incrementa a, la luz reflejada se concentra en una región mas delgada, centrada en el ángulo de un reflector perfecto.


En el límite, según α tiende a infinito, se obtiene un espejo; valores entre 100 y 500 corresponden a la mayoría de las superficies metálicas, y valores menores (<100) corresponden a materiales que muestran brillantez gruesa.
La ventaja computacional del modelo de Phong es que, si se normaliza a valores unitarios, se puede usar el producto punto, y el término especular se vuelve

Se puede agregar el término de distancia, como se hizo con las reflexiones difusas. Finalmente, se refiere al modelo Phong, incluyendo el término de distancia, a la siguiente ecuación:


Esta fórmula se computa para cada fuente de luz y para cada primaria.



El modelo de Phong se ha hecho en espacio de objetos. El sombreado, sin embargo, no se hace hasta que los objetos hayan pasado por las transformaciones modelo-vista y proyección. Estas transformaciones pueden afectar los términos de coseno en el modelo.

EJEMPLO:
EJEMPLO ILUMINACIÓN PHONG:



4.3 Técnicas de sombreado

Iluminación Local.

Luces que no son extensas, como las reales, sino inextensas, puntuales. Y, por añadidura, se relacionan con los objetos como mónadas aisladas, sin tener en cuenta la interacción entre ellos. Esto explica lo artificioso de muchas de las técnicas que se describirán más adelante y que buscan compensar estas limitaciones.

Las insuficiencias de los métodos de iluminación local se han superado en parte por medio de sistemas de iluminación global que permiten tomar en cuenta la interacción entre objetos. Las dos técnicas principales son el trazado de rayos (ray tracing) y la radiosidad (radiosity)


Rellenado de los triángulos (rastering). Para ello se realizan varias fases de procesamiento por Pixel.
Comprobar si cada nuevo pixel es visible o no (comprobación de profundidad).
Interpolación lineal del color para el nuevo pixel (método de Gouraud).
Si existe una textura definida o transparencia, efectuar la modificación de color correspondiente.
;Se trata de la última fase, en ocasiones la más costosa, del proceso, por lo que es la primera que se suele integrar en el hardware gráfico. En esta etapa se trata de asignar colores a los pixels correspondientes al interior de cada triángulo proyectado que cae dentro del área de visualización. Los colores asignados deben calcularse por el método de Gouraud, interpolando linealmente entre los colores de los tres vértices.


Renderizado en Tiempo real

La idea fundamental del procesado en tiempo real es que todos los objetos deben ser descompuestos en polígonos. Estos polígonos serán descompuestos a su vez en triángulos. Cada triángulo será proyectado sobre la ventana bidimensional y rellenado con los colores adecuados para reflejar los efectos de la iluminación, texturas, etc. Una vez se han generado los triángulos, en la pipeline existen dos partes claramente diferenciadas: una primera etapa operaciones realizadas sobre cada uno de los vértices, y después de que éstos se proyecten sobre la ventana, entonces comienza una segunda fase de cálculos realizados para cada pixel cubierto por los triángulos.

Iluminación global.

Son sencillos y rápidos pero proporcionan imágenes muy simples, que no representan adecuadamente el modo en que la luz ilumina los objetos y los espacios. Esto no quiere decir que no sean útiles para un gran número de casos, y es muy importante calibrar adecuadamente que es lo que se necesita, pues puede muy bien ocurrir que un cálculo local proporcione imágenes relativamente esquemáticas pero más adecuadas para la representación de un proyecto.

Los métodos principales que existen en la actualidad pueden considerarse como desarrollos, con diferentes variantes, de los dos métodos principales que surgieron en la década de los 1980, ray tracing (introducido por T.Whitted en 1980) y radiosity (hacia 1984 por varios autores). Una base téorica más firme para los algoritmos y métodos de GI (Global Illumination), vino con la publicación, por Kajiya, en 1986 de la rendering equation, que puede encontrarse en un manual especializado

Trazado de Rayos

   El trazado de rayos computa la interacción de la luz desde un punto de vista determinado y es particularmente adecuado para superficies reflectantes. Puede utilizarse como propiedad específica de un determinado material

Radiosidad

     Está basado en principios generales que se pueden encontrar en un manual general sobre rendering. En el estadio inicial la escena consta de dos tipos de objetos: objetos que emiten luz y objetos que reciben luz. A partir de aquí, en una primera vuelta, se computa la luz que recibe cada objeto o, en una aproximación más exacta, cada parte de un objeto, según una subdivisión cuya densidad puede precisarse en sucesivas aproximaciones. Cada una de estas partes, según su grado de reflexividad, su orientación y su distancia con respecto a las fuentes de luz original, se convertirá, en una segunda vuelta, en un nuevo emisor de energía lumínica, una fuente de luz secundaria que iluminará a su vez a los objetos que le rodean.

Casi todos los modelos de iluminación necesitan conocer la normal de cada superficie para calcular su color.

     El primero, llamado método de Gouraud, efectúa una interpolación a partir de los colores calculados por los vértices del polígono, en los que se conoce la normal. El segundo llamado método de Pong, interpola la normal en el punto en estudio a partir de las normales en los vértices, calculando a continuación el color con la ayuda de esta normal según el modelo de iluminación elegido


Modelo de Reflexión Phong

     El modelo de reflexión de Phong es eficiente y suficientemente aproximado a la realidad física para producir buenas imágenes, bajo una variedad de condiciones de luz y propiedades de materiales. Apoya los tres tipos de interacciones material-luz: ambiente, difusa y especular. Si se tiene un conjunto de fuentes puntos, con componentes independientes para cada uno de los tres colores primarios para cada uno de los tres tipos de interacciones material-luz.


Ray Tracing

     En muchas formas, ray tracing es una extensión al enfoque de rendering con un modelo de iluminación local. Está basado en la observación previa que, de los rayos de luz saliendo de una fuente, los únicos que contribuyen a la imagen son aquellos que entran el lente de la cámara sintética y pasan por el centro de proyección.

Buffer de Profundidad.

     El Z-Buffer se basa en que al generar la posición de un punto en la pantalla la computadora reserve una zona de memoria especial, llamada Z-Buffer, información relacionada con la profundidad del punto que ocupa en la escena representada. Cuando el ordenador representa un nuevo punto consulta el Z-Buffer del píxel que corresponde en pantalla. Si el valor que ya existe en el píxel es mayor que el que posee el nuevo punto, el sistema asume que este último es el visible y lo sustituye en la memoria del Z- Buffer.

Buffer Stencil.

     Stencill Buffer es una memoria intermedia que analiza y actualiza píxeles (con sus operaciones) junto con “depth buffer” o buffer de profundidad. Añade planos de bits adicionales para cada píxel además de los bits de color y profundidad.

     Stencil buffer es similar al buffer de profundidad en que los dos son colección de planos de bit que no se pueden mostrar. Del mismo modo que el buffer de profundidad asocia a cada píxel de la ventana un valor de profundidad, el stencil buffer asocia su propio valor a cada píxel mostrado. Cuando el buffer de profundidad esta activado los valores de profundidad son usados para aceptar o rechazar fragmentos, del mismo modo los valores de Stencil buffer son usados para aceptar o rechazar fragmentos.

Buffer de Acumulacion

     Normalmente se usa un buffer de acumulación para unir las 2 imágenes


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. Este aspecto no será tomado en cuenta en los modelos más sencillos.


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 luz. Según se mueve a lo largo de la superficie, se debe recomputar 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 luz está lejos de la superficie, el vector no cambiará mucho según se mueve de un punto a otro, al igual que la luz del sol da en todos los objetos cercanos entre si con el mismo ángulo.


Fuentes de Color

     No solamente las fuentes de luz emiten diferentes cantidades de luz en diferentes frecuencias, pero también sus propiedades direccionales varían con la frecuencia. Por lo tanto, un modelos 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 componente de color correspondiente que un observador humano vería.


Luz Ambiente

     La luz ambiente ilumina por igual todas las zonas en sombra para simular el efecto de interacción entre objetos que hace que las partes en sombra de los objetos queden parcialmente iluminadas.

     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 un 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. Si se sigue este segundo enfoque, se puede postular una intensidad ambiente en cada punto del ambiente. Por lo tanto, iluminación ambiente se caracteriza por una intensidad Ia, que es idéntica en cada punto de la escena.

Spotlights (direccionales)

Los spotlights se caracterizan por un rango delgado de ángulos por los cuales se emite luz. Se puede construir un spotlight 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 está en ps, apuntando en la dirección ls, y cuyo ancho está determinado por el ángulo θ.

Intensidad completa

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



Conclusión

Esta cuarta unidad de graficación es solo para marcar los temas de técnicas de relleno, iluminación y sombreado que no son mas que los detalles finales que les daremos a nuestros proyectos e imágenes.

Como podemos darnos cuenta existen diversas técnicas que podemos aplicar de las cuales la correcta manipulación y ocupación de los mismo nos darán como resultado una mejor presentación de nuestra imagen.

La finalidad de utilizar esta herramientas y/o técnicas es tener una imagen en 3D mas real., por que como se ha platicado y se ha dado a conocer en unidades anteriores tenemos que: la realidad en 3D depende en su mayoría de la iluminación, profundidad y sombreado que le demos a nuestras imágenes para hacerlas mas realistas.


Bibliografia


No hay comentarios:

Publicar un comentario