computación gráfica modelado de la iluminación y el color docentes: néstor calvo Ángel...

34
Computación Gráfica Modelado de la Iluminación y el Color Docentes: Néstor Calvo Ángel Calegaris Walter Sotil 2008

Upload: pino-canseco

Post on 23-Jan-2016

227 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Computación Gráfica Modelado de la Iluminación y el Color Docentes: Néstor Calvo Ángel Calegaris Walter Sotil 2008

Computación Gráfica

Modelado de la Iluminación y el Color

Docentes:Néstor Calvo

Ángel CalegarisWalter Sotil

2008

Page 2: Computación Gráfica Modelado de la Iluminación y el Color Docentes: Néstor Calvo Ángel Calegaris Walter Sotil 2008

Color y Sombreado 2

1a Parte: COLOR

Como se percibe y como se cuantifica el color

Page 3: Computación Gráfica Modelado de la Iluminación y el Color Docentes: Néstor Calvo Ángel Calegaris Walter Sotil 2008

Color y Sombreado 3

Reproducción: Colores Aditivos y Sustractivos

Agregan color (emisores, monitor) Quitan color (tintas, impresora)

-La tinta cian (celeste) absorbe el color rojo

-La tinta magenta absorbe el color verde

-La tinta amarilla absorbe el color azul

-Las tres tintas C+M+Y absorben todo el color = negro

(Las impresoras suelen usar también tinta negra)

Colores Aditivos (RGB) Colores Sustractivos (CMY)

Complementarios

Page 4: Computación Gráfica Modelado de la Iluminación y el Color Docentes: Néstor Calvo Ángel Calegaris Walter Sotil 2008

Color y Sombreado 4

Creemos saber todo sobre el color

¿Ya está? ¿Con una terna de RGB podemos representar cualquier color? ¿Por que una terna?• ¿Que tres colores?• ¿Que hace el violeta cerca del rojo?

Page 5: Computación Gráfica Modelado de la Iluminación y el Color Docentes: Néstor Calvo Ángel Calegaris Walter Sotil 2008

Color y Sombreado 5

Pero la realidad es mucho más complicada

Un color es una distribución continua o espectro de longitudes de onda P(). Es una función, no un valor.Además el ojo tiene sus particularidades fisiológicas

color

Page 6: Computación Gráfica Modelado de la Iluminación y el Color Docentes: Néstor Calvo Ángel Calegaris Walter Sotil 2008

Color y Sombreado 6

Tres tipos especializados de Conos

Page 7: Computación Gráfica Modelado de la Iluminación y el Color Docentes: Néstor Calvo Ángel Calegaris Walter Sotil 2008

Color y Sombreado 7

Teoría Tricromática: Von Helmholtz (1859)

Los colores son percibidos de acuerdo a las respuestas relativas de los tres tipos de receptores.

Page 8: Computación Gráfica Modelado de la Iluminación y el Color Docentes: Néstor Calvo Ángel Calegaris Walter Sotil 2008

Color y Sombreado 8

Teoría de Colores Opuestos: Hering (1872)

•¿Alguien vio un rojo verdoso o un azul amarillento?

•¿Cómo se explican los contrastes y las afterimages con la teoría tricromática?

Y

Cb

Cr

Page 9: Computación Gráfica Modelado de la Iluminación y el Color Docentes: Néstor Calvo Ángel Calegaris Walter Sotil 2008

Color y Sombreado 9

Teoría Dual

Los colores son percibidos de acuerdo a las respuestas relativas de los tres tipos de receptores. Pero se procesan tanto las contribuciones individuales como las sumas y las diferencias.

Page 10: Computación Gráfica Modelado de la Iluminación y el Color Docentes: Néstor Calvo Ángel Calegaris Walter Sotil 2008

Color y Sombreado 10

Percepción del color

Hue, Saturation, Value or Lightness (HSV o HSL)Tono, Saturación, Intensidad o Luminancia

Page 11: Computación Gráfica Modelado de la Iluminación y el Color Docentes: Néstor Calvo Ángel Calegaris Walter Sotil 2008

Color y Sombreado 11

Reproducción del color

r

g

b

Los valores negativos (del rojo en este caso) significan que:1) no se puede reproducir ese color en RGB2) a menos que se agregue luz (roja) al campo de referencia

Wright and Guild 1930: Comparación visual entre un color de referencia y uno generado mediante tres luces (RGB)

Page 12: Computación Gráfica Modelado de la Iluminación y el Color Docentes: Néstor Calvo Ángel Calegaris Walter Sotil 2008

