introducción - principalcs.uns.edu.ar/cg/clasespdf/4.2-iluminacioni.pdf · modelos de fuentes de...

21
1 Iluminación (I) Lab. de Visualización y Computación Gráfica Dpto. de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur Introducción S. Castro, N. Gazcón CG 2015 Vimos que la generación de una escena 3D requiere 3 componentes esenciales: El mundo 3D de los objetos La o las fuentes de luz La cámara o el ojo que observa la escena Hemos visto cómo modelar objetos, cómo generar una escena a partir de éstos, cómo manipular la cámara para verlos y cómo presentarlos en pantalla. ¿Cómo se generan las imágenes en el mundo real? La luz sale de una fuente de luz y viaja en línea recta en el espacio. La luz incide sobre, se refleja y posiblemente pasa a través de los objetos. Los efectos atmosféricos podrían modificar la luz mientras ésta viaja La luz finalmente llega al observador (o a la cámara) Introducción S. Castro, N. Gazcón CG 2015 Iluminación Percepción Reflectancia Supongamos que construimos un modelo de una esfera usando muchos polígonos y la pintamos con un determinado color. Tendremos algo como esto: pero nosotros queremos Introducción S. Castro, N. Gazcón CG 2015 Introducción S. Castro, N. Gazcón CG 2015 ¿Qué hace que una esfera se vea más real? Las interacciones luz-material de la esfera hacen que cada punto tenga un color o sombreado diferente. Necesitamos entonces tener en cuenta: Las fuentes de luz Las propiedades del material La ubicación del observador La orientación de la superficie con respecto a la luz y al observador Introducción S. Castro, N. Gazcón CG 2015 Veremos entonces distintos métodos para renderizar una escena. Para ello debemos contar con modelos que nos permitan describir cómo la luz que emana de una fuente determinada interactuará con los objetos de la escena y cómo esto se refleja en la imagen en pantalla. Es decir que: Objetivo Dado un modelo geométrico, usualmente en la forma de red poligonal, se debe crear una imagen rasterizada que parezca lo más real posible (fotorrealística) y esto debe lograrse en tiempos interactivos.

Upload: lamhanh

Post on 09-Dec-2018

215 views

Category:

Documents


0 download

TRANSCRIPT

1

Iluminación (I)

Lab. de Visualización y Computación Gráfica Dpto. de Ciencias e Ingeniería de la Computación

Universidad Nacional del Sur

Introducción

S. Castro, N. Gazcón CG 2015

Vimos que la generación de una escena 3D requiere 3 componentes

esenciales:

• El mundo 3D de los objetos

• La o las fuentes de luz

• La cámara o el ojo que observa la escena

Hemos visto cómo modelar objetos, cómo generar una escena a

partir de éstos, cómo manipular la cámara para verlos y cómo

presentarlos en pantalla.

¿Cómo se generan las imágenes en el mundo real?

• La luz sale de una fuente de luz y viaja en línea recta en el espacio.

• La luz incide sobre, se refleja y posiblemente pasa a través de los

objetos.

• Los efectos atmosféricos podrían modificar la luz mientras ésta viaja

• La luz finalmente llega al observador (o a la cámara)

Introducción

S. Castro, N. Gazcón CG 2015

Iluminación

Percepción

Reflectancia

Supongamos que construimos un modelo de una esfera usando

muchos polígonos y la pintamos con un determinado color.

Tendremos algo como esto:

pero nosotros queremos

Introducción

S. Castro, N. Gazcón CG 2015

Introducción

S. Castro, N. Gazcón CG 2015

¿Qué hace que una esfera se vea más real?

Las interacciones luz-material de la esfera hacen que cada punto tenga un

color o sombreado diferente. Necesitamos entonces tener en cuenta:

• Las fuentes de luz

• Las propiedades del material

• La ubicación del observador

• La orientación de la superficie con respecto a la luz y

al observador

Introducción

S. Castro, N. Gazcón CG 2015

Veremos entonces distintos métodos para renderizar una escena.

Para ello debemos contar con modelos que nos permitan describir

cómo la luz que emana de una fuente determinada interactuará con

los objetos de la escena y cómo esto se refleja en la imagen en

pantalla. Es decir que:

Objetivo

Dado un modelo geométrico, usualmente en la forma de red

poligonal, se debe crear una imagen rasterizada que parezca lo

más real posible (fotorrealística) y esto debe lograrse en tiempos

interactivos.

2

Introducción

S. Castro, N. Gazcón CG 2015

Para lograr nuestro objetivo debemos :

- Contar con los modelos necesarios que permitan producir

imágenes rasterizadas que parezcan fotorrealísticas.

- Este modelo debe estar basado en la interacción de la luz con la

materia.

- El tiempo de renderizado debe ser lo más rápido posible.

Introducción

S. Castro, N. Gazcón CG 2015

Es impráctico simular todos los principios físicos de dispersión y absorción

de la luz. Se han desarrollado distintos modelos aproximados que, sin ser

reales, producen buenos niveles de realismo.

Hemos visto cómo modelar objetos, como crear una escena y cómo

renderizarla mediante un rendering wireframe.

S. Castro, N. Gazcón CG 2015

Introducción a los

Modelos de Iluminación

S. Castro, N. Gazcón CG 2015

Introducción

S. Castro, N. Gazcón CG 2015

El mecanismo de interacción de la luz con una superficie es muy

complejo y depende de muchos factores.

Algunos de éstos son geométricos, tales como la dirección relativa

de las fuentes de luz, el ojo del observador y la normal a la

superficie en cada punto. Otros están relacionados con las

