Color

Páginas: 5 (1225 palabras) Publicado: 27 de mayo de 2013
Color

Teoría del color


El color es una longitud de onda de luz, visible para el ojo humano

390nm

720 nm



El color que vemos en los objetos es resultado de la luz reflejada por su
superficie



El negro es la ausencia de color. Un objeto negro no refleja nada



El blanco es la combinación de todos los colores. Un objeto blanco refleja
todas la luz que le llega Las tres componentes del color


El ojo humano tiene tres tipos de células receptoras de luz
– el primer tipo se excita más con fotones de longitud de onda rojiza
– el segundo tipo se excita más con fotones de longitud de onda verde
– el tercer tipo se excita más con fotones de longitud de onda azulada



El cerebro mezcla la combinación de las tres y devuelve un solo colorresultado



De esta forma, cualquier color que vemos es en realidad una
combinación de ondas con longitudes dentro del espectro visible

Espacio de color


Es un espacio 3D cuyas dimensiones son las componentes R, G y B



Variando cada eje entre 0 y 1 obtenemos el cubo de color, que incluye
todos los colores visibles al ojo humano
G

Verde (0,1,0)

Amarillo (1,1,0)

Blanco(1,1,1)
Cian (0,1,1)

G

s(
se
ri

,x)
,x
x

Negro (0,0,0)

Rojo (1,0,0)

R
Azul (0,0,1)

B

Magenta (1,0,1)

Sombreado de polígonos


Para definir el color activo (con el que se pintan los vértices) se usa:
void glColor3f (GLfloat rojo, GLfloat verde, GLfloat azul)
void glColor3ub (GLfloat rojo, GLfloat verde, GLfloat azul)



Si todos los vértices tienen el mismocolor, todo el polígono es constante



Si cada vértice tiene un color diferente, el color del interior del polígono
dependerá del modo de sombreado elegido:
G
– Modo plano: el color del polígono es el
del último vértice
glShadeModel (GL_FLAT)
– Modo interpolado: el color del
polígono se deduce a partir del color
de cada vértice

R

glShadeModel (GL_SMOOTH)

B

G

//Activa el sombreado suave
glShadeModel (GL_SMOOTH);
// Dibuja el triángulo
glBegin (GL_TRIANGLES);

R

B



Cambiando a modo de
sombreado plano, el triángulo
quedaría entero de color azul

// Vértice rojo
glColor3ub (255, 0, 0);
glVertex3f (100, 0, 0);
// Vértice verde
glColor3ub (0, 255, 0);
glVertex3f (0, 100, 0);
// Vértice azul
glColor3ub (0, 0, 255);
glVertex3f (0, 0, 100);glEnd();

24 bits

Bits de color


Si el sistema operativo no puede mostrar 24
bits color, éste busca los colores más
adecuados --> no es preciso cambiar el
código!



Lógicamente, la calidad de la imagen será
diferente



Si el número de bits color es
pequeño, podemos indicarle
a OpenGL que use tramas
para aproximar el color real:
glEnable (GL_DITHER);

8 bits condithering

8 bits

Modo indexado de color


OpenGL también permite trabajar directamente con la paleta de color, en
lugar de usar las componentes RGB



Para establecer el color activo se usa:
void glIndexi (GLint indice);



Ventajas del modo indexado:
– es más rápido (sólo se utiliza un valor por pixel)
– permite animaciones de paleta
– permite usar el color para indicarotra magnitud



Desventajas
– no permite efectos de iluminación

Ejemplo: navegador 3D en color

void PanelVista_Paint(TObject *Sender)
{
switch (ModoColor) {
case 2:
// modo sólido
glPolygonMode(GL_FRONT,GL_FILL);
glCullFace(GL_BACK);
glEnable(GL_CULL_FACE);
glEnable(GL_DEPTH_TEST);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
break;
case 1:
// modo alámbricoglPolygonMode(GL_FRONT_AND_BACK,GL_LINE);
glDisable(GL_CULL_FACE);
glDisable(GL_DEPTH_TEST);
glClear(GL_COLOR_BUFFER_BIT);
}
// Transformación de vista
glPushMatrix();
gluLookAt (...);
// dibujamos los objetos
RenderWorld();
glPopMatrix();
}

Iluminación

Luz ambiente


Es la luz que no viene de ninguna dirección particular



Aunque provenga de una fuente, después de...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Colores
  • El color
  • El Color
  • Color
  • Color
  • Color
  • Colores
  • el color

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS