curs ecg 09

Upload: superciulei

Post on 07-Oct-2015

11 views

Category:

Documents


1 download

TRANSCRIPT

  • Curs 9

    Elemente de grafica pe calculator

    Curs nr. 9

    4.3 Modele de redare a suprafeelor iluminate (modele de umbrire)

    Aplicarea direct a relaiilor de calcul a intensitii (culorii) fiecrui pixel necesit un timp de execuie prea mare. Din acest motiv, n sinteza de imagini se folosesc uneori metode simplificate de calcul a culorii fiecrui pixel, numite tehnici sau modele de umbrire. Pentru obiectele modelate prin reea de poligoane se folosesc urmtoarele modele de umbrire:

    - umbrire constant; - umbrire Gouraud; - umbrire Phong.

    4.3.1 Modelul de umbrire constant Pentru fiecare suprafa se calculeaz o singur intensitate a culorii. Acest mod de calcul presupune c sursele de lumin i observatorul sunt la infinit. Calculul umbririi constante nseamn aplicarea formulelor Phong pentru fiecare suprafa vizibil, o singur dat, pentru fiecare poziie a observatorului.

    Fig. Umbrire constanta

    4.3.2 Modelul de umbrire Gouraud n acest model se calculeaz o intensitate n fiecare vrf al suprafeei pe baza relaiilor din modelul de reflexie Phong. Intensitile n toate celelalte puncte ale suprafeei se obin prin interpolare liniar a intensitilor din vrfuri, pe parcursul generrii interiorului poligonului.

  • Curs 9

    Procesul de redare a unei suprafee iluminate dup modelul Gouraud cuprinde urmtoarele etape: 1. - se calculeaz normala n fiecare vrf al suprafeei, ca medie aritmetic a normalelor tuturor poligoanelor adiacente vrfurilor (fig. 1) ;

    Fig. 1

    =

    =m

    iiv nm

    n1

    1 . (1)

    De exemplu, pentru vrful avem: A3

    321 ++= nnnnA .

    2. - se calculeaz o intensitate n fiecare vrf, considerndu-se ca normal la suprafa, normala vrfului;

    3. - se afieaz suprafaa calculnd intensitatea ntr-un punct al poligonului astfel: a) pentru punctele de pe laturi prin interpolarea liniar a intensitii vrfurilor; b) pentru punctele interioare se interpoleaz intensitile de pe laturi.

    De exemplu, considerm poligonul din fig. 2

    sy

    O

    1

    2

    3

    4

    P Q

    Msyy =

    sx

    Fig. 2

    Intensitatea punctelor de pe linia syy = se calculeaz astfel:

    2

  • Curs 9

    ( )yyyyIIII P

    = 121

    211 ,

    ( yyyyIIIIQ

    = 141

    411 ) , (2)

    )( xxxxII

    II PQP

    QPPM

    = .

    Avantaje: modelul Gouraud se poate integra uor n algoritmii de generare a scenelor 3D, de exemplu n Z-buffer sau scan-line . Dezavantaje: - nu se poate obine o pat de lumin (highlight) datorat reflexiei speculare n interiorul unui poligon dac vrfurile poligonului nu sunt n aceast pat de lumin. (Intensitatea punctelor interioare nu poate fi mult mai mare dect a vrfurilor deoarece se obine prin interpolarea lor.) - nu elimin complet discontinuitile intensitii luminoase la trecerea de la o suprafa la alta.

    Fig. Umbrire Gouraud: i) numar mic de poligoane, ii) numar mare de poligoane

    4.3.3. Modelul de umbrire Phong O parte a deficienelor modelului Gouraud sunt eliminate n modelul Phong. n acest model se calculeaz prin interpolare normala n fiecare punct al suprafeei de vizualizat. Pentru afiarea suprafeei se parcurg urmtoarele etape: 1. - se determin o normal n fiecare vrf al suprafeei ca i n modelul Gouraud; 2. - se afieaz suprafaa calculnd n fiecare punct vizibil mai nti normala i apoi intensitatea luminoas. Calculul normalelor se face prin interpolare i este similar cu calculul intensitilor la modelul Gouraud .

    3

  • Curs 9

    Fig. 3

    )( 121

    211 yyyy

    nnnnP =

    ,

    )( 141

    411 yyyy

    nnnnQ =

    , (3)

    )( xxxxnn

    nn PQP

    QPPM

    =

    .

    Modelul Phong permite considerarea componentei speculare n calculul intensitii tuturor punctelor suprafeei. Din punct de vedere al operaiilor efectuate, umbrirea Phong necesit mai multe calcule dect modelul Gouraud, deoarece pentru fiecare pixel se calculeaz intensitatea luminoas. Calitatea imaginilor este mult mai bun dect n modelul Gouraud. Modelele Gouraud i Phong sunt incluse n standardele grafice GKS3D i PHIGS (modele implementate hardware). n OpenGL este inclus numai modelul Gouraud.

    Fig. Umbrire Phong

    4

  • Curs 9

    Fig. Umbrie constanta, umbrire Gouraud si umbrire Phong

    4.4 Generarea fenomenelor naturale

    Pentru simularea efectelor atmosferice precum cea, pcl, poluare atmosferic modalitatea de vizualizare cea mai frecvent folosit const n modificarea culorilor obiectelor din scen pe baza distanei fa de punctul de observare. Ceaa (ca i pcla sau poluarea atmosferic) este simulat prin combinarea culorii ceii cu culoarea fragmentelor suprafeelor, folosind un factor de combinare care depinde de distana acestora fa de punctul de observare. Un fragment al unei suprafee este poriunea din suprafa vizibil ntr-un pixel. n simularea ceii se folosesc mai multe formule de calcul al factorului de combinare a culorilor:

    f

    , (4) szef = dens , (5) ( 2dens szef = )

    startend

    end= szf . (6)

    Observaie: . 10 f

    5

  • Curs 9

    n primele dou formule factorul de combinare variaz exponenial, iar parametrul dens (un numr pozitiv) poate fi variat pentru obinerea unor efecte diferite de cea. n a treia relaie, variaz liniar de la punctul de observare ntre limitele start (de unde ncepe ceaa) i end (unde se termin) .

    f

    Fiecare component rC a culorii unui fragment (C poate fi R, G, B, A) se calculeaz prin combinarea culorii a fragmentului (suprafeei) cu culoarea a ceii, prin ecuaia: sC fC . (7) ( ) fsr C1CC ff += n cazul utilizrii unui factor liniar, trebuie avut n vedere c la limita maxim end=sz

    i deci nu se mai distinge nici un obiect. Deci end trebuie corelat cu distana la planul de vizibilitate deprtat (far)

    0=f farend . (8)

    4.5. Transparena Atunci cnd lumina trece dintr-un mediu n altul direcia sa se modific datorit refraciei (fig. 4):

    Lumin incident

    Lumin transmis

    Lumin refractat

    r

    i

    2n

    1n

    Fig. 4 . (9) rnin sinsin 21 =

    Refracia produce o distorsionare a obiectelor. Multe metode practice de modelare a transparenei ignor refracia. n acest fel, obiectele vizibile sunt cele aflate pe direcia razei incidente. De obicei motivul ignorrii refraciei nu-l constituie calculul suplimentar, ci faptul c astfel obiectele nu apar deformate.

    Atunci cnd suprafaa vizibil este transparent, culoarea pixelului care se afieaz se calculeaz din culoarea obiectului vizibil i a celui din spatele lui.

    2111 )1( += IkIkI tt (10)

    6

  • Curs 9

    unde: coeficientul de transparen al obiectului 1 (obiectului vizibil), - culoarea

    obiectului 1, - culoarea obiectului 2 (obiectul din spatele obiectului vizibil). 1tk 1I

    2I]1,0[

    1tk dac - obiectul 1 este perfect transparent , 11 =tk 2 = II

    dac - obiectul 1 este opac 01=tk 1 = II .

    Dac suprafaa din spatele su e tot transparent, se aplic recursiv formula pn se ajunge la un obiect opac sau raza refractat nu ntlnete alt obiect.

    4.6. Algoritmul Ray Tracing (traseul razei)

    Algoritmul Ray Tracing red realist imaginile prin efecte de iluminare i umbrire. Algoritmul calculeaz culoarea unui punct al unei suprafee innd cont de iluminarea local i iluminarea global. Iluminarea local este dat de lumina care vine direct de la sursele de lumin. Iluminarea global ntr-un punct este dat de lumina reflectat sau transmis de alte obiecte n acel punct.

    Algoritmul genereaz imaginea n funcie de poziia observatorului, urmrind traseul unor raze de lumin imaginare care pornesc de la observator la obiectele scenei.

    Algoritmul discretizeaz planul de proiecie ntr-o gril de zone dreptunghiulare corespunztoare rezoluiei ecranului.

    Fig. 5 Pentru fiecare pixel se consider o raz de lumin care pornete de la observator ctre centrul zonei dreptunghiulare (din planul de proiecie) corespunztoare acelui pixel i care intersecteaz obiectele scenei (traseul razei n sens invers). Obiectul intersectat de raz, cel mai aproape de observator, d culoarea pixelului (algoritmul ray tracing simplu).

    7

  • Curs 9

    Fig. The ray tracing algorithm builds an image by extending rays into a scene

    Algoritmul Ray Tracing simplu (ray casting) poate fi descris astfel:

    FOR fiecare pixel DO - determin raza din centrul de proiecie n celula corespunztoare acelui pixel; - determin intersecia razei cu cel mai apropiat obiect;

    - scrie n pixel culoarea primului obiect intersectat, dac exist, dac nu, scrie culoarea fundalului; ENDFOR

    Acest algoritm simplu se mbuntete astfel: culoarea unui pixel este dat i de razele reflectate i transmise de celelalte obiecte. Un algoritm Ray Tracing complex continu traseul razei din punctul de intersecie cel mai apropiat pn cnd raza iese din scen sau ntlnete un obiect opac.

    Raza care pleac de la observator se numete raz primar. Razele care pornesc din punctul de intersecie sunt raze secundare. Acestea pot fi: raze de iluminare (date direct de surse n punctul respectiv), raza reflectat i raza refractat (raza transmis). Pentru razele reflectate i refractate se continu recursiv traseul razei, considernd c din punctul de intersecie al acestor raze cu obiectele scenei pornesc alte raze secundare.

    Pentru exemplificare considerm o scen format din 4 obiecte i 2 surse de lumin. Obiectele 1 i 2 le considerm transparente, iar 3 i 4 opace.

    8

  • Curs 9

    Fig. 6

    Raza primar E intersecteaz obiectul O1 n punctul I. n punctul I intensitatea luminoas este dat de iluminarea local (raza de iluminare L1 de la sursa S1, raza L2 fiind ignorat deoarece O4 este opac) i de iluminarea global (razele R1 i T1).

    Urmrind n continuare traseul razei R1, aceasta ntlnete O2 care este transparent. Din punctul de intersecie al lui R1 cu O2 se consider c pornesc razele de iluminare L3 i L4, raza reflectat R2 i raza refractat T2. Raza T2 prsete scena, intersectnd mediul nconjurtor care are culoarea de fond.

    Urmrind traseul razei T1, aceasta ntlnete obiectul O3 care este opac. Din acest punct de intersecie pleac razele de iluminare L5, L6 i raza reflectat R3.

    n continuare se consider recursiv traseul razelor reflectate i refractate pn cnd o raz prsete scena sau contribuia sa la culoarea pixelului este prea mic. De exemplu, dac se consider c obiectul O1 este 30% reflectiv, iar O2 50% reflectiv, rezult ca R2 contribuie la culoarea lui I cu 15% .

    Razele considerate pentru un pixel pot fi reprezentate printr-o structur de date de tip arbore (fig. 7), care este evaluat de la frunze ctre rdcin. Intensitatea fiecrui nod este determinat pe baza intensitii fiilor. n cazul considerat avem:

    9

  • Curs 9

    E

    1

    2 3

    1L

    5L

    6L

    3L

    4L

    1R

    2R 3R

    2T

    1T

    Fig. 7

    Intensitatea unui pixel poate fi calculat folosind ecuaia de iluminare propus de Whitted:

    refractatreflectatsurseambient IIIII +++= (11)

    ( ) ( ) ttrsmi

    nissiddiiatiada IkIknroknlokIfsIokI ++

    ++=

    =1, . (12)

    unde :

    aI - intensitatea luminii ambientale

    ak - coeficientul de difuzie a luminii ambientale

    do - culoarea difuz a obiectului

    sk - coeficientul de reflexie specular

    so - culoarea specular a obiectului 0=is - dac punctul respectiv nu primete direct lumin de la sursa i

    - dac punctul respectiv primete direct lumin de la sursa i 1=isiatf , - factor de atenuare a luminii provenind de la sursa i

    rI - intensitatea luminii reflectate

    tI - intensitatea luminii transmise (prin refracie). Obs. Algoritmul creeaz cte un arbore pentru fiecare pixel. Memorarea arborilor pentru toi pixelii permite modificarea proprietilor fizice ale suprafeelor i afiarea imediat a noii imagini, deoarece punctele de intersecie nu trebuie calculate (pentru un observator fix). Aprecieri ale algoritmului Ray Tracing:

    - produce imagini foto-realiste deoarece ine cont de foarte multe fenomene optice; - este un algoritm simplu, singurele calcule geometrice pe care le presupune fiind

    intersecia dintre o dreapt i obiectele scenei.

    10

  • Curs 9

    Algoritmul prezentat consider cte o raz pentru fiecare pixel. Calitatea imaginii crete foarte mult dac se folosesc mai multe raze pentru fiecare pixel. n figura 8 se consider 4 raze care pleac de la observator i trec prin colurile zonei dreptunghiulare, din planul de proiecie, corespunztoare unui pixel.

    Fig. 8

    Observator

    Se observ de fapt c razele primare pentru un pixel sunt utilizate i la pixelii vecini. Dac rezoluia imaginii este de pixeli, sunt necesare nm ( )( )11 ++ nm raze primare i nu

    . nm4

    Fig. Imagine obtinuta prin Ray Tracing

    11