Auxiliar 8

Luces y Materiales

Vicente González
Julieta Coloma

Contexto

Modelo de Phong

  • Es un modelo de iluminación local.
  • No es costoso y es muy paralelizable.
  • Usa los conceptos de Materiales y Luces.

Materiales

Definimos un material como:

\[(\mathcal{K}_a, \mathcal{K}_d, \mathcal{K}_s, \alpha)\]

  • \(\mathcal{K}_a\) - color ambiental del modelo (sin luz).
  • \(\mathcal{K}_d\) - color difuso del modelo (con luz).
  • \(\mathcal{K}_s\) - color especular del modelo (con reflejos).
  • \(\alpha\) - brillo o shininess del modelo (forma de los reflejos).

Materiales

Texturas

Con texturas se suele tener texturas adicionales que guardan los valores difusos y especulares

Difuso

Especular

Luces

\[ \mathcal{I} = \frac{\mathcal{K}_a \mathcal{L}_a + \mathcal{K}_d \mathcal{L}_d (l \cdot n) + \mathcal{K}_s \mathcal{L}_s (v \cdot r)^{\alpha} }{k_c + k_l d + k_q d^2} \]

  • \((\mathcal{K}_a, \mathcal{K}_d, \mathcal{K}_s, \alpha)\) — parámetros del material
  • \((\mathcal{L}_a, \mathcal{L}_d, \mathcal{L}_s)\) — parámetros del color de la luz
  • \((k_c, k_l, k_q)\) — parámetros del atenuación de la luz
  • \(n\) — normal de la superficie
  • \(l\) — dirección hacia la fuente de luz
  • \(v\) — dirección hacia la cámara
  • \(r\) — reflexión sobre la superficie
  • \(d\) — distancia a la fuente de luz

Luces

Direccional

  • Representa una luz lejana
  • Mantiene la misma dirección

\[(\mathcal{L}_a, \mathcal{L}_d, \mathcal{L}_s, l)\]

Luces

Luz puntual

  • La luz básica
  • Se atenúa con la distancia

\[(\mathcal{L}_a, \mathcal{L}_d, \mathcal{L}_s, k_c, k_l, k_q)\]

Luces

Spotlight

  • Es como una linterna
  • Tiene un foco principal
  • Determinado por un \(\theta\) y \(\theta_{outer}\)

\[(\mathcal{L}_a, \mathcal{L}_d, \mathcal{L}_s, k_c, k_l, k_q, l, \theta, \theta_{outer})\]

Problemas

P2 – Shading

Parte A

Cree un nuevo shader donde incluya luces y materiales, para ello puede utilizar

Parte B

Cree 3 funciones para calcular el color según cada tipo de fuente de luz.

Parte C

Añada al shader una función que calcule el color final del pixel según la iluminación de la escena.

P1 — En escena

Usando la escena de clase pasada y sus nuevos shaders

Parte A

Cree 3 bloques nuevos que estén hechos de distintos materiales. Añada también un piso de material simple (sin textura).

Parte B

Cree 2 luces puntuales que roten alrededor de la escena, añada un modelo para representar la ubicación de estas luces.

Parte C

Haga un ciclo de dia y noche, para ello cree una luz direccional que se mueva con el tiempo. Además, cree una linterna para la cámara usando una luz spotlight para la noche.

Utilice diversos pipelines para corregir los errores de iluminación.

Fin

Ver otras auxiliares