Sunteți pe pagina 1din 10

================================ pentru uzul studentilor ================================

Lectia 2 Putina culoare intr-o lumina colorata


Obiective:
Reprezentarea culorii Modele de iluminare Tipuri de surse de lumina Detalii de suprafata

Reprezentarea culorii
Rolul unui model de reprezentare a culorii este acela de a permite specificarea comoda a culorilor dintr-o gama prestabila. In acest scop vom avea in vedere, in primul rand, gama culorilor afisabile pe un display, iar in al doilea rand gama de culori utilizata de dispozitivele de imprimare (hardcopy). Modelele prezentate in continuare, au la baza trei culori primare. In general, putem utiliza oricare trei culori de baza, retinand insa faptul ca nu putem avea acces decat la o gama de culori, anume, cea cuprinsa in triunghiul determinat de cele trei culori in diagrama cromatica. Deseori sunt alese culorile rosu, verde si albastru datorita pozitiilor ocupate de acestea in cadrul diagramei CIE (figura 1). Ne vom opri asupra modelelor de reprezentare a culorii: RGB, utilizat in procesul de afisare a informatiei grafice pe display, CMY, pentru dispozitivele color de imprimare a imaginilor.

Modelul RGB
Modelul RedGreenB lue utilizeaza un sistem cartezian de coordonate, al carui subspatiu este cubul unitate din figura 2. Culorile primare RGB sunt aditive, in sensul ca, fiecare dintre cele trei coordonate contribuie la formarea unei culori, prin sumare, deci prin adaugare la negru. Diagonala principala a cubului, formata din puncte ale caror coordonate RGB sunt egale, reprezinta nivelele de gri. Acest spatiu este utilizat in formarea imaginilor pe monitoarele TV color si diplay-urile in raster.

Modelul CMY
Modelul CyanMagentaYellow este complementar sistemului RGB, culorile componente ale sistemului cartezian fiind complementare celor din sistemul RGB. In plus, ele sunt culori substractive, deoarece, efectul lor in formarea culorii este obtinut prin extragerea lor din lumina pura (alba). Subspatiul cartezian este identic cu cel al primului sistem, exceptie facand culoarea
Elaborat de Lect. Dr. D.M.Popovici cerva@univ-ovidius.ro http://www.univ-ovidius.ro/cerva

Figura 2.

================================ pentru uzul studentilor ================================

aflata in origine. Astfel in timp ce cazul sistemului RGB in origine se afla negru, in cazul sistemului CMY avem alb. Deseori, sistemul CMY este completat cu o componenta Black, din motive de economie a pigmentilor CMY in redarea nedrului.

Modele de iluminare
Odata stabilit sistemul de reprezentare a culorii, urmatoarea etapa in procesul de creare a imaginii este aceea de a introduce una sau mai multe surse de lumina, obtinandu-se astfel o apropiere de realitate. Pentru aceasta este necesar sa tinem seama de pozitia si orientarea surselor luminoase in raport cu obiectele in studiu, caracteristicile de material (sau suprafata) pentru fiecare obiect in parte. Vom trata o serie de modele de iluminare care exprima factori determinand culoarea suprafetei intrun punct. Modelele de iluminare sunt numite uneori si de umbrire. Modelele de umbrire determina conditiile in care se aplica modelul de iluminare si care sunt argumentele pe care acesta le primeste. De exemplu, unele modele de umbrire invoca un model de iluminare pentru fiecare pixel de imagine in timp ce alte modele invoca modelul de iluminare numai pentru anumite puncte ale imaginii, restul fiind umbrite prin interpolare. In VRML, pentru a introduce o sursa de lumina este necesara prezenta unui nod de tip Light. Intr-o scena exista o sursa de lumina implicita, cea atasata privitorului, asa numita headLight. Aceasta poate fi doar activata sau dezactivata, neputandu-i-se modifica nici intensitatea si nici culoarea.

Lumina ambianta
Probabil ca cel mai simplu model de iluminare posibil este cel in care fiecare obiect este afisat ca avand o intensitate intrinseca. Putem gandi acest model, ca neavand surse externe de lumina, ca descriind o lume ireala, formata din obiecte nereflectante, avand lumina proprie. Fiecare obiect apare ca o silueta monocroma. Acest tip de lumina apare sub forma campului ambientIntensity din cadrul tuturor tipurilor de surse de lumina, si are valori cuprinse intre 0 si 1. Cantitatea de lumina reflectata de suprafata unui obiect este determinata de coeficientul sau de reflexie ambianta, coeficient ce poate fi considerat ca o caracteristica de material. In prezenta culorii, lumina ambianta poate fi completata cu emissiveColor, ale carei valori reprezinta un triplet din sistemul unitar RGB. Deci reluand o portiune de cod din lectia anterioara: Shape { appearance Appearance { material Material { emissiveColor 0.2 0.8 1 ambientIntensity 0.9 } } geometry Box { size 2 1 2
Elaborat de Lect. Dr. D.M.Popovici

cerva@univ-ovidius.ro http://www.univ-ovidius.ro/cerva

================================ pentru uzul studentilor ================================

} }