características de la superficie, tales como su rugosidad y su color.

Un modelo de iluminación determina cómo la luz es absorbida o

dipersada (reflejada, transmitida, refractada) desde una superficie.

Veremos algunos de los modelos de iluminación utilizados en

Computación Gráfica.

Interacción

S. Castro, N. Gazcón CG 2015

Reflexión

3

Interacción

S. Castro, N. Gazcón CG 2015

Refracción

Ley de Snell

n1 sen 1 = n2 sen 2

Interacción

S. Castro, N. Gazcón CG 2015

Refracción vmedio= c/nmedio

c = 3*108 m/s

nmedio= índice de refracción

en un determinado medio

Ley de Snell

n1 sen 1 = n2 sen 2

Interacción

S. Castro, N. Gazcón CG 2015

Dispersión

El índice de refracción es diferente para diferentes longitudes de

onda

Interacción

S. Castro, N. Gazcón CG 2015

Efectos atmosféricos

Interacción

S. Castro, N. Gazcón CG 2015

Arcoiris

- Refracción, reflexión interna, dispersión

Interacción

S. Castro, N. Gazcón CG 2015

Caustics

4

Interacción

S. Castro, N. Gazcón CG 2015

Caustics

Interacción

Interferencia

S. Castro, N. Gazcón CG 2015

Interacción

Interferencia

- Si las reflexiones están en fase

(picos y valles coinciden) las

ondas se reforzarán.

- Si las ondas están fuera de fase,

se cancelarán entre sí.

S. Castro, N. Gazcón CG 2015

Interacción

Difracción

S. Castro, N. Gazcón CG 2015

Interacción

Difracción

- La superficie tiene estrías que están

espaciadas en el orden de la longitud de

onda de la luz

- Algunas longitudes de onda se reflejan en fase

y otras fuera de fase.

S. Castro, N. Gazcón CG 2015

Modelos

S. Castro, N. Gazcón CG 2015

Modelos de Iluminación (Illumination): Extraen

aquellos factores que determinan el color (o la

intensidad) en un determinado punto de una

superficie iluminada, basándose en la interacción de

la luz con el material.

Modelos de Sombreado (Shading model): Deben determinarse tanto el

muestreo de la escena como el esquema de interpolación. El muestreo de la

escena determina el tamaño de los puntos de muestra sobre la superficie sobre

los que se aplicará el modelo de iluminación. El esquema de interpolación de los

puntos restantes de la superficie se aproximará utilizando los colores de los

puntos de muestra mediante métodos interpolantes. En este proceso se asignan

colores a los pixels.

¿A qué puntos de la superficie se le aplicará el modelo

de iluminación?

5

Modelos de Iluminación

S. Castro, N. Gazcón CG 2015

Modelos de Fuentes de Luz (Light model): definen la naturaleza de

la luz que emana de una fuente de luz.

Modelos de Reflexión (Lighting): definen la intensidad de luz

reflejada desde un punto de la superficie de un objeto. En esto juegan

un rol esencial las características de la superficie.

Los Modelos de Iluminación pueden ser

empíricos (formulaciones simples que

aproximan el fenómeno observado) o

basados en la física (basados en las

interacciones de la luz con la materia).

Las fuentes de luz

S. Castro, N. Gazcón CG 2015

Tipos de Luces

S. Castro, N. Gazcón CG 2015

Se pueden simular distintos tipos de fuentes luminosas:

- Luz ambiente

- Luces omnidireccionales o puntuales (bulbo incandescente)

- Spots

- Luces lineales/ de área (ej. fluorescentes)

- Luces infinitas o direccionales (luz del sol)

Cada tipo de luz tiene su propio modelo.

Modelos de las Fuentes de Luz

S. Castro, N. Gazcón CG 2015

bI

gI

rI

I

Una fuente de luz se caracteriza por:

- Espectro de emitancia (color)

- Geometría (posición y orientación)

- Intensidad o función de luminancia I y atenuación

I es el valor escalar que se refiere a la intensidad de la componente con

longitud de onda .

Notaremos con Lp a la intensidad de iluminación que se recibe en un punto p

sobre una superficie.

Modelos de las Fuentes de Luz

S. Castro, N. Gazcón CG 2015

Luz Ambiente

abI

agI

arI

aI

La = Ia

La luz es utilizada para producir un efecto de iluminación uniforme sobre

cada punto de cada superficie en la escena. Su intensidad es constante.

Se especifica mediante:

La intensidad de iluminación La recibida en un punto p sobre una superficie

es:

Aunque cada punto de la escena recibe la misma La, veremos que cada

superficie la refleja de manera diferente.

Modelos de las Fuentes de Luz

S. Castro, N. Gazcón CG 2015

Así se ve la escena si es sombreada sólo con luz ambiente. Debe

notarse que Ra tiene sus componentes rgb.

6

Modelos de las Fuentes de Luz

S. Castro, N. Gazcón CG 2015

Luz Puntual

La luminancia de una fuente de luz puntual localizada en un punto p0 se

