Tema 7 Colores y Sombras.

Slides:



Advertisements
Presentaciones similares
Por Mª Teresa Benítez Aguado
Advertisements

Bit Depth y Resolución Profa. G. Yukavetsky.
Sistemas de Graficación
Zurbarán, Plato de Cidras, 1633
Formatos de archivo y modos de color
La imagen digital.
IMAGEN DIGITAL IMÁGENES BIT/MAP (MAPA DE BITS)
LA FORMA EN EL ESPACIO TEMA 5.
TEORIA DEL COLOR Hecho por: Natalia Ramírez.
Técnicas para configurar iluminación
CAPÍTULO ViI FÍSICA 11˚ UN ENFOQUE PRÁCTICO
Espectroscopia Ciencia que estudia los espectros electromagnéticos en la física y física-química.
Valor perceptivo de los colores
TRANSFORMACIONES GEOMÉTRICAS
Pixel y color.
Cuando un rayo de luz que se propaga a través de un medio homogéneo encuentra en su camino una superficie bien pulida, se refleja en ella siguiendo una.
MODELOS DE COLOR CARACTERÍSTICAS BÁSICAS
ILUMINACIÓN Un modelo de iluminación sirve para asignar un valor de iluminación a los puntos de la imagen. Se define una ecuación de iluminación. Lighting.
Color.
El color Tema 5.
Luz y volumen Tema 6.
EL COLOR El mundo es de colores, donde hay luz, hay color. La percepción de la forma, profundidad o claroscuro está estrechamente ligada a la percepción.
IMPORTANCIA DE LA TIPOGRAFIA
LUZ Y VOLUMEN.
Direcciones físicas y direcciones virtuales (lógicas)
Laura Laue Noguera.
MODELOS DE COLOR CARACTERÍSTICAS BÁSICAS
MODOS DE COLOR EN LA IMAGEN DIGITAL.
EL COLOR El prisma de Newton
1.4 Teoría del color ELABORAR PÁGINAS WEB.
Prof. Juan Carlos Lima Colegio IPTCE
Introducción al diseño gráfico
Modelos de iluminación
Teoría del Diseño I El Color.
Luz y Color. Propiedades de la luz y el color La luz es una banda estrecha dentro del espectro electromagnético y presenta todos los atributos de las.
LUZ Espectro Electromagnético Teoría del Color Propiedades de la Luz.
Computación Gráfica Modelado de la Iluminación y el Color Docentes: Néstor Calvo Ángel Calegaris Walter Sotil 2008.
Carlos Carrasco de Pedro Daniel Sanz Sanfructuoso
Iluminación.
Informática Médica: Procesamiento de imágenes
Imágenes en el PC Fuente: Curso HTML del CNICE. Tipos de imagen A grandes rasgos podríamos dividir las imágenes digitales en dos grupos: Imágenes vectoriales,
Procesamiento Digital de Imágenes
Dispositivos gráficos de salida
Laboratorio de Computación Grafica Universidad Central de Venezuela
Fotografía Tema 1: la luz y la visión.
FOTOGRAFÍA DIGITAL. DEFINICIÓN Consiste en la obtención de imágenes que son capturadas por un sensor electrónico que dispone de múltiples unidades fotosensibles.
Geometría primitiva y Transformaciones
Características de una imagen digital
Imágenes Las imágenes que se utilizan para trabajar normalmente se encuentran en formato TIFF o alguno de los formatos propios de las aplicaciones (por.
Realizado por: María Inmaculada Fernández Conde.
LA TEORÍA DEL COLOR Olga Molina.
1 Practica 5 Transparencia en AE. Bibliografía José Luis Fernandez. “Postproducción digital”. Escuela de cine y vídeo Gonzalo Pajares. “Imágenes.
1º Parte. FOTOGRAFIA DIGITAL Las fotografías digitales son imágenes del mundo real digitalizadas. Esta digitalización consiste en tomar una visión del.
Graficación 2D Alumna: Yasmin Rosales Cruz
Priscilla Muñoz Clase nº4
 Es una parte fundamental de la web, productor de sensaciones.  Estamos rodeados de colores. Estos forman parte de la vida misma, y el ser humano es.
PROPIEDADES DEL COLOR PRESENTADO POR: Alberto Sosa Edwin Muñoz
 La fotografía digital son imágenes del mundo real digitalizadas. Esto consiste en tomar una visión del mundo y transformarla en un número de pixeles.
ÓPTICA ESTUDIA EL COMPORTAMIENTO DE LA LUZ SUS CARACTERISTICAS Y SUS MANIFESTACIONES.
“Color Depth” y Resolución Profa. G. J. Yukavetsky Favor avanzar manualmente.
FOTOGRAFIA DIGITAL  Es cualquier imagen fija o en movimiento, que se captura en un medio electronico y se representa como un archivo de informacion leido.
MODOS DE COLOR. Photoshop utiliza varios modelos de color, estos intentan describir los colores que vemos y con los que trabajamos. Cada modelo de color.
UNIVERSIDAD TECNOLÓGICA ISRAEL
ÓPTICA GEOMÉTRICA Estudia: La naturaleza de la luz.
Tramas de medio tono Para reproducir cualquier tipo de ilustración, un dispositivo de impresión la separa en una serie de puntos de diversos tamaños, llamados.
La luz consiste en una forma de energía que proviene de fuentes luminosas que a su vez iluminan objetos y que entonces así podemos percibirlos mediante.
Rep.IluminaciónA. García-Alonso1 >> Representación
Fotografía Digital. 1º PARTE Definición La fotografía digital consiste en la obtención de imágenes mediante una cámara oscura, de forma similar a la.
Rep.A. García-Alonso1 >> Representación
Rep.PoliedrosA. García-Alonso1 >> Representación
Transcripción de la presentación:

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

La luz La luz blanca esta 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 color o matiz de la luz

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.

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

Profundidad de color Color de 1-bit Color de 4-bits Color de 8-bits 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)

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

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

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

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

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(); }

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