Color y Sombreado 12

Commission Internationale de l’Éclairage (CIE)

CIE 1931: Standard Colorimetric Observer

Page 13: Computación Gráfica Modelado de la Iluminación y el Color Docentes: Néstor Calvo Ángel Calegaris Walter Sotil 2008

Color y Sombreado 13

Commission Internationale de l’Éclairage (CIE)

CIE 1931: Chromaticity Diagram

CIE 1975: Uniform Chromaticity Scale

x = 4X

X+15Y+3Z

y = 9Y

X+15Y+3Z

x = X

X+Y+Z

y = Y

X+Y+Z

Page 14: Computación Gráfica Modelado de la Iluminación y el Color Docentes: Néstor Calvo Ángel Calegaris Walter Sotil 2008

Color y Sombreado 14

Gamut

3D!?

I=0.299R+0.587G+0.114B

Page 15: Computación Gráfica Modelado de la Iluminación y el Color Docentes: Néstor Calvo Ángel Calegaris Walter Sotil 2008

Color y Sombreado 15

2a Parte: Iluminación y Sombreado

Como interactúan los materiales con la luz

Page 16: Computación Gráfica Modelado de la Iluminación y el Color Docentes: Néstor Calvo Ángel Calegaris Walter Sotil 2008

Color y Sombreado 16

Sombreado

Analizaremos el sombreado debido a la forma del objeto en relación con el ojo y las fuentes de luz.

(No confundir sombreado con sombras)

Page 17: Computación Gráfica Modelado de la Iluminación y el Color Docentes: Néstor Calvo Ángel Calegaris Walter Sotil 2008

Color y Sombreado 17

Iluminación Local / Global

Iluminación local: depende del material, la luz ambiente, el ángulo de incidencia de la luz y el ángulo con el eje visual

Iluminación Global: considera además la luz reflejada por los otros objetos y un ambiente mas complejo.

Page 18: Computación Gráfica Modelado de la Iluminación y el Color Docentes: Néstor Calvo Ángel Calegaris Walter Sotil 2008

Color y Sombreado 18

BRDF: Bidirectional Reflectance Distribution Function

Cantidad de luz que refleja una superficie en función del ángulo de incidencia y el ángulo de visión (4D)

Los ángulos se miden respecto a la normal a la superficie en el punto considerado

Dirección de incidenciade la luz Dirección

de visualización

Normal

Page 19: Computación Gráfica Modelado de la Iluminación y el Color Docentes: Néstor Calvo Ángel Calegaris Walter Sotil 2008

Color y Sombreado 19

Modelo de luz e iluminación recibida

I() = Il max(cos(),0)

Superficie

n

d

I() = Il cos()

I = Il cosr() si < (kc + kl d + kq d2)

I = 0 si >

Page 20: Computación Gráfica Modelado de la Iluminación y el Color Docentes: Néstor Calvo Ángel Calegaris Walter Sotil 2008

Color y Sombreado 20

Reflexión Difusa Lambertiana o Ideal

Superficie

Ir = Kd Il cos()

Page 21: Computación Gráfica Modelado de la Iluminación y el Color Docentes: Néstor Calvo Ángel Calegaris Walter Sotil 2008

Color y Sombreado 21

Reflexión Especular Ideal

Superficie

l

n

r

La luz de un foco puntual (o la luz que llega a la superficie desde un dado punto) solo es visible si el ángulo de visión es exactamente igual al de incidencia

Page 22: Computación Gráfica Modelado de la Iluminación y el Color Docentes: Néstor Calvo Ángel Calegaris Walter Sotil 2008

Color y Sombreado 22

Reflexión no ideal

l

nr

v

Ir = Ks Il cosq()

independiente de cos()!!?? (Fresnel?)

q

Page 23: Computación Gráfica Modelado de la Iluminación y el Color Docentes: Néstor Calvo Ángel Calegaris Walter Sotil 2008

Color y Sombreado 23

Iluminación Ambiente

Ir = Il Ka

La luz reflejada por todo el entorno se simplifica como luz ambiente.

Es independiente de la dirección de las fuentes y la de visualización

Page 24: Computación Gráfica Modelado de la Iluminación y el Color Docentes: Néstor Calvo Ángel Calegaris Walter Sotil 2008

Color y Sombreado 24

Modelo de Phong (Phong Bui Tong 1975)

Ir = Il (Ka + Kd cos() + Ks cosq())

= + +