Reflexia difuza
Chiar daca obiectele iluminate cu lumina ambianta sunt mai mult sau mai putin stralucitoare, direct proportional cu intensitatea luminii ambiante, acestea sunt totusi iluminate uniform de-a lungul suprafetelor lor. Sa consideram acum iluminarea unui obiect cu o sursa de lumina punctiforma, ale carei raze de lumina sunt emanate uniform, in toate directiile. In acest caz, lumina receptionata de privitor este proportionala cu cos , unde este unghiul pe care il formeaza raza incidenta cu normala la suprafata in punctul observat. Formula iluminarii difuze este: I = Ip kd cos (16.3) Acest tip de reflexie completeaza caracteristicile de material ale corpului in ceea ce priveste cantitatea de lumina si culoarea acesteia, reflectata de corp. Putem completa Materialul corpului anterior prin: material Material { emissiveColor 0.2 0.8 1 diffuseColor 0.44 0.6 0.2 ambientIntensity 0.9 }

Figura 3 Reflexia difuza

Reflexia speculara
Reflexia speculara apare atunci cand supunem unui fascicul de lumina o suprafata fina, lucioasa. Spre exemplu, iluminand un mar cu o lumina puternica, aceasta va produce reflexia speculara, in portiunea in care unghiurile formate de raza incidenta si normala la suprafata marului de pe o parte, si normala la suprafata marului si vectorul determinat de observator si punctul de pe suprafata marului pe de alta parte, sunt aproximativ egale. In punctele necuprinse in aceasta categorie se va produce reflexia difuza. Observam, in plus, ca, in timp ce lumina provenita din reflexia difuza are culoarea suprafetei iluminate, culoarea provenita din reflexia speculara are culoarea luminii initiale, deci a celei pornita din sursa de lumina. Vom mai observa ca, schimband pozitia observatorului, regiunea in care se produce reflexia speculara isi schimba si ea pozitia. Aceasta datorita faptului ca suprafetele luciose reflecta inegal lumina, in directii diferite; in cazul unei suprafete perfect lucioase (cum ar fi o oglinda perfecta), lumina este reflectata numai pe directia in care unghiurile de incidenta si reflexie sunt egale. Aceasta inseamna ca, observatorul va putea receptiona lumina reflectata numai din pozitiile care indeplinesc aceasta conditie (vezi figura 4). In acest context, materialul paralelipipedului nostru poate fi facut lucios, prin completarea informatiei provenite din reflexia speculara : material Material { emissiveColor 0.2 0.8 1 diffuseColor 0.44 0.6 0.2
Elaborat de Lect. Dr. D.M.Popovici

R
V

Figura 4 Reflexia speculara

cerva@univ-ovidius.ro http://www.univ-ovidius.ro/cerva

================================ pentru uzul studentilor ================================

specularColor 1 0.3 0.8 ambientIntensity 0.9 } Exercitiul 1. Modificati codurile obiectelor obtinute in lectia trecuta, in special cele care formeaza ansamblul masa-scaune-farfurie-vaza-peste, astfel incat masa sa fie alba si lucioasa, picioarele ei sa fie metalice, de culoarea aluminiului, scaunele sa fie diferit colorate dar sa aibe acelasi tip de picioare, iar pestele sa aduca a crap.

Atenuarea atmosferica
Pentru a simula atenuarea atmosferica a luminii ce cade pe un obiect, functie de distanta dintre obiect si sursa de lumina, se tine cont de de faptul ca obiectele situate la o distanta mai mare sunt generate cu intensitati mai reduse ale luminii decat cele apropiate. Considerand I0 si I1, intensitatile luminii in plan apropiat (x0) si respectiv cel indepartat (x1), intre cele doua plane, intensitatea luminii se poate determina printr-o simpla interpolare liniara (fara a fi insa si singura solutie), conform formulei: I (1 ) I 0 I 1 , unde 0,1 .

