jueves, 3 de mayo de 2012
Unidad IV "Iluminación y sombreado"
¿Como se colocan los rellenos de poligonos en OpenGL?
Para elegir el color de los polígonos, basta con hacer una llamada a glColor entre la definición de cada polígono.
glBegin(GL_TRIANGLES);
glColor3f(1.0f, 0.0f, 0.0f);
glVertex3f(0.0f,0.0f, 0.0f);
glVertex3f(2.0f,0.0f, 0.0f);
glVertex3f(1.0f,1.0f, 0.0f);
glColor3f(0.0f,1.0f, 0.0f);
glVertex3f(-1.0f,0.0f, 0.0f);
glVertex3f(-3.0f,2.0f, 0.0f);
glVertex3f(-2.0f,0.0f, 0.0f);
glEnd();
Tecnicas de sombrado clásicas y avanzadas.
Iluminación local:
Se denomina como luces que no son extensas, como las reales, sino inextensas, puntuales y son relacionadas con los objetos como mónedas aisladas, sin tener en cuenta la interacción entre ellos.
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 y la radiosidad.
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.
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.
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.
Interpolación de Intensidades (Gouraud)
Se basa en la interpolacion de intensidad o color que concidera que facetas planas vecinas proceden de aproximar una superficie curva, elimina en gran medida las discontinuidades de iluminacion. Es sencilla pero produce peores resultados en objetos con brillos espectaculares que el método de Phong implementado en OpenGL.
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.
Suscribirse a:
Enviar comentarios (Atom)
No hay comentarios:
Publicar un comentario