1 / 60

Tema 7 Colores y Sombras

Tema 7 Colores y Sombras. Índice. Color La luz Percepción del color Características psicológicas del color Profundidad de color Modelos de color Colores en OpenGL. La luz. El color es una banda de frecuencias del espectro electromagnético

ling
Télécharger la présentation

Tema 7 Colores y Sombras

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Tema 7Colores y Sombras

  2. Índice • Color • La luz • Percepción del color • Características psicológicas del color • Profundidad de color • Modelos de color • Colores en OpenGL

  3. La luz • El color es una banda de frecuencias del espectro electromagnético • El espectro visible abarca desde los 4.3*1014 Hz (rojo) hasta los 7.5 * 10 14 Hz (violeta) • El ojo humano distingue aproximadamente unos 400.000 colores diferentes

  4. La luz • Laluz blancaesta formada por el conjunto de radiaciones visibles • Un objeto sobre el que incide luz blanca absorberá algunas frecuencias y reflejará otras • La combinación de éstas últimas determinará el color del objeto • La frecuencia dominante se denomina coloromatiz de la luz

  5. Percepción del color • El color es la impresión producida al incidir en la retina los rayos luminosos difundidos o reflejados por los cuerpos • El ojo humano actúa como sensor y el cerebro interpretar las imágenes • Los conos están especializados en la visión del color • Especializados en: • azul y violeta • verde y amarillo • rojo y naranja • Los bastones requieren muy poca luz y no son capaces de discernir los colores.

  6. Características psicológicas del color • Cromaticidad: • Matiz • Luminosidad • Tono • Saturación • Además de la frecuencia, otras propiedades para caracterizar nuestra percepción de la luz

  7. Profundidad de color • Color de 1-bit • Permite 2 colores, utiliza 1 bit dedicado a la información de color por cada píxel (21). • Color de 4-bits • 16 colores por píxel, utiliza 4 bits dedicados a la información de color (24) • Color de 8-bits • 256 colores ya que se utilizan 8 bits dedicados a la información de color por cada píxel (28) • Se pueden utilizar los 8 bits para imágenes de un tono continuo en blanco y negro con 256 matices de color • Color de 24-bits • Permite 16.777.216 colores, se utilizan 24 bits dedicados a la información de color por cada píxel (224) • 8 bits para cada color: rojo, verde y azul • El inconveniente es la utilización de memoria que se necesita para pantallas de alta resolución (2MB para 1024x768)

  8. Modelos de color • El propósito de un modelo de color es facilitar la especificación de colores en algún formato estándar • Especificación de un modelo de coordenadas 3D y un subespacio dentro donde cada color se representa por un punto único • La mayoría de los modelos de color que se utilizan están orientados hacia el hardware como monitores o impresoras

  9. Modelos de color • Espacio de color CIE • El CIE ("d'Eclairage de Internationale de la Comisión") definió tres fuentes de luz hipotéticas, x, y, y z, resultando curvas positivas • El diagrama de cromaticidad CIE es un modelo de dos dimensiones de visión del color • El diagrama de cromaticidad CIE refleja el tono y la saturación, pero es necesario un modelo tridimensional para añadir el componente del brillo

  10. Modelos de color • El modelo de color RGB • Modelo aditivo de color que es representado por el cubo del color del RGB • R, G, y B representan los colores producidos por los fósforos rojos, verdes y azules • El cubo se proyecta dentro del espacio de color del CIE XYZ • Los valores de R,G,B se asignan en el intervalo de 0 a 1

  11. Colores en OpenGL • OpenGL especifica un color utilizando las intensidades separadas de componentes rojo, verde y azul (espacio de color RGB) • Definimos un color con la función glColor* • Los elementos geométricos se dibujan con los atributos activos en cada momento • En cualquier momento se pude modificar el valor de los atributos, sustituyendo el nuevo valor al anterior • Los atributos podrán apilarse y desapilarse

  12. Colores en OpenGL void triangulo2(void){ glBegin(GL_TRIANGLES); glColor3f(0.0,0.0,1.0); glColor3f(0.0,1.0,0.0); glVertex2f(0.0,-0.4); glVertex2f(-0.4,0.2); glVertex2f(0.4,0.2); glEnd(); }

  13. Colores en OpenGL • Al dibujar polígonos se puede controlar que se dibujen sus aristas o solo el interior • control de visibilidad de las aristas se realiza con la función glEdgeflag(b) • También se pueden conseguir gradientes • Con un triángulo, por ejemplo, bastará con asignar un color distinto a cada vértice • OpenGL renderiza la imagen con el gradiente de color resultante entre ellos

  14. Colores en OpenGL glBegin GL_TRIANGLES glColor3f( 1.0,0.0,0.0 ) //color rojo glVertex3f( 0.0,1.0,0.0 ) glColor3f( 0.0,1.0,0.0 ) //color verde glVertex3f( -1.0,-1.0,0.0 ) glColor3f( 0.0,0.0,1.0 ) //color azul glVertex3f( 1.0,-1.0,0.0 ) glEnd

  15. Colores en OpenGL • Canal alpha • El modelo RGBA de color dota a cada punto de una cuarta componente llamada canal alfa • Imagen de 8 bits en escala de grises • OpenGL lo interpreta de la manera siguiente • Un valor alpha de 0 (color negro) indica transparencia total • Un valor de 128 (color gris "puro") indica semitransparencia • Un valor de 255 (color blanco) indica opacidad total

  16. Colores en OpenGL • Mezclando dos colores generamos un tercero, si tengo un objeto de color rojo y le pongo delante un papel translúcido de color azul, la intersección de ambos se verá de color lila

  17. Colores en OpenGL • Activar el mezclado de colores y desactivarlo con las funciones • glEnable(GL_BLEND) • glDisable(GL_BLEND) • Para indicar como debe hacerse la mezcla se usará la función • glBlendFunc(Glenum factorfuente, Glenum factordestino) • glBlendFunc(GL_ONE,GL_ZERO) • importancia de 1 (máxima) al canal alfa de la fuente y de 0 (nula) al canal alfa del destino • glBlendFunc(GL_SRC_ALPHA, GL_ONE) • multiplique a la fuente por su valor de alfa y sume el resultado al color destino

  18. Colores en OpenGL • Ocultaciones • OpenGL permite utilizar dos métodos de ocultación • El algoritmo de las caras de detrás • Consiste en ocultar las caras que no se dibujarían porque formarían parte de la parte trasera del objeto • glEnable(GL_CULL_FACE) • Algoritmo del Z-buffer • Cada vez que se va a renderizar un pixel, comprueba que no se haya dibujado antes en esa posición un píxel que esté más cerca respecto a la cámara • glEnable(GL_DEPTH_TEST)

  19. Colores en OpenGL • Sin ocultaciones • Ocultando caras detrás

  20. Colores en OpenGL • Sin Z-Buffer • Con Z-Buffer

  21. Colores en OpenGL • Eliminando caras detrás • Caras detrás + Z-Buffer

  22. Colores en OpenGL • La combinación de estos dos algoritmos nosiempre es adecuada • Caras detrás + Z-Buffer • Z-Buffer

  23. Colores en OpenGL • El color de los materiales • La forma en que la luz incide sobre las superficies de los objetos depende de las propiedades del material de los mismos • OpenGL la forma de definir estas propiedades es la función: • void glMaterial{if}[v](GLenum face, GLenum pname, TYPEparam); • El primer argumento determina la cara del objeto donde se aplica el material • propiedad del material que va a fijarse

  24. Colores en OpenGL

  25. Indice • Sombras • Efecto falloff (Distance falloff) • Sombreado • Tipos de sombreado • Sombreado en OpenGL • Stencil Buffer • Volúmenes de sombras • Fusión (Dithering) • Paletas de Ventana

  26. Sombras • Definición: Una sombra es una región de oscuridad donde la luz es obstaculizada. Una sombra ocupa todo el espacio de detrás de un objeto opaco con una fuente de luz frente a él. La sección eficaz de una sombra es una silueta bidimensional o una proyección invertida del objeto que bloquea la luz.

  27. Sombras • Propiedades: • Cuanto menor el ángulo entre dirección de la luz y objeto, más corta la sombra. • Cuanto menor el ángulo entre dirección de la luz y superficie donde aparece la sombra, mayor será esta. • Fuente luz no puntual-> umbra y penumbra • Múltiples focos->múltiples sombras • Múltiples focos colores-> Color de cada sombra será del color de la luz del otro foco

  28. Sombras • Sombras por ordenador: • Simula como se comportan las caras del polígono cuando es iluminado por una fuente de luz virtual • Altera el color de las caras de un modelo 3D basándose en el ángulo de la superficie con la fuente de luz.

  29. Sombras • Ejemplo: Imagen renderizada sin líneas en los bordes sombreado en las caras

  30. Sombras-Efecto Falloff • Se puede observar que las superficies de las caras son brillantes en la caja delantera y más oscuras en la situada en la parte de atrás. También la superficie sobre la que están pasa de claro a oscuro según se aleja. • produce imágenes más realistas sin efecto falloff efecto falloff

  31. Tipos de sombreado • Sombreado plano (Flat shading) • Definición: sombrea cada polígono de un objeto basándose en el ángulo que existe entre la superficie normal del polígono y la dirección de la fuente de luz, sus respectivos colores y la intensidad de la luz • Renderizado de alta velocidad • Desventaja: aspecto poco natural en modelos bajos en polígonos

  32. Tipos de sombreado • Comparación Flat Shading-Phong

  33. Tipos de sombreado • Sombreado Gouraud • Simula el efecto de difusión de la luz y los colores a través de la superficie del objeto • Aplica el patrón de iluminación a cada vértice del polígono y entonces promedia los valores de color en toda la superficie del objeto para así alcanzar un efecto de sombreado suave • El resultado final de todo esto es un polígono con un suave gradiente de intensidades sobre su superficie

  34. Tipos de sombreado • Sombreado Gouraud: Bandas de Mach • objetos sombreados con Gouraud muestran las zonas de unión de polígonos

  35. Tipos de sombreado • Sombreado de Phong • usado en los gráficos 3D para la interpolación de superficies en polígonos rasterizados, para obtener mejor resolución especular. • proporciona una mejor aproximación a la aplicación punto-por-punto de un modelo de reflexión superficial, asumiendo una suavidad variante de la superficie como vector normal. • en lugar de interpolar intensidades de los vértices, según se hace en el sombreado Gouraud, se interpole normales a lo largo del polígono

  36. Tipos de sombreado • Sombreado Blinn–Phong • intercambia la precisión visual por eficiencia computacional

  37. Reflexión • Modelo de Lambert • Superficies en las que la luz que incide sobre ellas se reparte de forma que sólo depende del ángulo de incidencia y es independiente del ángulo de observación. • Sólo se puede emplear con ciertos materiales. • Sirve como una buena aproximación cuando las características de la superficie no se conocen.

  38. Reflexión • Modelo de Oren-Nayar • Similar al de Lambert. • Es más preciso aunque también más complicado. Los cálculos se realizan teniendo en cuenta un factor de rugosidad de la superficie.

  39. Sombreado en OpenGL • glShadeModel(GLenum modo )selecciona el modelo de sombreado: suave o plano. El modo puede ser: • Plano  GL_FLAT • Suave  GL_SMOOTH

  40. Sombreado OpenGL GL_Flat glShadeModel(GL_FLAT);glBegin(GL_TRIANGLES);         glColor3f(1.0f, 0.0f, 0.0f);  // color rojo glVertex3f(-1.0f, 0.0f, 0.0f); glColor3f(0.0f, 1.0f, 0.0f);  // color verde      glVertex3f(1.0f, 0.0f, 0.0f); glColor3f(1.0f, 0.0f, 0.0f);  // color azul      glVertex3f(0.0f, 1.0f, 0.0f);glEnd();

  41. Sombreado OpenGL GL_SMOOTH glShadeModel(GL_SMOOTH);glBegin(GL_TRIANGLES);         glColor3f(1.0f, 0.0f, 0.0f);  //activamos el color rojo glVertex3f(-1.0f, 0.0f, 0.0f); glColor3f(0.0f, 1.0f, 0.0f);  // verde      glVertex3f(1.0f, 0.0f, 0.0f); glColor3f(1.0f, 0.0f, 0.0f);  // azul      glVertex3f(0.0f, 0.0f, 1.0f);glEnd();

  42. Sombreado-Stencil Buffer • Sirve para mejorar la calidad de las sombras y los reflejos. • Añade planos de bits adicionales para cada píxel además de los bits de color y profundidad. • Es una manera de marcar píxeles en una renderización para controlar su actualización en renderizaciones siguientes. • Funciones en OpenGL: • glEnable(GL_STENCIL_TEST) • glDisable(GL_STENCIL_TEST). • glClearStencil

  43. Volúmenes de sombras • Construcción: • se proyecta un rayo de luz a través de cada vértice en la proyección de la sombra del objeto hacia el infinito. • El conjunto de estas proyecciones generan un volumen que engloba todos los puntos que pudieran posiblemente verse ensombrecidos por un objeto. • Cualquier objeto dentro de este volumen debería ser ensombrecido

  44. Volúmenes de sombras

  45. Volúmenes de sombras- Técnicas • Existen 3 técnicas aplicables en tiempo real. • Características comunes: • dibujar la escena como si estuviera completamente en sombra. • para cada punto de luz: • usar la información de profundidad de la escena para construir una mascara en el stencil buffer • la escena de nuevo como si estuviera completamente iluminada, usando el stencil buffer para la máscara de las áreas sombreadas.

  46. Volúmenes de sombras- Técnicas • Paso de profundidad (Depth pass) • Si la superficie de un objeto esta en sombra, habrá más superficies sombreadas frontalmente entre ella y el ojo que con las superficies traseras sombreadas. • Error de Profundidad (Depth fail) • En vez de contar las caras frontales sombreadas de la superficie del objeto, las superficies traseras se pueden contar así fácilmente con el mismo resultado • OR exclusivo • Aproxima las dos anteriores, no trata propiamente con la intersección de los volúmenes de sombras

  47. Fusión (Dithering) • Definición: • técnica usada para crear la ilusión de profundidad de color en imágenes con una paleta de colores limitada. • los colores no disponibles en la paleta original son aproximados por una difusión de los píxel coloreados dentro de la paleta disponible. • El ojo humano percibe la difusión como una mezcla de colores.

  48. Fusión • Incremento de fusión: glDisable(GL_DITHER) glEnable( GL_DITHER )

  49. Paletas • En Windows existen dos tipos de paletas: • Paletas lógicas • Paletas del sistema • Existe una paleta especial que es la paleta por defecto que es la que utiliza el usuario a no ser que crea una. • No se puede acceder a la paleta del sistema directamente. Los accesos se hacen mediante la paleta lógica. • Como programadores, podemos usar los colores de la paleta por defecto o bien crear nuestra propia paleta lógica y asociarla al contexto de dispositivo.

  50. Creación de Paletas de Ventana • Crear una paleta en OpenGL: HPALETTE CreatePalette( CONST LOGPALETTE *lplgpl // puntero a la paleta lógica de color ); • Esta paleta utiliza una estructura lógica de paleta (LOGPALETE) que contiene 256 entradas, especificando los 8 bits para las componentes R,G,B.

More Related