6_Modele de Culoare. Iluminare

48
1 Modele de culoare Modelul RGB (Red Green Blue) Model aditiv Culorile sunt rezultatul luminii transmise Folosit de monitoare Red + Blue + Green = White

Transcript of 6_Modele de Culoare. Iluminare

8/18/2019 6_Modele de Culoare. Iluminare

http://slidepdf.com/reader/full/6modele-de-culoare-iluminare 1/48

1

Modele de culoare

Modelul RGB (Red Green Blue)

• Model aditiv

• Culorile sunt rezultatul luminii transmise

• Folosit de monitoare

Red + Blue + Green = White

8/18/2019 6_Modele de Culoare. Iluminare

http://slidepdf.com/reader/full/6modele-de-culoare-iluminare 2/48

2

Modele de culoare

Modelul RGB (Red, Green, Blue)

8/18/2019 6_Modele de Culoare. Iluminare

http://slidepdf.com/reader/full/6modele-de-culoare-iluminare 3/48

3

Modele de culoare

Modelul CMY(Cyan, Magenta, Yellow)

• Model extractiv

• Culorile sunt rezultatul luminii reflectate

• Folosit la imprimante

Cyan + Magenta + Yellow = Black

8/18/2019 6_Modele de Culoare. Iluminare

http://slidepdf.com/reader/full/6modele-de-culoare-iluminare 4/48

4

Modele de culoare

Modelul CMY (Cyan, Magenta, Yellow)

• Model complementarcu modelul RGB:

• C=1-R

• M=1-G

• Y=1-B

 B

 R

Y  

 M 

1

1

1

8/18/2019 6_Modele de Culoare. Iluminare

http://slidepdf.com/reader/full/6modele-de-culoare-iluminare 5/48

5

Modele de culoare

• Modelul CMYK• Datorita imperfectiunii cernelurilor se

adauga K (blacK)

 – K = min(C,M,Y)

 – C = C-K

 – M = M-K – Y = Y-K

8/18/2019 6_Modele de Culoare. Iluminare

http://slidepdf.com/reader/full/6modele-de-culoare-iluminare 6/48

6

Modele de culoare

Modelul HSV (Hue, Saturation, Value)

negru

alb

tente

tonuri

nuante

culoare pura

8/18/2019 6_Modele de Culoare. Iluminare

http://slidepdf.com/reader/full/6modele-de-culoare-iluminare 7/48

7

Modele de culoare

Black

White

Modelul HSV (Hue, Saturation, Value)

Blue

Cyan Red

YellowGreen

Magenta

V

S

H

V: [0, 1]

S: [0, 1]

H: [00, 3600]

8/18/2019 6_Modele de Culoare. Iluminare

http://slidepdf.com/reader/full/6modele-de-culoare-iluminare 8/48

8

Modele de culoare

Modelul HSV (Hue, Saturation, Value)

(300, 1, 1)Magenta(1, 0, 1)

(240, 1, 1)Blue(0, 0, 1)

(180, 1, 1)Cyan(0, 1, 1)

(120, 1, 1)Green(0, 1, 0)

(60, 1, 1)Yellow(1, 1, 0)

(0, 1, 1)Red(1, 0, 0)

HSVRGB

Black

White

Blue

Cyan

Green

V

Red

Yellow

Magenta

8/18/2019 6_Modele de Culoare. Iluminare

http://slidepdf.com/reader/full/6modele-de-culoare-iluminare 9/48

9

Modele pentru calculul luminii

• Modele empirice: – Lumina ambianta

 – Lumina difuza

 – Lumina speculara

• Modele analitice

 – Modelul Lambert

 – Modelul Gouraud – Modelul Phong

8/18/2019 6_Modele de Culoare. Iluminare

http://slidepdf.com/reader/full/6modele-de-culoare-iluminare 10/48

10

• Iluminarea locala – sursele de lumina

 – pozitia observatorului

 – proprietatile de material

• Iluminarea globala

 – interactiunea dintre lumina

provenita de la toatesuprafetele scenei

Modele pentru calculul luminii

obiect 1

obiect 2obiect 3

obiect 4

8/18/2019 6_Modele de Culoare. Iluminare

http://slidepdf.com/reader/full/6modele-de-culoare-iluminare 11/48

11

Lumina ambientala

• Obiectele primesc lumina de la

 – sursele de lumina

 – lumina reflectata sau transmisa de celelalte obiecte

ale scenei = lumina ambientala (este o sursa de

lumina distribuita uniform in spatiu).

Iam

= Ia

* ka

• Ia – este intensitatea luminii ambientale (este constantapentru toate obiectele scenei)

• ka