Colores en OpenGL glBegin GL_TRIANGLES glEnd 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

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

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

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

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)

Colores en OpenGL Sin ocultaciones Ocultando caras detrás

Colores en OpenGL Sin Z-Buffer Con Z-Buffer

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

Colores en OpenGL La combinación de estos dos algoritmos no siempre es adecuada Caras detrás + Z-Buffer Z-Buffer

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

Colores en OpenGL

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

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.

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 Cuanto menor es el ángulo entre la dirección de la luz y un objeto alargado que la obstaculice, más corta será su sombra. Por otro lado, cuanto menor sea el ángulo entre la dirección de la luz y la superficie en la que aparece la sombra, más larga será ésta. Si el objeto está cerca de la fuente luminosa, la sombra será mayor que si el objeto se encuentra lejos. Si la superficie está curvada, habrá más distorsiones. Cuando la fuente de luz no es puntual, la sombra se divide en umbra y penumbra. Cuanto más ancha es la fuente de luz, más difuminada o borrosa será la sombra. Si sólo existe una fuente de luz, las sombras arrojadas por aquella serán siempre grises, sea cual sea el color de la fuente. En cambio, si existen dos fuentes de luz de distintos colores, supongamos rojo y azul, las sombras proyectadas por cada una de ellas serán del color de la otra fuente de luz, y sólo la intersección de ambas sombras será gris. Es decir, la sombra de la luz roja será azul, pues está iluminada por la fuente azul, y viceversa. En el caso de que existan más fuentes de luz, cada sombra será del color resultante de la adición de las fuentes que aún iluminan esa zona, permaneciendo en gris las zonas donde intersecten las sombras de todas las fuentes luminosas.

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. El proceso de sombreado o shading (en el contexto de los gráficos realizada por ordenador) implica la simulación de computadora (o más exactamente; el cálculo) como las caras de un polígono se comportarán cuando es iluminado por una fuente de la luz virtual. El cálculo exacto varía según no sólo que datos están disponibles sobre la cara sombreada, sino también la técnica de sombreado Generalmente este afecta propiedades de la especularidad y valores de intensidad, reflexión y transparencia. Este proceso se realiza durante el renderizado. El sombreado altera el color de las caras de un modelo 3D basándose en el ángulo de la superficie con la fuente de luz. Las siguientes imágenes muestran las diferencias:

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

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 Teóricamente, dos superficies que son paralelas son iluminadas con la misma intensidad por una fuente de luz distante, como por ejemplo el sol. Incluso si una superficie está más distante, el ojo ve más en el mismo espacio, por eso la iluminación parece la misma. Nótese que en la primera imagen el color de las caras frontales de las dos cajas son exactamente iguales. Parece que hay una pequeña diferencia en el punto de encuentro de las caras, pero esto es una ilusión óptica causada por el borde vertical debajo de donde se encuentran las caras. efecto falloff

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 Sombreado plano (Flat Shading) Es una técnica usada en gráficos 3D en la que se 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. Es el tipo de sombreado utilizado para el renderizado de alta velocidad donde técnicas de sombreado más avanzadas tienen un coste computacional excesivo. La desventaja del sombreado de intensidad constante es que da a los modelos con un número bajo de polígonos un aspecto poco natural, formado por múltiples caras. A veces esta apariencia puede ser ventajosa, como al modelar objetos poligonales. Los diseñadores a veces usan esta técnica para observar las diferentes caras del objeto que están creando.