Page 25: Computación Gráfica Modelado de la Iluminación y el Color Docentes: Néstor Calvo Ángel Calegaris Walter Sotil 2008

Color y Sombreado 25

Modelos avanzados de Iluminación

Ray CastingRay TracingRadianceRadiosityPhoton Map

Page 26: Computación Gráfica Modelado de la Iluminación y el Color Docentes: Néstor Calvo Ángel Calegaris Walter Sotil 2008

Color y Sombreado 26

2a Parte: Implementación en Opengl

Page 27: Computación Gráfica Modelado de la Iluminación y el Color Docentes: Néstor Calvo Ángel Calegaris Walter Sotil 2008

Color y Sombreado 27

Color RGBA

El color se asigna a cada vértice con glColor…(…)Puede usarse dentro del loop glBegin(…) – glEnd()La asignación es RGB o RGBA (index no se usa más)En general hay que usar reales (float) entre 0 y 1, los distintos

tipos de enteros se mapean con dificultad y luego se pasan a [0,1], siempre clampeados.

La A se refiere a un adicional alpha que puede considerarse como “nivel de opacidad”, pero en realidad se puede usar para algunos trucos:

- Alpha Test (el fragmento pasa si se cumple el test)- Blending (el entrante se mezcla con el almacenado)

El truco básico con alpha es la transparencia que se hace mediante el blending: D=AS+(1-A)DD es cada uno de los valores R, G o B del píxel almacenado en el color buffer.S es lo mismo, pero del píxel entrante. A es el alpha del píxel entrante.

Page 28: Computación Gráfica Modelado de la Iluminación y el Color Docentes: Néstor Calvo Ángel Calegaris Walter Sotil 2008

Color y Sombreado 28

Color

void glColor3{b s i f d ub us ui} (TYPEr, TYPEg, TYPEb);void glColor4{b s i f d ub us ui} (TYPEr, TYPEg, TYPEb, TYPEa);void glColor3{b s i f d ub us ui}v (const TYPE*v);void glColor4{b s i f d ub us ui}v (const TYPE*v);

Page 29: Computación Gráfica Modelado de la Iluminación y el Color Docentes: Néstor Calvo Ángel Calegaris Walter Sotil 2008

Color y Sombreado 29

Iluminación y Sombreado

void glLightModel{if}(GLenum pname, TYPEparam);void glLightModel{if}v(GLenum pname, TYPE *param);

glEnable(GL_LIGHTING);glEnable(GL_LIGHT_0);... glEnable(GL_LIGHT_7);

Page 30: Computación Gráfica Modelado de la Iluminación y el Color Docentes: Néstor Calvo Ángel Calegaris Walter Sotil 2008

Color y Sombreado 30

Luces

void glLight{if}(GLenum light, GLenum pname, TYPEparam);void glLight{if}v(GLenum light, GLenum pname, TYPE *param);

I = Il cosr() si < (kc + kl d + kq d2)

I = 0 si >

Page 31: Computación Gráfica Modelado de la Iluminación y el Color Docentes: Néstor Calvo Ángel Calegaris Walter Sotil 2008

Color y Sombreado 31

Modelo de Phong (modificado)

Ir = Ka Iga + Ke + i (Ka Ilai + Ildi Kd cos() + Ilsi Ks

cos()q)

void glColorMaterial(GLenum face, GLenum mode);

void glMaterial{if}(GLenum face, GLenum pname, TYPEparam);void glMaterial{if}v(GLenum face, GLenum pname, TYPE *param);

face: GL_FRONT, GL_BACK, or GL_FRONT_AND_BACK (default). mode: GL_AMBIENT, GL_DIFFUSE, GL_AMBIENT_AND_DIFFUSE (default), GL_SPECULAR, or GL_EMISSION

Page 32: Computación Gráfica Modelado de la Iluminación y el Color Docentes: Néstor Calvo Ángel Calegaris Walter Sotil 2008

Color y Sombreado 32

Un par de consejos básicos

• El “color” puede representarse mediante las componentes ambiente y difusa, haciendo que siempre la reflexión especular sea blanca (el color de la luz sin cambiar)

• Cambiar materiales con glMaterial() es caro, conviene habilitar glColorMaterial y cambiar solo las componentes arriba mencionadas. El cambio se realiza en cada llamada a glColor.

• Los cálculos de iluminación se simplifican, sin que se vea mal, poniendo la luz en el infinito y deshabilitando “local viewer”.

• Si se quieren objetos transparentes u otras formas de blending, hay que saber que el único alpha válido es de la componente difusa del material