( 0<= ka<= 1) este coeficientul de difuzie a

luminii ambientale, dependent de material.

8/18/2019 6_Modele de Culoare. Iluminare

http://slidepdf.com/reader/full/6modele-de-culoare-iluminare 12/48

12

Lumina difuza

• Lumina difuza – se apropie cel mai mult de majoritatea luminilor din

lumea reala

 – clasa luminilor cu sursa si directie.

 – pozitia observatorului nu influenteaza culoareaobiectului in acest caz (intensitatea sa este aceeasiindiferent de pozitia observatorului)

8/18/2019 6_Modele de Culoare. Iluminare

http://slidepdf.com/reader/full/6modele-de-culoare-iluminare 13/48

13

Lumina difuza

• Trebuie sa se determine cantitatea de lumina primita

de obiect de la sursa de lumina: legea lui Lambert.

Primeste mai multa lumina Primeste mai putina lumina

8/18/2019 6_Modele de Culoare. Iluminare

http://slidepdf.com/reader/full/6modele-de-culoare-iluminare 14/48

14

Lumina difuza

Id=I

p* k

d* cos(i)

• Daca vectoii N si L sunt normalizati:

Id = Ip * kd * (N.L)

• Ip – este intensitatea luminii incidente

• kd – este coeficientul de difuzie aluminii incidente, 0<=k

d<=1.

i

N

L

P

8/18/2019 6_Modele de Culoare. Iluminare

http://slidepdf.com/reader/full/6modele-de-culoare-iluminare 15/48

15

Lumina difuza

• Pentru vizualizarea a doua suprafete paralele construite

din acelaşi material se va obtine o aceeasi intensitate

• Obiectele mai îndepărtate de sursă sunt mai slab luminate.

d  Distanta de la sursa de lumina

k C coeficient de atenuare constant

k L coeficient de atenuare liniar 

k Q coeficient de atenuare patratic

2

d*k d*k k 

1f 

QLC

at

N

L

B

 A 

Id

= f_atenuare * Ip* k

d* (N.L)

8/18/2019 6_Modele de Culoare. Iluminare

http://slidepdf.com/reader/full/6modele-de-culoare-iluminare 16/48

Lumina difuza

16

Raza incidenta

 Normala

U = unghi(Raza incidenta, Normala)

•  A: U ~ 90 => putina lumina

• B: U ~ 0 => lumina maxima

• C: U > 90 => nu primeste lumina

8/18/2019 6_Modele de Culoare. Iluminare

http://slidepdf.com/reader/full/6modele-de-culoare-iluminare 17/48

17

Lumina speculara

• Este componenta care da stralucirea obiectelor.

• Se aseamana cu lumina difuza, este focalizata.

• Lumina speculara nu poate fi vazuta din orice

pozitie.• Observatorul trebuie sa se afle chiar pe directia ei.

•  Aceasta componenta depinde de pozitiaobservatorului.

nu vede nimic

8/18/2019 6_Modele de Culoare. Iluminare

http://slidepdf.com/reader/full/6modele-de-culoare-iluminare 18/48

18

Lumina speculara

Is

= Ip* k

s* cos(φ)n

ks: coeficientul de reflexie speculara

N: normala la suprafata in P

IP: intestatea luminii

n: coeficient de stralucire

vectorii R si V normalizati

Is = Ip* k s * (R.V)n

i i  V

R N

L

8/18/2019 6_Modele de Culoare. Iluminare

http://slidepdf.com/reader/full/6modele-de-culoare-iluminare 19/48

19

Lumina speculara

Is = Ip* k s * (R.V)n

H = (L+V)

(N·H) ≈ (R.V)

Is = Ip* k s * (N.H)n

 V

R NL H

8/18/2019 6_Modele de Culoare. Iluminare

http://slidepdf.com/reader/full/6modele-de-culoare-iluminare 20/48

Lumina speculara

• Lumina specularadaca unghiul format

de N si H < 90

20

H = V + L

 V

R NL H

8/18/2019 6_Modele de Culoare. Iluminare

http://slidepdf.com/reader/full/6modele-de-culoare-iluminare 21/48

21

N N

n mare n mic

R L L R 

Lumina speculara

8/18/2019 6_Modele de Culoare. Iluminare

http://slidepdf.com/reader/full/6modele-de-culoare-iluminare 22/48

22

Iluminare

ambientala difuza speculara

8/18/2019 6_Modele de Culoare. Iluminare

http://slidepdf.com/reader/full/6modele-de-culoare-iluminare 23/48

Iluminare

23

ambientala ambientala+difuza speculara

8/18/2019 6_Modele de Culoare. Iluminare

