Clásicas:
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)
Cálculos
de iluminación por vértices
Para poder aplicar iluminación necesitamos asociar
a cada vértice de nuestro objeto un vector normal asociado. Cuando tenemos la
normal calculada tenemos que normalizarla, o sea, dividir ese vector por su
propio modulo para que sea unitario, pero también podemos hacer que se encargue
la OpengGl activando la normalización, glEnable GL_NORMALIZE o desactivarla
con, glDisable GL_NORMALIZE el usar GL_NORMALIZE dependerá de nuestra
aplicación ya que forzando a que sea OpenGl que las utilice se ralentiza ya que
le estamos hacer mas cálculos de los que debe. Para definir las normales en
opengl utilizaremos la función glNormal3f(X,Y,Z) por ejemplo para definir una
cara con 4 vértices la definiremos de la siguiente manera GlBegin GL_QUADS
1. glNormal3f
nX,nY,nZ
2. glvertex3f
x,y,z
3. glvertex3f
x,y,z
4. glvertex3f
x,y,z
5. glvertex3f
x,y,z
6. glEnd
Es decir, cada vez que queremos definir una normal
a un vértice usamos glNormal y el vértice/s que siguen se asocian a esta
normal.
La luz de tipo SMOOTH el polígono que
definamos tendrá un color definido par cada vértice, asociando las normales a
los vértices OpenGL puede hacer los cálculos de los colores a cada uno del
vértice y después hace una interpolación de colores con este tipo de luz se
acerca bastante al realismo pero a un la podemos mejorar.
Posterior
relleno de triangulos
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.
Realistas:
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.
Cálculos
de iluminación por pixel
Iluminación por fragmento (por pixel) puede ser
elaborada en hardware de gráficos moderno como un proceso de post-rasterización
por medio de un programa de shader.
Pixel Shader (PS) como un pequeño programa que
procesa fragments (algo así como pixelscon más datos) y que se ejecuta en la
GPU. Al crear un PS, se crea una función de procesado de fragmentos que
manipula datos de fragmentos.
Frecuentemente necesitan datos del VS, llegando
incluso a veces a ser “conducidos” por éste. Por ejemplo, para calcular una
iluminación por pixel, el PS necesita la orientación del triángulo, la
orientación del vector de luz y en algunos casos la orientación del vector de
vista.
Alto
Acabado. Sombreado Constante o plano. Un
cálculo para todo el polígono. Obtenemos una intensidad que aplicamos a
un conjunto de puntos de un objeto (p.ej. todo un triángulo). Aceleramos el
proceso de síntesis. Correcto si se verifica: Fuente de luz en el infinito.
Observador en el infinito. El polígono representa una superficie plana real del
objeto que se modela y no es una aproximación de un objeto curvo.
Sombreado Constante o Plano. Obtenemos
una intensidad que aplicamos a un conjunto de puntos de un objeto
*Aceleramos
el proceso de síntesis
*Correcto
si se verifica.
*
Fuente de luz en el infinito
*Observador
en el infinito
Un
cálculo para todo el polígono. Obtenemos una intensidad que
aplicamos a un conjunto de puntos de un objeto (p.ej. todo un triángulo).
1.
Aceleramos el proceso de síntesis.
2.
Correcto si se verifica
3.
Fuente de luz en el infinito
4.
Observador en el infinito
5.
El polígono representa una superficie
plana real del objeto que se modela y no es una aproximación de un objeto
curvo.
Interpolación
de Intensidades (Gouraud)
Se basa en la interpolación de intensidad o color.
Considera que facetas planas vecinas proceden de aproximar una superficie curva
(salvo que se declare una arista real entre ambas).
1.
Elimina en gran medida las
discontinuidades de iluminación
2.
Es sencilla, pero produce peores
resultados en objetos con brillos especulares que el
método de Phong
3.
Implementado en OpenGL
Fuentes
de Luz. La luz puede dejar una superficie mediante dos
procesos fundamentales:
1.
Emisión propia
2.
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 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 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 θ.
Conclusión
Es muy importante
saber las técnicas de rellenado que existen esto para poder darle el efecto de
relleno a nuestro objetos, no es lo mismo rellenar un poligono con una técnica
para que el realce sea en conjunto con una técnica de iluminación.
Esto nos ofrece
mostrar imágenes de calidad, en cuanto a sus matices.
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