• Si el modelo lo construye uno mismo mediante primitivas simples, en cada vértice hay que asignar una normal con glNormal.

glColorMaterial(GL_FRONT_AND_BACK,GL_AMBIENT_AND_DIFFUSE);glEnable(GL_COLOR_MATERIAL);glLightModeli(GL_LIGHT_MODEL_LOCAL_VIEWER,0);glLightfv(GL_LIGHT0,GL_POSITION,lpos); // lpos[3]=0 -> infinito

Page 33: Computación Gráfica Modelado de la Iluminación y el Color Docentes: Néstor Calvo Ángel Calegaris Walter Sotil 2008

Color y Sombreado 33

Simulación de materialesMaterial

GL_AMBIENT

GL_DIFFUSE

GL_SPECULA

R

GL_SHININESS

Material

GL_AMBIENT

GL_DIFFUSE

GL_SPECULA

R

GL_SHININESS

Material

GL_AMBIENT

GL_DIFFUSE

GL_SPECULA

R

GL_SHININESS

Brass 0.329412 0.780392 0.992157 27.8974 Gold 0.24725 0.75164 0.628281 51.2 Jade 0.135 0.54 0.316228 12.80.223529 0.568627 0.941176 0.1995 0.60648 0.555802 0.2225 0.89 0.3162280.027451 0.113725 0.807843 0.0745 0.22648 0.366065 0.1575 0.63 0.316228

1 1 1 1 1 1 0.95 0.95 0.95Bronze 0.2125 0.714 0.393548 25.6 Polished 0.24725 0.34615 0.797357 83.2 Obsidian 0.05375 0.18275 0.332741 38.4

0.1275 0.4284 0.271906 Gold 0.2245 0.3143 0.723991 0.05 0.17 0.3286340.054 0.18144 0.166721 0.0645 0.0903 0.208006 0.06625 0.22525 0.3464351 1 1 1 1 1 0.82 0.82 0.82

Polished 0.25 0.4 0.774597 76.8 Pewter 0.105882 0.427451 0.333333 9.84615 Pearl 0.25 1 0.296648 11.264Bronze 0.148 0.2368 0.458561 0.058824 0.470588 0.333333 0.20725 0.829 0.296648

0.06475 0.1036 0.200621 0.113725 0.541176 0.521569 0.20725 0.829 0.2966481 1 1 1 1 1 0.922 0.922 0.922

Chrome 0.25 0.4 0.774597 76.8 Silver 0.19225 0.50754 0.508273 51.2 Ruby 0.1745 0.61424 0.727811 76.80.25 0.4 0.774597 0.19225 0.50754 0.508273 0.01175 0.04136 0.6269590.25 0.4 0.774597 0.19225 0.50754 0.508273 0.01175 0.04136 0.6269591 1 1 1 1 1 0.55 0.55 0.55

Copper 0.19125 0.7038 0.256777 12.8 Polished 0.23125 0.2775 0.773911 89.6 Turquoise 0.1 0.396 0.297254 12.80.0735 0.27048 0.137622 Silver 0.23125 0.2775 0.773911 0.18725 0.74151 0.308290.0225 0.0828 0.086014 0.23125 0.2775 0.773911 0.1745 0.69102 0.306678

1 1 1 1 1 1 0.8 0.8 0.8Polished 0.2295 0.5508 0.580594 51.2 Emerald 0.0215 0.07568 0.633 76.8 Black 0 0.01 0.5 32Copper 0.08825 0.2118 0.223257 0.1745 0.61424 0.727811 Plastic 0 0.01 0.5

0.0275 0.066 0.0695701 0.0215 0.07568 0.633 0 0.01 0.51 1 1 0.55 0.55 0.55 1 1 1

Black 0.02 0.01 0.4 10Rubber 0.02 0.01 0.4

0.02 0.01 0.41 1 1

Page 34: Computación Gráfica Modelado de la Iluminación y el Color Docentes: Néstor Calvo Ángel Calegaris Walter Sotil 2008

Color y Sombreado 34

Interpolación del Sombrado

void glShadeModel (GLenum mode); GL_SMOOTH (default) or GL_FLAT.

- Flat Shading: El color calculado en uno de los vértices (generalmente el ultimo) define el color del polígono.- Gouraud Shading: El color resultante en cada vértice se interpola en cada píxel interior.- Phong Shading: Normales interpoladas y cálculo de iluminación en cada píxel (no está implementado en OpenGL y no confundir con el modelo de iluminación de Phong)