You are on page 1of 48

Modele de culoare

Modelul RGB (Red Green Blue)


Model aditiv
Culorile sunt rezultatul luminii transmise
Folosit de monitoare

Red + Blue + Green = White

Modele de culoare
Modelul RGB (Red, Green, Blue)

Modele de culoare

Modelul CMY(Cyan, Magenta, Yellow)


Model extractiv
Culorile sunt rezultatul luminii reflectate
Folosit la imprimante

Cyan + Magenta + Yellow = Black

Modele de culoare
Modelul CMY (Cyan, Magenta, Yellow)

Model complementar
cu modelul RGB:
C=1-R
M=1-G
Y=1-B
C 1 R
M 1 G

Y

1

B

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
5

Modele de culoare
Modelul HSV (Hue, Saturation, Value)

tente
alb

culoare pura

tonuri
nuante
negru

Modele de culoare
Modelul HSV (Hue, Saturation, Value)
V
Green

Yellow
V: [0, 1]

White

Red

Cyan

S: [0, 1]
H: [00, 3600]

Blue

Magenta

H
Black

Modele de culoare
Modelul HSV (Hue, Saturation, Value)
V
Green

Yellow

RGB

White
Red

Cyan
Magenta

Blue

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

HSV
Red
Yellow
Green
Cyan
Blue
Magenta

(0, 1, 1)
(60, 1, 1)
(120, 1, 1)
(180, 1, 1)
(240, 1, 1)
(300, 1, 1)

Black
8

Modele pentru calculul luminii

Modele empirice:
Lumina ambianta
Lumina difuza
Lumina speculara

Modele analitice
Modelul Lambert
Modelul Gouraud
Modelul Phong
9

Modele pentru calculul luminii


Iluminarea locala
sursele de lumina
pozitia observatorului
proprietatile de material

Iluminarea globala
interactiunea dintre lumina
provenita de la toate
suprafetele scenei

obiect 4

obiect 3

obiect 2

obiect 1

10

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 constanta
pentru toate obiectele scenei)

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


luminii ambientale, dependent de material.
11

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 culoarea
obiectului in acest caz (intensitatea sa este aceeasi
indiferent de pozitia observatorului)

12

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

13

Lumina difuza

Id=Ip * kd * cos(i)
Daca vectoii N si L sunt normalizati:

Id = Ip * kd * (N.L)

N
L

i
P

Ip este intensitatea luminii incidente


kd este coeficientul de difuzie a
luminii incidente, 0<=kd<=1.

14

Lumina difuza
Pentru vizualizarea a doua suprafete paralele construite
din acelai material se va obtine o aceeasi intensitate
Obiectele mai ndeprtate de surs sunt mai slab luminate.
N

Id = f_atenuare * Ip* kd* (N.L)


L

fat

1
kC kL *d kQ *d 2

d
kC
kL
kQ

Distanta de la sursa de lumina


coeficient de atenuare constant
coeficient de atenuare liniar
coeficient de atenuare patratic 15

Lumina difuza

Raza incidenta
Normala

U = unghi(Raza incidenta, Normala)


A: U ~ 90 => putina lumina
B: U ~ 0 => lumina maxima
C: U > 90 => nu primeste lumina
16

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 pozitia
observatorului.

nu vede nimic

17

Lumina speculara
Is = Ip* ks * cos()n
ks: coeficientul de reflexie speculara

L
i

R
i

N: normala la suprafata in P
IP: intestatea luminii
n: coeficient de stralucire

vectorii R si V normalizati

Is = Ip* ks * (R.V)n
18

Lumina speculara

Is = Ip* ks * (R.V)n
L

N H R

H = (L+V)
V

(NH) (R.V)

Is = Ip* ks * (N.H)n

19

Lumina speculara

N H R
V

Lumina speculara
daca unghiul format
de N si H < 90

H=V+L

20

Lumina speculara
N

N
R

n mare

n mic

21

Iluminare

ambientala

difuza

speculara

22

Iluminare

ambientala

ambientala+difuza

speculara

23

Exemplu de iluminare

Lumina ambientala

Lumina difuza

Lumina speculara

24

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)

25

Modelul Lambert
Pentru fiecare fata se calculeaza o
singura intensitate
I = k* (Nu Lu)

Nu este vectorul unitate normal la suprafata


Lu este versorul directiei sursei de lumina
k este constanta
26

Modelul Gouraud
1. Se calculeaza o normala in fiecare varf al retelei

poligonale.

2. Se calculeaza o intensitate in fiecare


varf al reelei.
27

Modelul Gouraud
3.Seafieazasuprafatacalculandintensitateaintrun 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.

28

Modele de iluminare
Modelul Lambert

Modelul Gouraud

29

Modelul Phong
Se calculeaza
suprafetei

normala

in

fiecare

varf

al

Se calculeaza normala in fiecare punct interior


suprafetei de afisat (prin interpolare)
prin interpolarea liniara a
normalelor varfurilor, pentru punctele de pe
laturi;
prin interpolare liniara intre normalele de pe
laturi, pentru punctele interioare de
pe fiecare linie de hasurare.
Se calculeaza intensitatea in fiecare punct
30

Modelul Phong
Interpolarea normalelor

31

Modelul Gouraud - Phong

Gouraud

Phong

32

Iluminarea in OpenGL
se
calculeaza
iluminarea in varfuri

Modelul de
iluminare se
aplica pentru
toate punctele
unei suprafete

33

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)
34

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

35

Realizare iluminare

Specificarea surselor de lumina

Specificarea proprietatilor de material

Specificarea normalelor

36

Tipuri de lumina
sursa de
lumina este la
infinit (lumina
directionala)

sursa de
lumina se afla
exact in
pozitia finita
(lumina
pozitionala)

soare

Lumina pozitionala

Lumina de tip spot

37

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 };

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};

39

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).

40

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

Lumina punctiforma / de tip spot

42

Lumina de tip spot


EXPONENT - reprezinta concentratia luminii in
interiorul spotului (poate fi constanta sau mai puternica
spre centru si mai mica spre margini).

Con de lumina:
Con interior intensitate constanta
Con exterior intensitate variabila

43

Modificarea intensitatii luminii

spotEffect = (D. L)spotExponent

Exemplu

Lumina de tip spot

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 };

Specificarea luminilor
Specificarea factorului de atenuare, numai pentru
luminile pozitionale
Componentele factorului de atenuare
Constant
Liniar
Patratic

f _ atenuare

1
kC k L d kQ d 2

46

Specificarea proprietatilor de material

Ambientala
Difuza
Speculara
Emisiva (obiect incandescent - obiectul va aparea
generand lumina prin el insusi fara sa o primeasca
din alta parte)

Specificata sub forma de culoare (RGB sau RGBA)

47

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 };

You might also like