Computer Graphics Lezione 10: Università dell’Insubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2006/07 Marco Tarini la L di T&L Lighting • • L’altra metà del rendering Determinare la luce – quanta luce – di che colore che arriva – da un punto della scena – all’occhio • Problema complesso... Marco Tarini ‧ Computer GraphIcs ‧ 2006/07 ‧ Università dell’Insubria Lighting: alcuni fattori ALTRA LUCE assorbimento in ombra LUCE trasmissione (con rifrazione) riflessione interna riflessione OCCHIO assorbimento da parte del mezzo (e.g. nebbia) scattering sotto la superficie OGGETTO Marco Tarini ‧ Computer GraphIcs ‧ 2006/07 ‧ Università dell’Insubria Lighting: alcuni fattori riflessioni multiple (illuminazione indiretta) LUCE OCCHIO OGGETTO Marco Tarini ‧ Computer GraphIcs ‧ 2006/07 ‧ Università dell’Insubria Lighting: globale VS locale Illuminazione locale – tiene conto solo di: • condizioni di luce – N. luci – loro pos – loro colore • pezzetto della superficie da illuminare – orientamento (normale) – caratteristiche ottiche » per es, colore – il resto del mondo non c’è Illuminzione globale – riflessioni multiple – ombre – scattering sottosuperficiale – rifrazione – ... torna molto più facile da fare con il nostro Hardware Marco Tarini ‧ Computer GraphIcs ‧ 2006/07 ‧ Università dell’Insubria Lighting locale LUCE rifelssione OGGETTO OCCHIO Marco Tarini ‧ Computer GraphIcs ‧ 2006/07 ‧ Università dell’Insubria Cosa è facile fare • Illuminazione locale: – riflessioni della luce su oggetti • con proprietà ottiche molto semplici – con multiple fonti di luci • ma molto semplici: puntiformi • Illuminazione globale: – riflessioni multiple • in maniera BRUTALMENTE approssimata – assorbimento da parte del mezzo • assunzioni semplificanti (nebbia uniforme) – tutto il resto solo "a fatica" • escogitando algoritmi ad-hoc che si adattano al nostro l'HW Marco Tarini ‧ Computer GraphIcs ‧ 2006/07 ‧ Università dell’Insubria I 3 addendi nel modello di Lighting di OpenGL per ogni addendo, ho una componente R, G e B. luce finale = ambiente + riflessione + emissione definite sia per l'oggetto, (sotto forma di attributi per vertice) sia per ogni luce che uso le proprieta ottiche dell'oggetto, (di solito sono attributi per vertice) nel loro insieme sono dette il suo "materiale" terminologia OpenGL Marco Tarini ‧ Computer GraphIcs ‧ 2006/07 ‧ Università dell’Insubria Componente emissione • LEDs, lampadine... • Non dipende dalle luci – solo dall'oggetto • E’ solo una componente additiva – costante per R, G e B • Nota: non manda luce ad oggetti vicini – non e’ illuminazione globale – per fare cio’, devo aggiungere una altra luce Marco Tarini ‧ Computer GraphIcs ‧ 2006/07 ‧ Università dell’Insubria I 3 addendi nel modello di Lighting di OpenGL luce finale = ambiente + riflessione + emissione Marco Tarini ‧ Computer GraphIcs ‧ 2006/07 ‧ Università dell’Insubria Componente ambiente • Modella (grossolanamete) la luce che arriva attraverso rifelssioni multiple • Assunzione: "un pò di luce raggiunge da tutte le direzioni ogni superficie" – anche quelle in ombra • Piccola costante additiva – non dipende dalla normale della superficie Marco Tarini ‧ Computer GraphIcs ‧ 2006/07 ‧ Università dell’Insubria Componente ambiente • prodotto fra: – colore “ambient” del materiale ( RM GM BM) – colore “ambient” della luce ( RL GL BL) • Nota: possono essere colori RGB diversi – prodotto componente per componente Marco Tarini ‧ Computer GraphIcs ‧ 2006/07 ‧ Università dell’Insubria Componente ambiente • Modella (grossolanamete) la luce che arriva da tutte le direzioni attraverso rifelssioni multiple senza con Marco Tarini ‧ Computer GraphIcs ‧ 2006/07 ‧ Università dell’Insubria I 3 addendi nel modello di Lighting di OpenGL luce finale = ambiente + riflessione + emissione solo componente ambient riflessione diffusa + riflessione speculare Marco Tarini ‧ Computer GraphIcs ‧ 2006/07 ‧ Università dell’Insubria I 4 addendi nel modello di Lighting di OpenGL luce finale = ambiente + riflessione diffusa + riflessione speculare + emissione Marco Tarini ‧ Computer GraphIcs ‧ 2006/07 ‧ Università dell’Insubria Componente riflessione diffusa • Esibita nella realtà da (per es): – gesso – legno (quasi) – materiali molto opachi (nel senso di "non lucidi") • Detta anche – diffuse reflection – Lambertian reflection Johann Heinrich Lambert 1728 - 1777 Marco Tarini ‧ Computer GraphIcs ‧ 2006/07 ‧ Università dell’Insubria Componente riflessione diffusa • La luce che colpisce una superficie Lambertiana si riflette in tutte le direzioni (nella semisfera) – nello stesso modo Marco Tarini ‧ Computer GraphIcs ‧ 2006/07 ‧ Università dell’Insubria Componente riflessione diffusa • La luce che colpisce una superficie Lambertiana si riflette in tutte le direzioni (nella semisfera) – nello stesso modo Marco Tarini ‧ Computer GraphIcs ‧ 2006/07 ‧ Università dell’Insubria Componente riflessione diffusa • La luce che colpisce una superficie Lambertiana si riflette in tutte le direzioni (nella semisfera) – nello stesso modo Marco Tarini ‧ Computer GraphIcs ‧ 2006/07 ‧ Università dell’Insubria Componente riflessione diffusa • Dipende solo da: – l'orientamento della superficie • (la "normale") – la direzione della luce • del raggio incidente Marco Tarini ‧ Computer GraphIcs ‧ 2006/07 ‧ Università dell’Insubria Componente riflessione diffusa • Dipende solo da: – l'orientamento della superficie N • (cioè la sua "normale") – la direzione della luce L • (cioé del raggio incidente) I diff I luce diff k materialediff cos R, G, B (spesso, bianco: 1,1,1) R, G, B (il "colore" dell'oggetto) moltiplicazione componente per componente Marco Tarini ‧ Computer GraphIcs ‧ 2006/07 ‧ Università dell’Insubria Componente riflessione diffusa • Dipende solo da: – l'orientamento della superficie N • (cioè la sua "normale") – la direzione della luce L • (cioé del raggio incidente) I diff I luce diff k materialediff cos fa parte del "materiale" (caratteristica dell'oggetto) Marco Tarini ‧ Computer GraphIcs ‧ 2006/07 ‧ Università dell’Insubria Componente riflessione diffusa • Dipende solo da: – l'orientamento della superficie N • (cioè la sua "normale") – la direzione della luce L • (cioé del raggio incidente) I diff I luce diff k materialediff cos Marco Tarini ‧ Computer GraphIcs ‧ 2006/07 ‧ Università dell’Insubria Componente riflessione diffusa • Dipende solo da: – l'orientamento della superficie N • (cioè la sua "normale") – la direzione della luce L • (cioé del raggio incidente) se angolo é compreso fra 0⁰ e 90⁰, else: 0, (oggetto in ombra di se stesso) I diff I luce diff k materialediff cos I luce diff kmaterialediff (N̂ L̂) Marco Tarini ‧ Computer GraphIcs ‧ 2006/07 ‧ Università dell’Insubria Componente riflessione diffusa L L L N componente diffusa piccola ⍬=70⁰ N componente diffusa grande ⍬=35⁰ N componente diffusa massima ⍬=0⁰ Marco Tarini ‧ Computer GraphIcs ‧ 2006/07 ‧ Università dell’Insubria Componente riflessione diffusa L L N componente diffusa ZERO ⍬=90⁰ N componente diffusa ZERO ⍬>90⁰ (la superficie è nella propria stessa ombra) Marco Tarini ‧ Computer GraphIcs ‧ 2006/07 ‧ Università dell’Insubria Componente riflessione diffusa • Proprietà – modello fedele delle caratteristiche ottiche di alcuni materiali reali – ma di pochi materiali – modello fisicamente coerente • per es, conserva l'energia – molto semplice da calcolare Marco Tarini ‧ Computer GraphIcs ‧ 2006/07 ‧ Università dell’Insubria I 4 fattori che consideriamo luce finale = ambiente + riflessione diffusa + riflessione speculare + emissione Marco Tarini ‧ Computer GraphIcs ‧ 2006/07 ‧ Università dell’Insubria Componente riflessione speculare • "Specular" reflection • Per materiali lucidi – con riflessi brillanti – ("highlights") senza con Marco Tarini ‧ Computer GraphIcs ‧ 2006/07 ‧ Università dell’Insubria Componente riflessione speculare • Idea base: la luce non viene riflessa da materiali lucidi in maniera eguale in tutte le direzioni Marco Tarini ‧ Computer GraphIcs ‧ 2006/07 ‧ Università dell’Insubria Componente riflessione speculare L: raggio incidente N: normale R: raggio riflesso V: dir. di vista L in 3D N R V Marco Tarini ‧ Computer GraphIcs ‧ 2006/07 ‧ Università dell’Insubria Componente riflessione speculare • Phong light model – by Bui-Tuong Phong, 1975 I spec I luce spec k materialespec cos in 3D Marco Tarini ‧ Computer GraphIcs ‧ 2006/07 ‧ Università dell’Insubria Componente riflessione speculare • Elevando il coseno ad una potenza, si ottengono riflessi piu' piccoli e brillanti Marco Tarini ‧ Computer GraphIcs ‧ 2006/07 ‧ Università dell’Insubria Componente riflessione speculare • Phong light model – by Bui-Tuong Phong, 1975 I spec I luce spec k materialespec cos in 3D I spec I luce spec kmaterialespec cos n fanno parte del "materiale" (caratteristiche dell'oggetto) Marco Tarini ‧ Computer GraphIcs ‧ 2006/07 ‧ Università dell’Insubria Componente riflessione speculare • Phong light model – by Bui-Tuong Phong, 1975 I spec I luce spec k materialespec cos in 3D I spec I luce spec kmaterialespec cos n n ˆ ˆ I luce spec kmaterialespec ( R V ) Marco Tarini ‧ Computer GraphIcs ‧ 2006/07 ‧ Università dell’Insubria Componente riflessione speculare n 1 n5 n 10 n 100 Marco Tarini ‧ Computer GraphIcs ‧ 2006/07 ‧ Università dell’Insubria Componente riflessione speculare • Blinn-Phong light model: • semplificazione del Phong light model • risultati simili, formula diversa: phong: blinn-phong: n ˆ ˆ I spec I luce spec kmaterialespec ( R V ) n ˆ ˆ I I k (H N ) spec luce spec materialespec "half-way" vector L N H = L + V / |L+V| R V Marco Tarini ‧ Computer GraphIcs ‧ 2006/07 ‧ Università dell’Insubria Componente riflessione speculare • Blinn-Phong light model: • semplificazione del Phong light model • risultati simili, formula diversa: phong: blinn-phong: n ˆ ˆ I spec I luce spec kmaterialespec ( R V ) n ˆ ˆ I I k (H N ) spec luce spec materialespec Jim Blinn (MEGA-MEGA-GURU) Marco Tarini ‧ Computer GraphIcs ‧ 2006/07 ‧ Università dell’Insubria I 4 fattori che consideriamo luce finale = ambiente + riflessione diffusa + riflessione speculare + emissione Marco Tarini ‧ Computer GraphIcs ‧ 2006/07 ‧ Università dell’Insubria Equazione di lighting in totale I tot I luce ambient k materialeambient I luce diffuse k materialediffuse ( L N ) I luce spacular kmaterialespacular ( H N ) n k materialeemission propretà del materiale propretà della luce Marco Tarini ‧ Computer GraphIcs ‧ 2006/07 ‧ Università dell’Insubria Materiali... Marco Tarini ‧ Computer GraphIcs ‧ 2006/07 ‧ Università dell’Insubria Equazione di lighting: modellazione delle luci I tot I luce ambient k materialeambient I k ( Lˆ Nˆ ) luce diffuse materialediffuse n ˆ ˆ I luce spacular kmaterialespacular ( H N ) k materialeemission ( Lˆ Vˆ ) Lˆ Vˆ propretà della luce Marco Tarini ‧ Computer GraphIcs ‧ 2006/07 ‧ Università dell’Insubria Modellazione delle luci • Come varia L? – costante nella scena: fonti di luci "direzionali" • buono per fonti di luce molto distanti, e.g. il sole – varia nella scena: fonti di luci "posizionali" • buono per fonti di luci vicine, e.g. lampadine Marco Tarini ‧ Computer GraphIcs ‧ 2006/07 ‧ Università dell’Insubria Modellazione delle luci: luci posizionali • Nelle luci posizionali, si può attenuare l'intensità in funzione della distanza • In teoria (per la fisica) intensità = 1 / distanza2 1 f attentuazione luce 2 c dL Marco Tarini ‧ Computer GraphIcs ‧ 2006/07 ‧ Università dell’Insubria Modellazione delle luci: luci posizionali • In pratica, questo porta ad attenuazioni della luce troppo repentine • Invece usiamo: 1 f attentuazione luce min , 1 2 c1 c2 d L c3d L Marco Tarini ‧ Computer GraphIcs ‧ 2006/07 ‧ Università dell’Insubria Equazione di lighting I luce ambient k materialeambient I tot I luce diffuse k materialediffuse ( L N ) f attentuazione luce I luce spacular kmaterialespacular ( H N ) n k materialeemission 1 f attentuazione luce min , 1 2 c1 c2 d L c3d L Marco Tarini ‧ Computer GraphIcs ‧ 2006/07 ‧ Università dell’Insubria Tipi di luci • Tipi di luci: – posizionali – direzionali – spot-lights • (faretti) Marco Tarini ‧ Computer GraphIcs ‧ 2006/07 ‧ Università dell’Insubria Spotlights • Definite da tre parametri: Marco Tarini ‧ Computer GraphIcs ‧ 2006/07 ‧ Università dell’Insubria Equazione di Lighting di OpenGL (completa) I luce ambient k materialeambient I tot I luce diffuse kmaterialediffuse ( Lˆ Nˆ ) n ˆ ˆ I luce spacular kmaterialespacular ( H N ) caratteristiche della luce caratteristiche del materiale dati dalla scena f attenuazione luce f effettospotlight k materialeemission 1 f attentuazione luce min , 1 2 c1 c2 d L c3d L f effettospotlight f L, spot direction, spot cutoff Angle, spot beam width Marco Tarini ‧ Computer GraphIcs ‧ 2006/07 ‧ Università dell’Insubria Prossimamente: rasterizer punti setup rasterizer triangoli setup rasterizer segmenti computazioni per frammento setup Frammenti & attributi interpolati Vertici poriettati & attributi computati Vertici computazioni per vertice & loro attributi lighting: DOVE? Screen buffer y v1 v0 x v2 v1 v0 z v2 Marco Tarini ‧ Computer GraphIcs ‧ 2006/07 ‧ Università dell’Insubria