Tipos de sombreado Comparación Flat Shading-Phong

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

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

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

Tipos de sombreado Sombreado Blinn–Phong intercambia la precisión visual por eficiencia computacional En sombrado de Phong solo se recalcula el ángulo R*V entre el observador (V) y el rayo de luz de la fuente (L) reflejado (R) en una superficie. Si en vez de eso se calcula el vector intermedio entre el observador y los vectores de las fuentes de luz: Podemos reemplazar R*V con N*H, este producto de puntos representa el coseno de un ángulo que es la mitad del ángulo representado por el producto de puntos de Phong si V,L y R se encuentran en el mismo plano. Esto produce modelos empíricos más certeros para determinar la distribución de las funciones de reflexión bidireccional que el modelo de Phong. Blinn-Phong es el modelo de sombreado por defecto que utiliza OpenGL y se lleva a todos los vértices según pasan por la tubería de gráficos, mientras que los valores de los pixeles entre los vértices son interpolados por el sombreado de Gouraud (menos costoso).

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.

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.

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

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();

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();

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

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

Volúmenes de sombras

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. Existen 3 técnicas que usan el stencil buffer para renderizar las sombras con volúmenes de sombras lo suficientemente rápido como para utilizarlas en aplicaciones de tiempo real, paso de profundidad, fallo en profundidad y OR exclusivo, pero todos ellos utilizan el mismo proceso: -renderizar 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 que tiene huecos solo donde la superficie visible no es una sombra -Renderizar la escena de nuevo como si estuviera completamente iluminada, usando el stencil buffer para la máscara de las áreas sombreadas.

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 7.9.5.1 Paso de profundidad (Depth pass) Heidemann propuso que si el frente de las superficies y la trasera de las sombras eran renderizadas en pasos separados, el número de caras frontales y traseras de un objeto puede ser contado usando el stencil buffer. 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. Si su número es igual, sin embargo, la superficie del objeto no es una sombra. 7.9.5.2 Error de Profundidad (Depth fail) Sobre el 200 algunas personas descubrieron que el método de Heidmann puede trabajar desde cualquier punto de la cámara reinvirtiendo la profundidad. 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. Esto soluciona el problema de tener el observador en sombra, pero introduce la condición de que el extremo posterior del volumen de sombras debe ser encapsulado o las sombras terminarán perdiéndose donde los puntos del volumen van al infinito. 7.9.7.3 OR exclusivo Las dos técnicas anteriores pueden aproximarse mediante la variación OR exclusivo, que no trata propiamente con la intersección de los volúmenes de sombras, pero ahorra un paso de renderización y solo requiere un bit de stencil buffer.

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. Esta imagen está formada solo por rojo y azul, pero según se van haciendo mas pequeños los pixeles el ojo humano empieza a percibir un nuevo color mezcla de la aproximación de los dos presentes, con lo cual se puede percibir un color morado no presente en la paleta de colores inicial, pero la imagen sigue estando compuesta solo por rojo y azul.

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

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.

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.