( x x0 ) Considerand , aplicand formula ( x1 x0 ) anterioara, putem obtine intensitatea luminii in acel punct (x). Pentru obiecte situate mai aproape de planul cel mai apropiat (x0) precum si pentru obiecte situate mai departe de planul indepartat, intensitatea luminii este considerata constanta, avand valoarea intensitatii planului apropiat, respectiv indepartat.

I0 I
B

I1
B

x0
B

x1
B

Tipuri de surse de lumina


Pentru mai cresterea realismului lumii virtuale, se mai pot adauga diferite tipuri de surse de lumini, avand diferite culori si domenii de actiune. Indiferent de tipul sursei de lumina, acestea se caracterizeaza prin pozitie, directie de emisie a luminii si culoare luminii emise. In VRML intalnim 3 tipuri de surse de lumina : Lumina punctiforma PointLight emite lumina uniform in toate directiile, dintr-un punct situat la o distanta finita fata de scena; Lumina directionata DirectionalLight emite lumina paralel cu o anumita directie dintr-o sursa situata la infinit (poate fi utilizata in simularea luminii solare); Spotul de lumina SpotLight radiaza lumina punctiform avand ca domeniu de actiune un con (asemeni unei lanternei).

Elaborat de Lect. Dr. D.M.Popovici

cerva@univ-ovidius.ro http://www.univ-ovidius.ro/cerva

================================ pentru uzul studentilor ================================

Indiferent de tipul sursei de lumina, acestea au campurile: on specifica daca nodul emite sau nu lumina intensity controleaza puterea luminii ambientIntensity controleaza efectul luminii ambientale color controleaza culoarea luminii emise. PointLight { ambientIntensity 1 attenuation 1 0.6 1.5 color 1 1 1 intensity 1 location 1 1 1 radius 2 on TRUE } PointLight este caracterizat in plus prin raza domeniului de actiune, radius, precum si prin pozitia din care emite lumina, location, si atenuarea atmosferica, attenuation. DEF Sf Shape { geometry Sphere {} appearance Appearance { material Material { diffuseColor .61 .61 .61 specularColor .77 .76 .76 ambientIntensity .14 shininess .9 } } } Transform { translation 0 3 0 children USE Sf } Transform { translation 5 5 0 children USE Sf } Transform { translation 5 2 0 children USE Sf }
Elaborat de Lect. Dr. D.M.Popovici

radius

Figura 6. PointLight in actiune.

cerva@univ-ovidius.ro http://www.univ-ovidius.ro/cerva

Figura 7. Un SpotLight pentru cine merita.

================================ pentru uzul studentilor ================================

PointLight { location 2.5 2.5 0 color 1 0 0 intensity 1 on TRUE radius 2.6 } Completand codul anterior cu o sursa de lumina de tip SpotLight SpotLight { location 5 2.5 0 direction -1 0 0 color 0 0 1 radius 7 cutOffAngle 1.57 beamWidth 0.48 } obtinem efectul vizual prezentat in figura 6. Directia de emisie, direction, o regasim si in sursa de tip DirectionalLight, aceasta fiind insa plasata la infinit. DirectionalLight { direction 0 -1 0 color 0 1 0 }

Figura 8. Exemplu de DirectionalLight.

Exercitiul 2. In contextul exercitiului anterior, plasati cate o surse de lumina directionala sub fiecare scaun la nivelul solului. Exercitiul 3. Inzestrati mediul construit la exercitiul precedent cu 3 surse de lumina punctiforme, orientate pe masa, vaza si peste. Plasati o a patra surse de lumina in interiorul vazei. Ce observati? Exercitiul 4. Construiti o sfera de culoare metalica si foarte lucioasa si inconjurati-o cu 6 surse de lumina punctiforme de culori distincte, amplasate in fata, spate, sus, jos, stanga si dreapta sferei.

Detalii de suprafata
Detaliile de suprafata ale unui obiect pot fi completate prin utilizarea texturilor (imagini sau filme). In cazul utilizarii imaginilor, formatul acceptat al fisierelor este jpeg, gif sau png (de preferat), iar in
Elaborat de Lect. Dr. D.M.Popovici

cerva@univ-ovidius.ro http://www.univ-ovidius.ro/cerva

================================ pentru uzul studentilor ================================