caracteriza por:

) ( b

I

) ( gI

) ( rI

) (

0

0

0

0

p

p

p

p I p

p0

) (attf) (p 00p I pp, IL

La intensidad de iluminación Lp en cualquier punto p sobre una superficie es:

siendo d la distancia entre p y p0

a, b, c constantes definidas por el usuario para suavizar

la iluminación de una luz puntual.

2cd bd a1

attf

El factor de atenuación está dado por:

d

Modelos de las Fuentes de Luz

S. Castro, N. Gazcón CG 2015

Spot

Se construye a partir de una fuente de luz ps

definiendo un cono para limitar los ángulos 2 a

los cuales se ve la luz desde la fuente.

ps

Is

s

ps

2

se denomina ángulo de corte del spot

Is es la dirección en la que apunta el spot

s es el vector desde ps a un punto sobre la superficie iluminada.

siendo s e Is vectores unitarios = cos –1( s • Is )

Modelos de las Fuentes de Luz

S. Castro, N. Gazcón CG 2015

Modelado de Spots más realistas

Para esto la iluminación dentro del cono se caracteriza mediante una función

f() que especifica la distribución de su luminancia ( = cos –1( s • Is )).

ps

Is

s

ps

2

e es el exponente del spot

f ()

0

Intensidad

El spot se convierte en una fuente de luz puntual si

=180º y f() es constante.

e cos )f( Intensidad

Modelos de las Fuentes de Luz

S. Castro, N. Gazcón CG 2015

Luces distantes (paralelas)

En la práctica, las fuentes de luz distantes pueden

ser tratadas como fuentes paralelas de luz; es una

buena aproximación de la luz solar.

La dirección de la luz es constante sobre toda la

superficie y se describe mediante la dirección de

la fuente de luz:.

,

1

z

y

x

0 p

0

z

y

x

0 p

S. Castro, N. Gazcón CG 2015

Luz ambiente Luz distante (paralela)

Spot Spot suavizado

Luz puntual

Modelos de las Fuentes de Luz

Modelos de Reflexión

S. Castro, N. Gazcón CG 2015

7

Modelos de Reflexión

S. Castro, N. Gazcón CG 2015

La interacción de la luz con una superficie es un fenómeno

complejo. La luz que sale de un objeto depende de la luz incidente

y de la forma y el material del objeto. El modelado de esta

interacción abarca desde los modelos muy simples a los muy

complejos.

Modelos de Reflexión

S. Castro, N. Gazcón CG 2015

Por forma nos referimos a la forma o a la geometría en gran escala

de un objeto. Las variaciones geométricas a una escala muy fina

existen como parte del material de un objeto. Cuando nos estemos

refiriendo a la geometría del objeto sabremos si ésta es parte de su

forma y/o de su material dependiendo de la escala del problema

que estemos considerando.

Modelos de Reflexión

S. Castro, N. Gazcón CG 2015

Es necesario derivar expresiones de cómo un determinado material

distribuye la energía de la luz incidente con respecto a la posición, la

dirección y la longitud de onda.

Las variaciones direccionales son esenciales en el modelado de la

apariencia. La cantidad clave en la definición de la transferencia de la luz

en una dirección particular es la radiancia. La cantidad clave para expresar

el efecto direccional de los materiales sobre la radiancia incidente es la

función de distribución de reflectancia bidireccional (BRDF, bidirectional

reflectance distribution function).

Modelos de Reflexión

Origen de las BDRF

Interacción con la superficie Interacción a nivel de subsuperficie

S. Castro, N. Gazcón CG 2015

Modelos de Reflexión

Origen de las BDRF

Interacción con la superficie Interacción a nivel de subsuperficie

S. Castro, N. Gazcón CG 2015

Modelos de Reflexión

Consideraremos distintos tipos de reflexión:

- Reflexión lambertiana o difusa

La luz se refleja igual en todas las direcciones

- Reflexión de espejo perfecto

-La luz incidente se refleja en una sola dirección

- Reflexión especular

-La luz se refleja en un lóbulo especular alrededor de la dirección de reflexión

perfecta.

S. Castro, N. Gazcón CG 2015

8

Modelos de Reflexión

Los reflectores difusos ideales reflejan la luz de acuerdo a la Ley del coseno de

Lambert. La Ley de Lambert (la intensidad de la luz reflejada es directamente

proporcional al coseno del ángulo de incidencia) determina cuánto de la luz incidente

es reflejada. En este modelo, la cantidad de energía reflejada en cualquier dirección

es constante; esto implica que es independiente del punto de vista pero depende de

la orientación de la superficie con respecto a la fuente de luz.

S. Castro, N. Gazcón CG 2015

Reflexión Difusa

Modelos de Reflexión

S. Castro, N. Gazcón CG 2015

Reflexión Especular

La reflexión especular desde un punto

de vista adiciona los puntos luminosos

(highlights) que vemos en las superficies

brillantes.

El brillo en la superficie es inversamente proporcional al tamaño del punto

luminoso. El punto luminoso es dependiente del punto de vista.

Modelos de Reflexión

Los materiales brillantes reales tienden a desviar significativamente su

comportamiento con respecto al de los reflectores ideales.

En general, esperamos que la mayoría de la luz reflejada viaje en la dirección

del rayo reflejado ideal. Sin embargo, debemos esperar que parte de la luz

reflejada desvíe su dirección de reflexión respecto a esta dirección ideal (lóbulo

de reflexión). A medida que nos alejamos más y más del rayo reflejado en el

sentido angular esperamos ver menos luz reflejada.

S. Castro, N. Gazcón CG 2015

Modelos de Reflexión

Distintos modelos de reflexión pueden modelar distintos materiales

S. Castro, N. Gazcón CG 2015

Modelos de Reflexión Simples en CG

S. Castro, N. Gazcón CG 2015

Modelo de iluminación de Phong (1975)

Es un modelo de iluminación local que aunque no verifica los requerimientos

de conservación de la energía es uno de los modelos que más se ha usado

en la práctica.

Calcula el color de un punto p sobre una superficie cuando ésta es iluminada

por una luz ambiente y una determinada cantidad de luces puntuales.

En la ecuación de iluminación se consideran tres términos: el ambiente, el

difuso y el especular. Cada término se calcula utilizando una intensidad de

iluminación Lλ recibida en un punto p y una reflexión Rλ que está relacionada

con las propiedades del material de la superficie.

Modelos de Reflexión Simples en CG

S. Castro, N. Gazcón CG 2015

El modelo de iluminación de Phong. La calidad de la imagen es la típica

esperada con este modelo de iluminación.

9

Modelo de Phong

S. Castro, N. Gazcón CG 2015

El modelo de iluminación de Phong considera que la reflexión de

una superficie consiste en tres componentes linealmente

combinadas

Inicialmente derivaremos el modelo considerando únicamente

luces y superficies monocromáticas. Luego veremos cómo se

extiende el modelo para luces y superficies coloreadas.

Luz reflejada = componente ambiente +

componente difusa +

componente especular

I = LaRa + LdRd + LsRs

Modelo de Phong

S. Castro, N. Gazcón CG 2015

Término Ambiente

La= Ia

La cantidad de luz reflejada estará dada por el coeficiente de

reflexión ambiente ka , es decir :

Ra= ka donde 0 ka 1

Por lo tanto la cantidad de luz ambiente reflejada en p estará

dada por:

Ra La= ka Ia

S. Castro, N. Gazcón CG 2015

La cantidad de luz reflejada estará dada por el coeficiente de

reflexión difusa kd y siendo también proporcional al cos , es decir :

Rd= kd cos donde 0 kd 1

Por lo tanto el término difuso en p estará dado por:

dado que L y N son vectores unitarios.

Ld Rd = fat Ip kd cos = fat Ip kd (L·N)

Ld= fat Ip

siendo fat el factor de atenuación de la fuente de luz.

Término Difuso

Modelo de Phong

S. Castro, N. Gazcón CG 2015

Término Especular

p

N

L

R

V

Ld = fat Ip

La cantidad de luz reflejada

especularmente, de acuerdo a lo

propuesto por Phong, estará dada por:

Rs = ks (cos )n donde 0 ks 1

Por lo tanto el término especular en p estará dado por:

LsRs = fat Ip ks (cos )n = fat Ip ks (R·V)n

siendo ks el coeficiente de reflexión especular y n el de brillo.

Modelo de Phong

El diagrama muestra cómo cae la reflectancia en el modelo de iluminación

de Phong en función de y de n. Para un valor de n grande, la

reflectancia decrece rápidamente con el ángulo desde el cual se mira ().

S. Castro, N. Gazcón CG 2015

LsRs = fat Ip ks (cos )n

Modelo de Phong

S. Castro, N. Gazcón CG 2015

Perfil de variación de intensidad en el modelo de Phong

IPhong = Ia ka + fatt Ip [ kd ( N L ) + ks ( R V ) n ]

L

V

Término ( R V )

R Término ( N L )

Término Ambiente

n = 10, 40 , 160

N

Modelo de Phong

10

S. Castro, N. Gazcón CG 2015

IPhong = Ambiente + Difusa + Especular

= LaRa + LdRd + LsRs

= kaIa + fat Ip kd (L·N) + fatIp ks cosn()

De acuerdo al modelo de Phong, la intensidad luminosa en un punto p visto

desde una determinada distancia a lo largo de una dirección V está dada

por la suma de tres términos:

IPhong = kaIa + fat Ip (kd (L·N) + ks (R·V)n)

Ésta se denomina ecuación de Iluminación de Phong

Incorporamos ahora tanto fuentes de luz como superficies coloreadas.

Modelo de Phong

S. Castro, N. Gazcón CG 2015

Las superficies, al igual que las fuentes de luz de color, se tratan con ecuaciones

separadas para cada componente del modelo de color. La tripla (OdR, OdG, OdB),

por ejemplo, define las componentes difusas roja, verde y azul. Por lo que, para

una dada longitud de onda, la ecuación de iluminación teniendo en cuenta los

términos ambiente y difuso es:

siendo =R,G,B respectivamente.

Una formulación alternativa usa coeficientes separados para cada componente y

sustituye ka Od por ka y kd por kd Od .

En el modelo de Phong, la iluminación para fuentes y superficies coloreadas se

define como

I = Ia ka Od + fat Ip kd Od (L·N)

I = Ia ka + fat Ip (kd (L·N) + ks (R·V)n)

Modelo de Phong

S. Castro, N. Gazcón CG 2015

Difusa Pura Con Modelo de Phong

Modelo de Phong

S. Castro, N. Gazcón CG 2015

Aumentando la difusa Aumentando la ambiente

Aumentando la especular

Ejemplos

Modelo de Phong

Modelo de Iluminación de Phong

S. Castro, N. Gazcón CG 2015

Modelo de Phong

S. Castro, N. Gazcón CG 2015

Reflexión Difusa de la Luz

Ambiente

Es constante; simula la

iluminación global o

indirecta

Modelo de Phong

11

S. Castro, N. Gazcón CG 2015

Ambiente + Difusa

Modelo de Phong

S. Castro, N. Gazcón CG 2015

Ambiente + Difusa + Especular

Modelo de Phong

Propiedades de los Materiales

S. Castro, N. Gazcón CG 2015

Modelo de Phong

S. Castro, N. Gazcón CG 2015

Usando el modelo de Phong, los objetos pueden renderizarse con distintos colores

simulando distintos materiales

Modelo de Phong

S. Castro, N. Gazcón CG 2015

Hierro Acero Acero Inox Acero de máq Bronce antiguo

Bronce pulido Cobre Bronce Níquel Zinc

Plomo Al fundido Al maquinado Magnesio Oro

Oro lustrado Oro pulido Plata Plata pulida Tungsteno

Platino Cromo Cromo Plateado Grafito Mercurio

S. Castro, N. Gazcón CG 2015

kd

ks 0.0 0.2 0.4 0.6 0.8 1.0

0.0

0.2

0.4

0.6

0.8

1.0

12

S. Castro, N. Gazcón CG 2015

ks

10

30

90

270

810

0.0 0.25 0.5 0.75 1.0

n

Modelo de Phong

S. Castro, N. Gazcón CG 2015

- Se asume que las fuentes de luz son puntos luminosos. Se ignora

cualquier distribución de intensidad.

- Se ignora cualquier geometría que no sea la normal

- Los términos difusos y especular se modelan como componentes

locales

- Se usa un modelo empírico para simular el decremento del término

especular a ambos lados del vector de reflexión

- Se asume que el color de la reflexión especular es el de la fuente de

luz

- El término global se modela como una constante no considerándose

interreflexiones.

S. Castro, N. Gazcón CG 2015

Modelo de Blinn-Phong

Este modelo también es un modelo empírico (no es un modelo teórico

correspondiente al proceso de reflexión especular) de iluminación local

Al igual que el modelo de Phong, también calcula el color de un punto p sobre

una superficie cuando ésta es iluminada por una luz ambiente y una

determinada cantidad de luces puntuales del siguiente modo:

Iblinn-Phong = Ambiente + Difusa + Especular

= Ia ka Od + fat Ip kd Od (L·N) + Especular

Modelo de Blinn-Phong

S. Castro, N. Gazcón CG 2015

Modelo de Blinn-Phong

Este modelo define un vector halfway H.

y así el nuevo término especular se calcula como (N∙H)n. El vector H

se calcula como (L+V)/|L+V| y la ecuación de iluminación es entonces:

IBlinn-Phong = Ia ka Od + fat Ip (kd Od (L·N) + ks Od (N·H)n)

Modelo de Blinn-Phong

S. Castro, N. Gazcón CG 2015

Modelo de Blinn-Phong

Además de la conveniencia computacional, Blinn notó que las reflexiones de

espejo perfecto sólo se observaban cuando la normal a la superficie está

alineada con H. En tanto la normal a la superficie macroscópica es N, a nivel

microscópico la superficie tiene variaciones de altura que resultan en muchas

orientaciones diferentes. La apertura del lóbulo especular puede pensarse

como el resultado de microsuperficies orientadas en la dirección del vector H

con una vecindad relacionada con el cos ρ.

Modelo de Blinn-Phong

Modelos de Sombreado

S. Castro, N. Gazcón CG 2015

13

S. Castro, N. Gazcón CG 2015

La iluminación retorna el color en un solo punto. ¿Cómo calculamos

la iluminación en toda la superficie del objeto?

Sombreado

Sombreado de un objeto

S. Castro, N. Gazcón CG 2015

Tratamos el problema de calcular la intensidad de la luz en un punto del

objeto.

Este cálculo puede hacerse:

- Por caras. Se usa la normal a la cara y se calcula la iluminación sobre la

misma..

- Por vértices. Se usa la normal al vértice y se interpola la iluminación en

toda la cara.

- Por pixels (o fragmentos). Es la más exaca y cara. Se interpolan las

normales sobre la cara.

Sombreado

S. Castro, N. Gazcón CG 2015

El método más simple.

- Realiza un cálculo de iluminación por polígono y se determina

así un solo valor de intensidad que se aplicada a todo el

polígono.

- Se denomina sombreado plano o constante.

Sombreado plano

La iluminación se calcula usualmente en el

centroide de la cara:

n

i

ipn

centroide1

1

S. Castro, N. Gazcón CG 2015

l Sombreado plano:

→ Trabaja bien para todos los objetos hechos con todas las caras realmente planas.

→ Si el modelo no tiene caras planas la apariencia depende de la cantidad de polígonos usados para simular caras curvas.

l Si el modelo poliédrico es una aproximación, entonces debe ser suavizado.

Sombreado plano

S. Castro, N. Gazcón CG 2015

Esto es válido cuando:

- El observador está infinitamente lejano, es

decir que V es constante en todo el

polígono (R·V es constante) -Se está modelando un polígono que no es

una aproximación de una superficie curva

(superficie plana N es constante)

- La fuente de luz está infinitamente lejana (paralela), es decir, que

L es constante en todo el polígono (L·N es constante)

Sombreado plano

S. Castro, N. Gazcón CG 2015

Sombreado plano

14

S. Castro, N. Gazcón CG 2015

Con el objetivo de no calcular todos los parámetros para

evaluar la ecuación de iluminación en cada punto que

corresponda del polígono, se propuso el sombreado

interpolante.

La interpolación se realiza a lo largo de las líneas de scan y,

para aumentar la eficiencia se puede utilizar, para los

parámetros que corresponda, un cálculo incremental.

Métodos Interpolantes

S. Castro, N. Gazcón CG 2015

Se calcula la intensidad de la luz en los vértices del polígono y se

interpolan estas intensidades para encontrar los valores en los pixels en

los que proyecta el polígono en pantalla.

La intensidad en cada vértice se calcula usando un modelo de reflexión

local, por ejemplo, el método de Phong.

La intensidad de cada pixel se interpola

bilinealmente a partir de la iluminación calculada

en los vértices.

IPhong = ka Ia + fat Ip (kd (L·N) + ks (R·V)n)

Sombreado de Gouraud

La interpolación se realiza a lo largo de las

líneas de scan de manera incremental.

S. Castro, N. Gazcón CG 2015

Sombreado de Gouraud

Se calcula la intensidad de la luz en los vértices del polígono y se

interpolan estas intensidades para encontrar los valores en los pixels en

los que proyecta el polígono en pantalla.

La intensidad en cada vértice se calcula usando un modelo de reflexión

local, por ejemplo, el método de Phong. Para calcular la intensidad en

cada vértice, ¿qué normal se utiliza?.

S. Castro, N. Gazcón CG 2015

Las normales para cada vértice se calculan:

4321

4321

NNNN

NNNNNv

Nv se utiliza para calcular la intensidad en el vértice v que es

común a todos los polígonos que lo comparten

Sombreado de Gouraud

S. Castro, N. Gazcón CG 2015

… la interpolación bilineal se realiza del siguiente modo:

Sombreado de Gouraud

Se interpola entre puntos a lo

largo de los lados

Se interpola a lo largo de las

líneas de scan.

A partir de la iluminación calculada en ciertos

puntos clave como los vértices del polígono …

S. Castro, N. Gazcón CG 2015

La interpolación bilineal se realiza del siguiente modo:

babaabp III )1(

ab

ap

abscanscan

xx

xx

yy

yy

yy

yy

13

113

12

112

Sombreado de Gouraud

313113

212112

)1(

)1(

III

III

b

a

15

S. Castro, N. Gazcón CG 2015

La iluminación en cada punto se calcula entonces:

10 )(

10 )(

10 )(

131313113131

121212112121

abababaababap

b

a

IIIII

IIIII

IIIII

babaabp

b

a

III

III

III

)1(

)1(

)1(

313113

212112

Sombreado de Gouraud

Se puede realizar un cálculo incremental:

S. Castro, N. Gazcón CG 2015

Si la interpolación bilineal se realiza incrementalmente:

)(

)1(

1

ab

ab

p

ppp

a

ab

pb

b

ab

pb

p

IIxx

xI

III

Ixx

xxI

xx

xxI

Sombreado de Gouraud

S. Castro, N. Gazcón CG 2015

Sombreado de Gouraud

S. Castro, N. Gazcón CG 2015

l Sombrear cada vértice con su

normal.

l Interpolar linealmente el color en toda

la cara

l Ventajas:

Cálculos incrementales que son

rápidos en el proceso de

rasterizado.

Mucho más suave – usa una

normal por vértice compartido

para lograr continuidad de

sombreado entre distintos

parches.

l Desventajas:

¿Cuáles son los problemas?

¿Es exacto?

Sombreado de Gouraud

S. Castro, N. Gazcón CG 2015

Se calculan las normales en cada vértice del polígono. Luego

se interpolan para cada punto del polígono que se proyecta

en un pixel.

Estas normales interpoladas se

utilizan en el cálculo de intensidad

en los puntos del polígono que

corresponden a cada pixel

proyectado.

Sombreado de Phong

S. Castro, N. Gazcón CG 2015

El sombreado de Phong

da una imagen de mejor

calidad que el de

Gouraud. Esto ocurre

especialmente cuando

hay puntos brillantes. El

costo computacional es

más alto.

Se utilizan la misma forma funcional para interpolar normales

bilinealmente que para interpolar intensidades.

En cada pixel, la normal interpolada se transformada a coordenadas

del sistema de coordenadas del mundo. Se calcula una nueva

intensidad para el pixel en coordenadas del mundo.

Sombreado de Phong

16

S. Castro, N. Gazcón CG 2015

Los puntos brillantes se reproducen mejor con el sombreado de Phong;

por ejemplo, si consideramos con diferentes valores de normales en

los vértices compartidos:

Gouraud Phong

V1

V2

V3

- tiene un vértice con alto

coeficiente de brillo (n alto).

El sombreado de Gouraud desparrama incorrectamente el brillo sobre

el porque interpola intensidades.

El sombreado de Gouraud se implementa por hardware para la mayoría

de las APIs. El de Phong puede implementarse con shaders.

Sombreado de Phong

S. Castro, N. Gazcón CG 2015

La interpolación de las normales tiene un efecto geométrico favorable:

Esto muestra que la interpolación de las normales tiende a

restablecer la curvatura de la superficie original que se aproximó

mediante una red poligonal.

Observar qué ocurre con la magnitud de las normales.

Sombreado de Phong

S. Castro, N. Gazcón CG 2015

l Interpola las normales en todo el parche

l Realiza el sombreado de cada pixel

l Ventajas:

Mejor calidad, especularidades más

exactas

l Desventajas:

Es más caro que el sombreado de

Gouraud.

Es aún una aproximación para la

mayoría de las superficies.

l No debe confundirse con el modelo de

iluminación especular de Phong.

Sombreado de Phong

S. Castro, N. Gazcón CG 2015

Sombreado de Phong

S. Castro, N. Gazcón CG 2015

Plano Gouraud Phong

Red

más

gruesa

Comparación

S. Castro, N. Gazcón CG 2015

Siluetas poligonales

No importa cuán bueno sea el modelo de sombreado interpolante usado en

una superficie curva: la silueta es aún claramente poligonal. Esto se mejora subdividiendo la superficie en mayor número de polígonos a

expensas de costo computacional.

Problemas de los métodos interpolantes para sombreado

17

S. Castro, N. Gazcón CG 2015

Distorsión por la perspectiva

Son las anomalías que ocurren debido a que la interpolación es llevada a cabo

luego de la transformación en perspectiva en el sistema de coordenadas 3D de

la pantalla: la interpolación lineal hace que la información de sombreado sea

incrementada en forma constante de una línea de scan a la siguiente.

¿Cómo se soluciona este problema?

De una línea de scan a la siguiente Pero no es cierto que zs=(z1+z2)/2

ys=(y1+y2)/2 Is=(I1+I2)/2

Problemas de los métodos interpolantes para sombreado

S. Castro, N. Gazcón CG 2015

Distorsión por la perspectiva

Primitiva original

Sombreado de Gouraud Sombreado correcto

Espacio del objeto

Problemas de los métodos interpolantes para sombreado

S. Castro, N. Gazcón CG 2015

Vértices compartidos

Pueden ocurrir discontinuidades de sombreado en C. La información de

sombreado determinada directamente en C por los polígonos 1 y 2,

típicamente no será la misma que la información interpolada en C por los

valores en A y en B

Problemas de los métodos interpolantes para sombreado

S. Castro, N. Gazcón CG 2015

Normales no representativas en los vértices

Las normales calculadas en los vértices pueden no representar

adecuadamente la geometría de la superficie.

Problemas de los métodos interpolantes para sombreado

S. Castro, N. Gazcón CG 2015

Sombreado en OpenGL

¿Cómo debe ser la red poligonal que modela estos cuerpos? ¿En qué

difieren?

Modelos Locales y Globales

S. Castro, N. Gazcón CG 2015

18

S. Castro, N. Gazcón CG 2015

Los modelos de iluminación local calculan los colores de puntos sobre la

superficie considerando sólo propiedades locales:

- La posición del punto

- Las propiedades de la superficie

- Las propiedades de las fuentes de luz que

la afectan

No se consideran:

- Los otros objetos presentes en la escena

- Bloqueadores u otros reflectores

Esto es típico de los renderizadores

inmediantos como el de OpenGL

Modelos Locales y Globales

S. Castro, N. Gazcón CG 2015

La iluminación depende de

los objetos en forma local y

de las fuentes de luz directa.

Modelos Locales Modelos Globales

La iluminación en un punto

puede depender de la

iluminación proveniente de

cualquier punto de la escena.

Modelos Locales y Globales

S. Castro, N. Gazcón CG 2015

Modelos Locales Modelos Globales

Modelos Locales y Globales

S. Castro, N. Gazcón CG 2015

Modelos Locales Modelos Globales

Modelos Locales y Globales

S. Castro, N. Gazcón CG 2015

Iluminación directa

Modelos Locales

Modelos Locales y Globales

S. Castro, N. Gazcón CG 2015

En el mundo real, la luz toma caminos indirectos. La luz

- refleja otros materiales (posiblemente múltiples objetos)

- es bloqueada por otros objetos

- puede ser dispersada

- puede ser enfocada en determinados puntos

- puede ser desviada

Estos fenómenos sondifíciles de modelar

- En cada punto debemos considerar no

sólo cada fuente de luz, sino todos

aquellos puntos que podrían reflejar la

luz hacia éste.

Modelos Locales y Globales

19

S. Castro, N. Gazcón CG 2015

Iluminación

directa Sombras Interreflexiones

Modelos Globales

Ray tracing

Radiosidad

Modelos Locales y Globales

Modelos Locales y Globales

Iluminación en el Pipeline 3D

S. Castro, N. Gazcón CG 2015

Objeto Mundo Ojo

C. Modelado C. del Mundo C. del ojo o cámara

C. de Clipping C. 3D de Pantalla C. Ventana

Clipping Pantalla 3D Ventana

¿Dónde se calcula la iluminación de los vértices?

Iluminación en el Pipeline 3D

S. Castro, N. Gazcón CG 2015

Objeto Mundo Ojo Ojo

C. Modelado C. del Mundo C. de la cámara C. de la cámara

C. de Clipping C. 3D de Pantalla C. Ventana

Clipping Pantalla 3D Ventana

¿Dónde se calcula la iluminación de los vértices?

Iluminación en el Pipeline 3D

S. Castro, N. Gazcón CG 2015

Objeto Mundo Ojo

C. Modelado C. del Mundo C. del ojo o cámara

C. de Clipping C. 3D de Pantalla C. Ventana

Clipping Pantalla 3D Ventana

¿Dónde se calcula la iluminación de los fragmentos?

Iluminación en el Pipeline 3D

S. Castro, N. Gazcón CG 2015

C. Modelado C. del Mundo C. de la cámara C. de la cámara

C. de Clipping C. 3D de Pantalla C. Ventana

Clipping Pantalla 3D Ventana

¿Dónde se calcula la iluminación de los fragmentos?

Objeto Mundo Ojo Ojo

Iluminación en el Pipeline 3D

S. Castro, N. Gazcón CG 2015

CO CO CM COjo COjo

Pantalla 3D (CND)

T.Model

.

CP CP CP

T.Mundo T.Vista Iluminación T.Perspectiva

CClip

División

Perspectiva (/w)

T. Viewport

Rasterización Proc.fragmento,

Texturado, Ilum

fragmento, …

Operaciones

Raster

CP

Procesamiento Geométrico (de vértices)

Procesamiento de Fragmentos

20

S. Castro, N. Gazcón CG 2015

Ejemplos

Sombreado Gouraud Sombreado Phong

Ejemplo 1 Ejemplo 2

Ejemplo 1

Calcularemos la iluminación por vértice. Para ello utilizaremos la siguiente

ecuación:

y los coeficientes que representan el material son entonces:

uniform vec4 ka;

uniform vec4 kd;

uniform vec4 ks;

uniform float CoefEsp;

S. Castro, N. Gazcón CG 2015

IBlinn-Phong = ka + kd (L·N) + ks (N·H)n

Ejemplo 1

Programa de vértices (shader de vértices)

in vec4 posV

in vec4 norm

out vec4 colorV;

uniform mat4 Proy;

uniform mat4 MV;

uniform mat4 MVProy;

Uniform mat4 MN;

uniform vec4 posL;

uniform vec4 ka;

uniform vec4 kd;

uniform vec4 ks;

uniform float CoefEsp;

S. Castro, N. Gazcón CG 2015

Ejemplo 1

S. Castro, N. Gazcón CG 2015

{// transformar posición de los vert de entrada del EO al EClipping

gl_Position = MVP * posV;

// transf posición de los vértices de entrada del Esp.obj al Esp.ojo(vE)

vec3 vE = vec3(MV * posV);

// Calc. vector luz en Esp. ojo

vec3 vLE = vec3(posL – vE);

vec3 L= normalize(vLE);

vec3 N = normalize(MN * norm);

vec3 H = normalize(L+V);

// Calc térm difuso+espec de Blinn-Phong

float difuso = max(dot(L,N), 0.0);

float specBlinnPhong = pow(max(dot(N, H), 0.0), CoefEsp);

if (dot(L,N) < 0.0)

specBlinnPhong = 0.0;

colorV = ka + kd *difuso + ks*specBlinnPhong;

}

¡Cuidado!

IBlinn-Phong = ka + kd (L·N) + ks (N·H)n

S. Castro, N. Gazcón CG 2015

Ejemplo 2

¿Cómo realizamos el sombreado de Phong?. Para esto,

debemos calcular la iluminación en cada punto del objeto. Se

interpolarán las normales.

En nuestro programa de fragmentos debemos contar con las

normales interpoladas en cada punto del objeto.

Recordemos que el rasterizador genera fragmentos para todas

las primitivas que no se clipearon. Cada fragmento puede

corresponder a un pixel en el frame buffer y los atributos del

mismo son el color y la posición.

Hay otros atributos que pueden determinarse a partir de los

atributos de los vértices interpolando los valores en los

vértices.

S. Castro, N. Gazcón CG 2015

Ejemplo 2

Aún cuando tengamos:

in vec4 vColor;

out oColor;

void pasarf(void)

{ oColor = vColor;}

el color de cada fragmento se interpolará a partir del color de los

vértices.

Del mismo modo, también se interpolan las coordenadas de textura de

los vértices.

Adicionalmente podemos hacer que se interpole automáticamente

cualquier variable de salida del programa de vértices. Esto permitirá

que podamos hacer cálculos de iluminación fragmento a fragmento.

21

S. Castro, N. Gazcón CG 2015

Ejemplo 2

Así, en lugar de interpolar colores, podemos interpolar las

normales a través del polígono y aplicar el modelo de

sombreado a cada fragmento usando esas normales

interpoladas.

Nuestro procesador de vértices ¿qué debe hacer?

Éste debe transferir datos del programa de vértices al de

fragmentos.

En el programa de vértices debemos calcular:

- posición en coordenadas del ojo

- normal en coordenadas del ojo

y luego pasarlas al programa de fragmentos.

S. Castro, N. Gazcón CG 2015

Ejemplo 2

l Para llevar a cabo el sombreado de Phong (por fragmentos), el

programa de fragmentos necesita conocer la posición y la

normal en el fragmento.

l Como el programa de fragmentos no puede leer gl_Position,

debemos usar otro parámetro para pasar la posición.

l Entonces, pasamos la posición y la normal en parámetros de

tipo out e in.

l Notar que estos parámetros se interpolan bilinealmente de

manera automática cuando se pasan del programa de vértices

al de fragmentos.

Ejemplo 2

S. Castro, N. Gazcón CG 2015

En lugar de calcular la iluminación por vértice la calcularemos en cada fragmento

out vec3 vNE; // vector normal en esp ojo

out vec3 vLE; // vector de dir de luz

out vec3 vVE; // vector de vista (al ojo)

out vec4 posV

uniform vec4 posL; // posición luz

void main(void)

{

// transformar posición de los vert de entrada del esp obj al de clipping

gl_Position = MVP * posV;

// transformar posición de los vert de entrada del esp del obj al del ojo

vec3 vE = vec3(MV * posV);

// calc vector luz en esp ojo

vLE = normalize(vec3(posL – vE));

// transformar normal del esp objeto al del ojo

vNE = normalize(MN * norm);

// calcular el vect del ojo en esp del ojo; el ojo, por def, está en el origen

vVE= normalize(-vE);

}

Ejemplo 2

S. Castro, N. Gazcón CG 2015

Vimos cómo es el programa de vértices (shader de vértices); el programa de fragmentos es el siguiente:

in vec3 vNE; uniform vec4 ka;

in vec3 vLE; uniform float CoefEspec;

in vec3 vVE; uniform vec4 kd;

out vec4 oColor; uniform vec4 ks; . . . . .

void main(void)

{

// calcular los distintos vectores y normalizarlos

vec3 N = normalize(vNE);

vec3 L = normalize(vLE);

vec3 R = reflect(L, N);

vec3 V = normalize(vVE);

vec3 H = normalize(L+V);

// Calc térm difuso+espec de Blinn-Phong

float difuso = …

float specBlinnPhong = …

oColor = ka + kd*difuso + ks*specBlinnPhong;

}

S. Castro, N. Gazcón CG 2015

Otros ejemplos

l ¿Cómo incorporaría a su programa de vértices/fragmentos la

atenuación con la distancia?

l ¿Cómo incorporaría un spot?

S. Castro, N. Gazcón CG 2015