http://slidepdf.com/reader/full/6modele-de-culoare-iluminare 24/48

24

Exemplu de iluminare

Lumina ambientala Lumina difuza Lumina speculara

8/18/2019 6_Modele de Culoare. Iluminare

http://slidepdf.com/reader/full/6modele-de-culoare-iluminare 25/48

25

Calculul luminii

• Iluminarea de la o sursa de lumina i:

Iluminarei

= ambientala + difuza + speculara

• Daca sunt N surse de lumina

Iluminarea totala pentru un punct P = i=1..N (Iluminarei)

8/18/2019 6_Modele de Culoare. Iluminare

http://slidepdf.com/reader/full/6modele-de-culoare-iluminare 26/48

26

Modelul Lambert

• Pentru fiecare fata se calculeaza o

singura intensitate

I = k* (Nu · L

u)

• Nu este vectorul unitate normal la suprafata• L

ueste versorul directiei sursei de lumina

• k este constanta

8/18/2019 6_Modele de Culoare. Iluminare

http://slidepdf.com/reader/full/6modele-de-culoare-iluminare 27/48

27

Modelul Gouraud

1. Se calculeaza o normala in fiecare varf al reteleipoligonale.

2. Se calculeaza o intensitate in fiecare

varf al reţelei.

8/18/2019 6_Modele de Culoare. Iluminare

http://slidepdf.com/reader/full/6modele-de-culoare-iluminare 28/48

28

Modelul Gouraud

3. Se afişeaza suprafata calculand intensitatea intr -un punct al unui poligon:

• prin interpolarea

liniara a intensitatilor varfurilor, pentru

punctele de pe laturi;

• prin interpolare liniara intre intensitatile de pe

laturi, pentru punctele interioare de

pe fiecare linie de hasurare.

M d l d il i

8/18/2019 6_Modele de Culoare. Iluminare

http://slidepdf.com/reader/full/6modele-de-culoare-iluminare 29/48

29

Modele de iluminareModelul Lambert

Modelul Gouraud

8/18/2019 6_Modele de Culoare. Iluminare

http://slidepdf.com/reader/full/6modele-de-culoare-iluminare 30/48

30

Modelul Phong

• Se calculeaza normala in fiecare varf alsuprafetei

• Se calculeaza normala in fiecare punct interior suprafetei de afisat (prin interpolare)

• prin interpolarea liniara anormalelor varfurilor, pentru punctele de pelaturi;

• prin interpolare liniara intre normalele de pelaturi, pentru punctele interioare depe fiecare linie de hasurare.

• Se calculeaza intensitatea in fiecare punct

8/18/2019 6_Modele de Culoare. Iluminare

http://slidepdf.com/reader/full/6modele-de-culoare-iluminare 31/48

31

Modelul Phong

• Interpolarea normalelor 

8/18/2019 6_Modele de Culoare. Iluminare

http://slidepdf.com/reader/full/6modele-de-culoare-iluminare 32/48

32

Modelul Gouraud - Phong

Gouraud Phong

8/18/2019 6_Modele de Culoare. Iluminare

http://slidepdf.com/reader/full/6modele-de-culoare-iluminare 33/48

33

Iluminarea in OpenGL

• se calculeazailuminarea in varfuri

Modelul de

iluminare se

aplica pentru

toate punctele

unei suprafete

8/18/2019 6_Modele de Culoare. Iluminare

http://slidepdf.com/reader/full/6modele-de-culoare-iluminare 34/48

34

Modelul de iluminare

•  Atributele luminii (intensitatea luminii, culoare, pozitie,

directie, forma)

•  Atributele suprafetelor obiectelor (culoare,

transparenta)

• Interactiunea dintre lumini si obiecte (orientarea

obiectelor)

• Interactiunea dintre obiecte si observator (directia de

vizualizare)

8/18/2019 6_Modele de Culoare. Iluminare

http://slidepdf.com/reader/full/6modele-de-culoare-iluminare 35/48

35

Calculul luminii in OpenGL

• Tipuri de lumini (pentru fiecare sursa de lumina):

 – Ambientala

 – Difuza

 – Speculara

• Lumina emisiva (lumina pe care un obiect o emite prin el insusi)

 – obiecte incandescente

8/18/2019 6_Modele de Culoare. Iluminare

http://slidepdf.com/reader/full/6modele-de-culoare-iluminare 36/48

36

Realizare iluminare

• Specificarea surselor de lumina

• Specificarea proprietatilor de material

• Specificarea normalelor 

8/18/2019 6_Modele de Culoare. Iluminare

http://slidepdf.com/reader/full/6modele-de-culoare-iluminare 37/48