cazul utilizarii filmelor ca textura, se vor accepta fisiere MPEG-1. Indiferent de situatie, textura va apare in cadrul unui nod Appearance. Shape { appearance Appearance { material Material { . . . } texture ImageTexture { url "texturamea.png" } } geometry . . . } sau Shape { appearance Appearance { material Material { . . . } texture MovieTexture { url "filmulmeu.mpg" loop TRUE speed 1.0 startTime 0.0 stopTime 0.0 } } geometry . . . } In general, prin aplicarea texturilor asupra unui corp, se va reusi anularea caracteristicilor de culoare initiala ale acestuia. Daca insa, se doreste combinarea celor doua tipuri de informatie, culoare si textura, se poate incerca imbogatirea texturii cu informatie legata de transparenta si aplicarea acestei noi texturi pe obiectul colorat. Procedand astfel, transparenta imaginii aplicate va face vizibila culoarea obiectului catre observatorul sau. O alta solutie o costituie utilizarea texturilor monocrome (in nuate de gri) care, prin definitie, sunt combinate cu culoarea orginala a obiectului texturat. Asupra texturilor pot fi aplicate anumite operatiuni plane in vederea obtinerii unei ocupari convenabile a spatiului rezervat reprezentarii cu ajutorul imaginilor. O prima operatie o constituie transformarile geometrice plane ce vor fi aplicate in ordine inversa aplicarii transformarilor geometrice spatiale. In VRML 2.0 ordinea este scalare, rotatie si translatie iar in ISO VRML 97 aceasta ordine este translatie, rotatie si scalare. t Sistemul de coordonate asociat texturii este unul plan, avand drept coordonate s (sau u) pe orizontala si t (sau v) pe verticala. Coltul din

Elaborat de Lect. Dr. D.M.Popovici

cerva@univ-ovidius.ro s http://www.univ-ovidius.ro/cerva

================================ pentru uzul studentilor ================================

stanga jos al texturii este considerat ca avand coordonatele (0,0) iar cel opus, din dreapta sus coordonatele (1,1). Sa vedem cum ar arata un cub texturat cu drapelul Europei: fara a aplica nici o transformare texturii Shape { geometry Box {} appearance Appearance { texture ImageTexture { url "euroflag.png" } } } aplicand o translatie de 0.3 pe axa s Shape { geometry Box {} appearance Appearance { texture ImageTexture { url "euroflag.png" } textureTransform TextureTransform { translation 0.3 0 } } } aplicand o scalare de 2 pe axa s si 1 pe axa t Shape { geometry Box {} appearance Appearance { texture ImageTexture { url "euroflag.png" } textureTransform TextureTransform { scale 2 1 } } } O alta operatie, mult mai delicata insa, de transformare a texturii o reprezinta selectarea unei zone de textura si aplicarea selectiva a acesteia pe o anumita geometrie. Coordonatele texturii si indicii coordonatelor texturii sunt utilizati in specificarea portiunii de textura selectate a fi aplicate pe obiectul in cauza. Implicit, aceste valori ale coordonatelor texturii sunt:
Elaborat de Lect. Dr. D.M.Popovici

cerva@univ-ovidius.ro http://www.univ-ovidius.ro/cerva

================================ pentru uzul studentilor ================================

0.0 0.0, 1.0 0.0, 1.0 1.0, 0.0 1.0 Un nod TextureCoordinate contine lista coordonatelor texturii aplicate unor geometrii introduse prin IndexedFaceSet sau ElevationGrid. Shape { geometry IndexedFaceSet { coord Coordinate { point [ 0 0 0, 0 10 0, 10 10 0, 20 8 0, 20 -2 0, 10 0 0 ] } coordIndex [ 5 4 3 2 1 0 -1 ] } appearance Appearance { texture ImageTexture { url "euroflag.png" } } }

Shape { geometry IndexedFaceSet { coord Coordinate { point [ 0 0 0, 0 10 0, 10 10 0, 20 8 0, 20 -2 0, 10 0 0 ] }


Elaborat de Lect. Dr. D.M.Popovici

cerva@univ-ovidius.ro http://www.univ-ovidius.ro/cerva

================================ pentru uzul studentilor ================================

coordIndex [ 5 4 3 2 1 0 -1 ] texCoord TextureCoordinate { point [ 0 0, 0 1, 0.5 1, 1 1, 1 0, 0.5 0 ] } texCoordIndex [ 0 1 2 3 4 5 -1 ] } appearance Appearance { texture ImageTexture { url "euroflag.png" } } } Dar despre toate aceste geometrii complicate vom discuta ceva mai tarziu pe indelete. Exercitiul 5. Aplicati texturi distincte pe fata mesei, pe vaza si pe pestele din mediul construit in exercitiul 3.

Elaborat de Lect. Dr. D.M.Popovici

10

cerva@univ-ovidius.ro http://www.univ-ovidius.ro/cerva

S-ar putea să vă placă și