Arbitraje de paletas Windows es un S.O. multitarea  Ejecución simultánea de varias aplicaciones. Pero el hardware solo permite 256 colores en la paleta del sistema que deben ser compartidos por todas las aplicaciones en ejecución. Si alguna de las aplicaciones modifica la paleta del sistema puede que se altere la presentación de imágenes de otras aplicaciones produciendo efectos no deseados. Windows proporciona un conjunto de mensajes para arbitrar el uso de paletas.

Arbitraje de paletas Mensajes: WM_QUERYNEWPALETTE  Preguntar a la ventana principal si desea copiar las entradas de su paleta privada en las entradas del sistema. WM_PALETTECHANGED  Indica a la ventana que puede seleccionar la paleta, incluso si no es la ventana activa.

Creación de paletas DescribePixelFormat()  para determinar si una aplicación requiere una paleta. Retorna una estructura PÍXELFORMATDESCRIPTOR Si el valor del bit PFD_NEED_PALETTE está activo crear una paleta para la aplicación

Estructura de una paleta Reservar memoria: typedef struct tagLOGPALETTE { // lgpl WORD palVersion; WORD palNumEntries; PALETTEENTRY palPalEntry[1]; } LOGPALETTE; Llamar a la función CreatePalette() Cada entrada en la paleta es una estructura PALETTEENTRY

Estructura de una paleta typedef struct tagPALETTEENTRY { // pe BYTE peRed; BYTE peGreen; BYTE peBlue; BYTE peFlags; } PALETTEENTRY; -         peRed, peGreen y peBlue representan las intensidades relativas para las componentes de 8 bits RGB. Así cada una de las 256 entradas de la paleta contendrá una definición de color de 24 bits. -         PeFlags se utiliza para especificar opciones avanzadas de la paleta. Normalmente su valor será NULL.

Destrucción de una paleta case WM_DESTROY: // Desactiva el contexto de generación actual y lo borra wglMakeCurrent(hDC,NULL); wglDeleteContext(hRC);   ReleaseDC(hWnd,hDC);   // Borra la paleta si fue creada if(hPalette != NULL) DeleteObject(hPalette);   // Le dice a la aplicacion que termine despues de que se cierre la ventana PostQuitMessage(0); break;

Librería GL Principales funciones para el manejo de colores y sombras en OpenGL glAccum - establece los valores de un píxel en el buffer. glClearColor – borra los buffers de color. glClearDepth – asigna un valor de profundidad al buffer de profundidad. glColor – selecciona el color actual en modo RGBA.

Librería GL glColorMask – activa o desactiva la modificación de las componentes de color en los buffers de color. glColorMaterial – permite seleccionar las propiedades de un material siguiendo el color definido por glColor. glDisable – desactiva una característica de OpenGl

Librería GL glEnable – activa una característica de OpenGl. glDrawBuffer – selecciona un buffer de color para dibujar. glFog – especifica los parámetros de niebla. glIndex – selecciona el índice de color actual.

Librería Gl glLogicOp – selecciona la operación lógica para el modo de color indexado. glPolygonMode – selecciona el modo en que se generan los polígonos. glShadeModel – asigna el sombreado por defecto (suave o plano)