37

Tipuri de lumina

 – sursa de

lumina este lainfinit (lumina

directionala)

 – sursa de

lumina se afla

exact in

pozitia finita(lumina

pozitionala) Lumina pozitionalaLumina de tip spot

soare

8/18/2019 6_Modele de Culoare. Iluminare

http://slidepdf.com/reader/full/6modele-de-culoare-iluminare 38/48

Exemplu

Lumina pozitionala

GLfloat light_position[] = { 50.0, 100.0, -50.0, 1.0 };

Lumina directionala (soarele)

GLfloat light_direction[] = { -1.0, 0.0, 0.0, 0.0 };

8/18/2019 6_Modele de Culoare. Iluminare

http://slidepdf.com/reader/full/6modele-de-culoare-iluminare 39/48

39

Proprietati sursa de lumina directionala

GLfloat light_ambient[] = {0.2, 0.2, 0.2, 1.0};

GLfloat light_diffuse[] = {1.0, 1.0, 1.0, 1.0};

GLfloat light_specular[] = {1.0, 1.0, 1.0, 1.0};

GLfloat light_position[] = {-1.0, 1.0, -1.0, 0.0};

8/18/2019 6_Modele de Culoare. Iluminare

http://slidepdf.com/reader/full/6modele-de-culoare-iluminare 40/48

40

Specificarea luminilor

• lumina de tip spot

–Directie spot D(x,y,z) in care este orientat spotul

–CUTOFF - deschiderea spotului (θ)

–EXPONENT - reprezinta concentratia luminii in

interiorul spotului (poate fi constanta sau mai puternica

spre centru si mai mica spre margini).

8/18/2019 6_Modele de Culoare. Iluminare

http://slidepdf.com/reader/full/6modele-de-culoare-iluminare 41/48

Lumina de tip spot

•Directia sursei de lumina de tip spot: D

•P - punctul care trebuie sa fie luminat

if unghi(D, L) < θ then P in conul de lumina

θ

8/18/2019 6_Modele de Culoare. Iluminare

http://slidepdf.com/reader/full/6modele-de-culoare-iluminare 42/48

Lumina punctiforma / de tip spot

42

8/18/2019 6_Modele de Culoare. Iluminare

http://slidepdf.com/reader/full/6modele-de-culoare-iluminare 43/48

43

Lumina de tip spot

–EXPONENT - reprezinta concentratia luminii in

interiorul spotului (poate fi constanta sau mai puternicaspre centru si mai mica spre margini).

Con de lumina:

 – Con interior – intensitate constanta

 – Con exterior – intensitate variabila

8/18/2019 6_Modele de Culoare. Iluminare

http://slidepdf.com/reader/full/6modele-de-culoare-iluminare 44/48

Modificarea intensitatii luminii

spotEffect = (D. L)spotExponent

8/18/2019 6_Modele de Culoare. Iluminare

http://slidepdf.com/reader/full/6modele-de-culoare-iluminare 45/48

Exemplu

GLfloat light_position[] = { 50.0, 100.0, -50.0, 1.0 };GLfloat light_spot_direction[] = { 0.0, 0.0, -1.0};

GLfloat light_spot_cutoff[] = { 25.0 };

GLfloat light_spot_exp[] = { 2.0 };

Lumina de tip spot

8/18/2019 6_Modele de Culoare. Iluminare

http://slidepdf.com/reader/full/6modele-de-culoare-iluminare 46/48

46

Specificarea luminilor

• Specificarea factorului de atenuare, numai pentruluminile pozitionale

 – Componentele factorului de atenuare

 – Constant

 – Liniar 

 – Patratic2

1 _ 

d k d k k atenuare f  

Q LC   

8/18/2019 6_Modele de Culoare. Iluminare

http://slidepdf.com/reader/full/6modele-de-culoare-iluminare 47/48

47

Specificarea proprietatilor de material

• Ambientala• Difuza

• Speculara

• Emisiva (obiect incandescent - obiectul va apareagenerand lumina prin el insusi fara sa o primeascadin alta parte)

 – Specificata sub forma de culoare (RGB sau RGBA)

8/18/2019 6_Modele de Culoare. Iluminare

http://slidepdf.com/reader/full/6modele-de-culoare-iluminare 48/48

Exemplu – proprietati de material

Setare proprietati de material

GLfloat mat_ambient[] = { 0.3, 0.3, 0.3, 1.0 };

GLfloat mat_diffuse[] = { 0.8, 0.8, 0.8, 1.0 };

GLfloat mat_specular[] = { 1.0, 1.0, 1.0, 1.0 };

GLfloat mat_shininess[] = { 50.0 };