10738951_823479301047409_712412993_n

35
1.TEORIJA BOJA Svelo je elektromagnetni talas. Elektromagnetni talasi se seku pod uglom od 90 stepeni. U zavsinosti od talasne duzine odnosno frekvencije znamo koja ce boja biti. Na slici cu prikazana dva spektra svetlosti na prvoj svetlost je prirodna, a na drugoj vestacka. Zapazamo da je prirodna svetlost jaca. Kod vestacke ljubicasta je mnogo izrazenija, ima vecu energiju, dok je kod prirodne svetlosti ( Sunca) ovaj topli deo izrazeniji. Kako covek gleda. Imamo dva medija koju mogu da nose boju i svaki medij ima svoje modele boja. Mi gledamo boju tako da na to nesto mora pasti svetlost . Svetlo pada odbija se i mi vidimo tu boju. Sta ce se desiti prilikom odbijanja bele svetlosti od materijala? Apsobovati će se sve boje osim boje materijala. Ti mediji koji rade na tom principu nazivaju se suptraktivni mediji, mediji koji oduzimaju boju. Suprotno tome aditivni mediji mediji koji sabiraju boju. Primeri adititivnih medija: WEB, televizija, itd… Suptraktivni medije dele se na transparetne i refleksione. Transparetni: npr folije za grafoskop Refleksioni: novine, knjge, itd… Modeli boja: u aditivane spada RGB u suptraktivne spadaju CMY/CMYK, HLS/HSV/HSB, LAB Zasto ima vise suptraktivnih modela boja? Odg: Zato sto stampamo hiljadama godina, vise je isplativije za eksperimentisanje.

Upload: goran-todorovic

Post on 24-Sep-2015

222 views

Category:

Documents


1 download

DESCRIPTION

grafika ftn

TRANSCRIPT

1.TEORIJA BOJASvelo je elektromagnetni talas. Elektromagnetni talasi se seku pod uglom od 90 stepeni. U zavsinosti od talasne duzine odnosno frekvencije znamo koja ce boja biti.Na slici cu prikazana dva spektra svetlosti na prvoj svetlost je prirodna, a na drugoj vestacka.Zapazamo da je prirodna svetlost jaca. Kod vestacke ljubicasta je mnogo izrazenija, ima vecu energiju, dok je kod prirodne svetlosti ( Sunca) ovaj topli deo izrazeniji.

Kako covek gleda. Imamo dva medija koju mogu da nose boju i svaki medij ima svoje modele boja. Mi gledamo boju tako da na to nesto mora pasti svetlost . Svetlo pada odbija se i mi vidimo tu boju.Sta ce se desiti prilikom odbijanja bele svetlosti od materijala? Apsobovati e se sve boje osim boje materijala. Ti mediji koji rade na tom principu nazivaju se suptraktivni mediji, mediji koji oduzimaju boju. Suprotno tome aditivni mediji mediji koji sabiraju boju. Primeri adititivnih medija: WEB, televizija, itdSuptraktivni medije dele se na transparetne i refleksione. Transparetni: npr folije za grafoskop Refleksioni: novine, knjge, itdModeli boja: u aditivane spada RGB u suptraktivne spadaju CMY/CMYK, HLS/HSV/HSB, LABZasto ima vise suptraktivnih modela boja? Odg: Zato sto stampamo hiljadama godina, vise je isplativije za eksperimentisanje.

RGB

Vrlo je linearan i to je jako lepo. Predstavlja se u jednom prostoru boja, koliko je nesto crveno, zeleno, plavo, u toj kombinaciji vi definisete boju. U kordinatnom pocteku imate (0,0,0) kada se to sabere dobijemo nulu a to je crno. Kada saberemo 100% crvenu, 100% plavu, 100% belu, dobijemo belu.Iza ovog coska (1,1,1) pa do (0,0,0) ta dijegonala kocke je sta? Odg: Siva, nivoi sivih boja.Po drugim dijagonalama npr izmedju plavog iz zutog, crvenog i zelenog, pogledajte koliko po tim dijagonalama imate izbor boja, a koliko po stranicama kocke. On jeste lineran, jeste fin, ali je tesko da se to predstavi, i da korisnik u tom modelu izbere boju koja njemu odgovara. RGB ima problem da predstavi korisniku da on lepo izabere boju potpuno ravnopravno po bilo kojoj jedinici duzine, povrsine. E to mu je minus.Ali matematiki je idealan poto je lineran prednost.Ljudi se trude da to prikazu kao odredjenu ravan iz kocke iz koje mi biramo boju.CMY/CMYK

Zamislite da imamo skroz crvenu ona iz bele daje samo svoj odraz crveni, plava plavi, zelena zeleni. Kada se sastanu dobije se bela. Zamislite sada da imamo zaista takve boje i da imamo stampac koji pljucka te boje na papir. Da pljucne prvo crvenu, i preko nje tacno na nju zelenu, treba da dobijemu zutu. Ide bela svetlost, udara u beo papir, od belog papira bela svetlost se odbija i ulazi prvo u crvenu boju, prolazi kroz crvenu boju, iz crvene boje ce izaci samo crvena, sve ostale komponente bele svetlosti ce biti oduzete,ja sad RGB boje stavljam na suptraktivni medij, a onda na njoj stoji zelena. Crvena komponenta boje prolazi kroz zelenu. Sta ce se desiti? Odg: Nista.Zato su boje ipak malo drugacije od ovih idelanih, to je upravo osnova CMY modela. Nisu plava, crvena zelena osnova modela nego su one ustvari kombinacije boja. Tako da nam osnovne boje cine ustavri cyan ,ljubicasta, zuta. Svaka od te tri boje je filter za dve osnovne boje.yeloow filter-propusta zelenu i crvenucyan filter-propusti zelenuOpet primer sa bojama i papirom, zelimo da dobijemo zelenu boju.Imamo zutu boju na koju smo pljucnuli CYAN, papir idealan, stampac idealan, bela boja se odbija od papira prolazi kroz zuti filter, zuto filter ce propustiti zelenu i crvenu i ulaze u tirkizni (cyan) filter, koji stoji nad zutom bojom, ove dve boje dolaze sto znaci, da ce on propusti zelenu, palava jos nije stigla do nje, nece propustiti, a crvena ce se isto ugasiti i dobicemo konacno zelenu boju.Kocka je sada zarotirana, na vrhu je crna,a dole je bela. Kako bela kada sad imamo zutu, ljubicastu i tirkiznu kako osnovne boje? Odg: Nista ne oduzimamo, odbice se sve sto se stampa na belom papiru.Da li kocka zaista ovako izgleda? Malo ce ipak i crvene procureti, pa nece biti idealna zelena boja bice i primesa.Mi CMY modelom nikad necemo dobiti realno crnu boju. Kako se to resilo? Odg: Tako sto smo dodali pravu crnu boju. Dobijamo CMYK model boje, K oznacava crnu boju posto je B vec rezervisano.CMYK modelStampac pljucka zutu, pa cyan i malo crne odozgo, da bi crna ugasila doloazak ostalih boja necistoca u zelenu, ugasice doduse ona malo i zelenu.Kod stampaca koliko imamo tonera? Odg: 4 + 1 = 5, jos jedan posebni crni za crno belo stampu, ta crna boja je manje kvalitetna od crne boje za kolor stampu.HSL/HSV/HSB model boja

Radi se o boji, osvetljenosti i saturaciji.Boja: fekvencija elektromagnetnog talasa i energija koju ona nosi. Ako su sve boje prisutne od crvene do ultra- ljubicaste mi cemo to dozivljavati kao belu (grafik 1). Ako je neka boja dominantna u ovom slucaju plava, onda je ta boja saturisana(grafik 2). Crvena boja je manje saturisana, vise je osvetljenja(grafik 3). Ovde (grafik 4) je iprana plava boja, dosta veliki udeo ostalih boja.Onda su psiholozi rekli da napravimo model boja takav da odgovara covekovom mentalnom sklopu. Oni tvrde da covek navodno izabere boju, potom koliko ona ima svetla, i koliko je zasicena i da su to tri kordinate ovog modela boja, a ne svaka komponenta posebno.Tako da imamo cilidricni kordinatni sistem, ugao koji zauzima govori nam koja je boja u pitanju, poteg nam govori koliko je ona zasicena, a visina je koliko ima kolicine svetla. Zasto se ispostavlja da ovaj model nije pravi cilindar nego vise igrastog oblika?Odg: Zato sto covek najbolje razlikuje boje pri srednjem osvetljenju.

LAB model boja

(1931)Internacionalna komisija o iluminaciji ustanovila je model koji je omogucio predstavljanje punih boja. Ustanovili su da u centru vidnog polja imamo najvise cilindara koji primaju boju, a stapica koji primaju svtlost imamo vise na rubu.

DitheringUsteda na bojama. Par piksela nekoliko boja zamenila je piksele slicnih boja. Kada se vratimo u pravu rezoluciju ljudsko oko ne primecuje razliku. Nije potrebno koristiti nekoliko desetina hiljada boja, nego mozemo tu sliku prikazati sa nekiliko desetina, stotina boja, ali pametnim odabirom, koja ce boja biti sused drugoj boji, covekovo oko nece videti te detalje, oko ce krenuti da umazuje boje.Na taj nacin su napravljene WEB safe kod koje imamo paletu od 256 boja i kombinacijom grupe boja iz te palete simuliramo zeljenu boju. Ovo npr nije pozejlno kod medicinskih slika.

Faktori koji uticu na to kako se boje perceptuju

Gledamo nesto, moramao imati neki izvor svetlosti, svaki objekat koji gledamo ima svoju boju, boja se reflektuje ka nama, kako cemo sve to videti zavisi od izvora svetla(pozicija, pravac, tip, boja izvora).

2. Osnovni tipovi svetlostiPoint light (Tackasti izvor) isotropic-podjenako, lako sracunljiv, ostra senkaU jednoj tacki u prostoru imamo svtelosni izvor, i iz njega podjednako ide radijacija svetlosti u svim pravcima, tako da ona pada lepo na objekat i prouzrokuje lep senku, u zavisnosti od pozicije svetla objekat ce biti detaljno osvetljen

Spot light antisotropic, lako sracunljivo, ostra senkaJe u sustini point light, samo sto ne svetli na sve strane potpuno ravnopravno, nego je usmeren donekle i svetli vecim intenzitetom u jednom pravcu, a sto se sve vise udaljava sve vise opada.

Ambijentalno svetlo faraway, tesko sracunljiv, meka senkaSve prisutno svetlo.Svetlo koje je uvek prisutno, to su tackasti izvori jako udaljeni od scene. Prava ascijacija za ambijentalno svetlo je Suncevo svetlo, ili ako ste u zatvorenom prostoru, onda je to svetlo koje se odbija zidova. Kod njega su senke veoma neuredne. Ambijentalno svetlo ne daje tolike detalje(na slici u skripti je preterano) , covek vidi samo oblik, a ako je slabo ne vidi se vise ne oblik.

Ilumination v.s. shading

Da li je isto? Naravno da nije. Bez sencenja mozemo, sencenjem se samo oponasa iluminacija. Mi moemo raditi senenje ali ono ne moe bez iluminacije.

Iluminacija sta bi radila: ako treba da prikazemo neki objekat, onda bi iluminaciju morao primenjivati na svaku tacku tog objekta, na svaku tacku koja postoji.Iz tog razloga smo pobegli sencenju. Da u nekoj ravni u nekom prostoru jedanput kazemo koliko je tamo svetlo, kako se ono odbija, koja je boja svetla, u zavisnosti od materijala i izvora svetlosti, kakvo je svetlo tamo u toj tacki, i te vrednosti daj programu koji ce osenciti tu povrsinu. Istom svetloscu ce osvetliti npr ceo trougao.Bez sencenja se moze ali ce biti jako skupo, osvetljenje trazi jak hadware, ali ce biti strasno realino. Sencenje je uvedeno da bi se zahtevi za resursima smanjili, a dobli koliko toliko realan objekat. (ovo bude cesto pitanje na testu).

Tipovi refleksijaDifuzna ekv. grbavom materijalu, odbija se na sve strane u svim smerovima ( pogledaj sliku).Spekularna ekv. uglacanom materijalu, odbijaju se zraci u istom pravcu i smeru, isti upadni i izlani ugao, telo ima odsjaj.Nije u potunosti tacno da se svetlo odbija od povrsine , svetlo ulazi i unutra pa se odbija od unutrasnjih elemenata.Tri lopte Ako se kod materijala svetlo odbija u svim pravcima, onda to znaci da su ogledalca u svim sme rovima odnosno da je materijla grub (prva slika sa loptoom) Ako je lopta vec malo uglacana(druga slika) jeste da ona ima difuzioni deo, ali ima i ugao gde odbija vise, ako je intenzitet ovog spekularnog dela je jos jaci, fokusiranija je, putpuno belo sjaji, a ovaj prelaz izmedju bele i plave boje je manji nego kod perdhodne slike onda imamo utisak da redi o jako glatkoj povrsini(slika 3).

Ako hocemo da stvorimo metalic efekat sta radimo, npr kod automobila?Ubacimo u farbu cestice koje odbijaju svetlost(metalne ljuspice), koji nam daju odsjaj. A ako hocemo npr da u zavisnosti od jacine svetlosti automobil imam razlicit odsjaj? Ofarbamo u vise slojeva boja. Ovo se primenjuje i u grafici.

Phongov model: Od svakog materijala odbija se svetlost, sa nekim karakteristikama ambijentalnog osvetljenja, k-kama difuznog osvetljenja i k-kama spekularnog osvetljenja.

Phong je veoma uticajan u ovoj oblasti. Posotje dva modela i potpuno razlicita. -Phogov iluminacioni model -Phongov model senecenja

Phongov iluminacioni mode

Racuna iliminaciju postujuci tri osnovna tipa refleksija, koja se desavaju. Koristi se da bi se znalo kolika je iluminacija u jednoj tacki na nekoj povrsini nekog objekta, na nekoj sceni. Racuna iliminaciju za tacke kao kolicinu reflektovane svetlosti koja je dosla iz ambijentalnog izvora plus reflektovana svetlost u toj tacki koja potice iz tackastog svetlosnog izvora. Znaci uzima u obzir oba izvora , proracunava koliko se jedna, odnosno druga svetlost odbila i to predtsavlja refleksiju svetle tacke. Pri cemu se desava i refleksiona i spekularna refleksija samo ako postoji tackasti izvor na sceni. Ako postoji samo ambijentalna svetlost difuzna i spekularna refleksija se ne desava. Zasto?Zato sto nema upadni ugao, odnosno ima ali je jako slozen i kada se sracuna sa svih strana ambijentalna svetlost, pitanje je sta cemo dobiti, verovatno ce se ponistavati, ici na sve strana. Pod tackastim izvorom misli se na pravi tackasti izvor ili na reflektorski izvor. Ako uzmemo da jetackasto osvetljenje prisutno onda se ono deli difuznu i spekularnu refleksiju. Ukupna refleksija je suma refleksije ambijentalne svetlosti i tackaste svetlosti uzete u obzir kao difuzna i spekularna. Ako ima vise tackastih izvora onda za svaki izvor moramo sracunavati.

Refleksija ambijentalne svetlosti

Svetlost svuda dolazi, odnosno imamo kao da svetlost dolazi sa svih strana podjednako prisutne izvore svetlosti. Nema upadnog ugla. Cemu je srazmeran intenzitet svetlosti koji se odbija? Kolicini svetlosti koji pristize ( odnosno koliko je jaka ta svetlost) i od uticaja materijala(vrste materijala). Srazmeran je proizvodu kolicine svetlosti koja upada i koeficijentu refleksije ambijentalne svetlosti od tog materijala. Sta ako ima vise izvora ambijentalne svetlosti? Da li moze biti vise izvora ambijentalne svetlsoti?Ambijentalna svetlost je jedna jedina koja posotji u tom prostoru!!! Ne zna se sta je izvor ali je ona tu prisutna.Nema -ma pa ih nemojte ni vi stavljati na ispitima! Po originalnom fongu nema boje, ali postoji i druga skola koja tvrdi da ima i tu boje kod ambjentalne. Kako se tada racuna intenzitet ambijentalne refleksije svetlosti npr za crvenu boju?Kao proizvod difuznog koeficijenta refleksije crvene svetlosti materijala i inteziteta ambijentalne svetlosti koji pada i koeficijenta refleksije tog materijala

Difuzna refleksija

Imamo tackasti izvor, imamo jednu povrsinu koju mozemo da stavimo u 3 razlicita polozaja, da je ugao izmedju njene normale i pravca svetlosti 90, 45 I 0 stepeni. Znamo koliko svetlosti dolazi od izvora. Sada merimo intenzitet svetlosti koji se odbija za 45 stepeni, dobijamo da ce se 70,7% reflktovati od onoga sto je upalo, Za 0 stepeni je najveci , u ovom gornjom slucaju se nece reflektovati nista. Cemu je srazmeran intenzitet svetlosti koji se reflektuje sa neke povrsine?Jednak je intenzitetu tackastog izvora * cos upadnog ugla * koeficijent materijala za difuznu refekesiju. Ovde ima smisla pricati za boju. Sta ako imamo vise izvora svetlosti, koliki je intenzitet svetlosti odbijen? Odg: Idifuz.refl = kd * (Itac.sv * cos())

Kako je moguce da objekat ovako sljasti, a nema okolnog osvetljenja(slika sa loptama)?Zato sto ovaj model koji mi radimo on se brine stalno koliki je intenzitet svetlosti koji se reflektuje sa neke tackematerijala smog objekta, ne racuna bas ga briga za okolinu.

Spekularna refleksija

Povrsina je veoma uglacana, tako da ako slucajno gledalac gleda na povrsinu pod istim upadnim uglom pod kojim i upada svetlost ovo , onda ce prema njemu biti usmeren bas onaj pik ono belo. Sto je sve vise odaljen od njega ovaj pik je slabiji. Za nula stepeni za ovaj ugao alfa dace maksimalni pik.Spekularna reflesija se racuna po formuli - > vidi u skripti, gden odredjuje koliko ce obris biti veliki. Sto je n vece povrsina je manja, sto je n manje povrsina tog belog je veca.Sto je veca ta bela povrsina to nam govori da je materijal manje uglacan.

Za svaki material imamo koef. ambijentalne svetlosti, koef. difuzne refleksije, I koef. spekularne refleksije, ako imamo I boje, onda imamo 9 parametara. Sa 9 parametara mozemo definisati pik materijala I boju koju ce on emtovati sa svetlom.

Koeficijent slabljenja reflektivne svetlosti

Ako imamo dva tackasta izvora, svaki tackasti izvor obasjava jedan objekat, oba objekta su od istog materrijala, svega istog, samo su na razlicitim udaljenostima od kamere. Svaki od njih biva osvetljen potpuno istom jacinom svog lokalnog tackastog izvora. Znaci svi uslovi su isti samo je jedan blizi, a drugi je dalji od kamere. Kako ce ovaj blizi izgledati u odnosu na ovog daljeg i obratno?Odg: Ovaj dalji ce biti manje osvetljen, bice sivlji, boje u kojoj ima manje bele svetlosti. A razlog je zato sto je svetlost duze putovala od objekta do nas(kamere), pa je usput svetlosni talas oslabio.Zato moramo i uracunati to slabljenje u citav Phongov model.Prvo su ukljucili slabljenje sa kvadratom rastojanja od kamera sto je imalo za posledicu da ako je kamera blizu objekta i malo se pomeri, udalji od objekta, razlika u osvetljenju je mnogi velika(prva formula).Brzo su utvrdili da to nece biti dobro, i onda su zamenili ovu formulu sa novom formulom za slabljenje ( druga formula) Umesto jednog parametra udaljenosti, sada imamo porednje ga jos tri parametra c1,c2 i c3 . Sta nam je sad ovaj model slabljenja omogucio?Odg: Da se postepenije ili brze prikazuju razlike u osvetljenju. Ako hocemo da slabljenje bude konstantno onda cemo c2 i c3 staviti na nulu, recimo ako hocemo da imamo maglu konstante gustine izmedju kamere i objekta.Pored 9 parametara za svaki materijal sada smo dobili jos i 3 parametra za svaki materijal . Ukupno imamo preko 10 parametara koji uticu na osvetljenje( jos i alfa, theta, n) .Na koji tip refeksije primenjujemo slabljenje (A, D , S)?Odg: Na difuznu i spekularnu refleksiju. Na ambijentalno svetlo slabljenje nema uticaja!Sa cim jos postizemo realizam objekta, pored navedenog? Odg: Teksturama

Sencenje

Imamo kuglu vrlo grubu, level of details je mali, ali povrsine su jako velike, svako teme u sebi cuva normalu pripadajuce povrsine. I naravno poziciju tih materijala, itd.Hocemo da je sencimo. Postoji vise nacina, modela sencenja.

Konstantno sencenje

Uzme se u jednoj tacki normala, proracuna se koliko ce ona biti osvetljena, pa obojimo sve. Znaci pozovemo Phonga vidimo koliko je svetlo u toj jednoj tacki, potom sve tacke koje pripadaju tom elementu, ce se osenciti tim intenzitetom boje. Trazi malo resursa, skroman hardver, ali jako ruzno izgleda dobijamo, coskaste ivice. Kako bi se ispeglale ivice? Odg: Za svako teme izracunamo osvetljenje i onda uzmemo srednu vrednost, to radi Gouraud-ov model sencenja

Gouraud-ov(valjda se cita Goruov, Francuz je) model sencenja

(Ivetic ga od mila zove Djordjetov model sencenja, tesko mu da izgovara ime )

On poziva iluminaciju onoliko puta koliko ima temena. Nadje usrednjene normale, sracuna odsjaj i onda interpolira odsjaj po povrsini. To ima za posledicu da se svetlost preliva, ivica postaje malte ne nevidljiva.Ima tu jedan problem. Koji je taj problem, sta ako je telo jako uglacano, fino i tako je namesteno da se mora javiti spekularna refleksija, da li ce se ona javiti ili nece?Odg: Ili ce se preterati sa spekularnom refleksijom ili ce je ovaj model sencenja potpuno ugusiti.

Phongo-vo sencenje

Problem kod Gouraud-ve interpolacije je interpolacija svetlosti, zbog nje se izgubila spekularna refleksija.Kako Phong onda racuna? Racuna na osnovu normale.Usrednji se svaka normala, kada se krene sa sencenjem interpoliraju se normale imedju. Kada se naidje na interpoliranu normalu pozove se iluminacioni model, on vrati svetlo, tim svetlom ofarba se malo piksela, pa se opet interpolira normala za malu povrsinu, dobije se normala, pozove se iluminacioni model, dobije se svetlo, te se ofarbaju ti pikseli, itd.Znaci ne interpolira se svetlo, nego normale po nekim koracima, za svaki korak kada se dobije normala sto je interplirana, onda se pozove svetlo i onda se okolina ofarba izmedju kljucnih noramala.Mnogo puta se poziva svetlo.

Kod prvog modela se poziva samo jednom, kod drugog se poziva onoliko koliko ima temena, kod terceg svetlo se poziva puno puta.

Problemi sa interpolacijom

-Problem sracunavanjem normale u temenima

Kako ce se videti ove povrsine kada se osence? Ne cemo videti harmonika efekat, nego ravnu plocu.Resenje: Ne pravi se u pravm temenu normala, nego se teme pomeri, pa se onda uzme normala.

Kada poligon ima vise od 3 temena i kada vrsimo interpolaciju, da li cemo dobiti isto kada je poligon u polozaju sa slike 1 i kada je polozaju sa slike 2? Mnogo je manja razlika na prvoj slici, nego na drugoj.

Resenje: Kvadar se podeli na dva trougla, i secete te trouglove, kada se seku trouglovi uvek je manja razlika.Prikazan je rezultat sencenja cajnika, konstantnim, Gouraudov-im i Phongovim modelom sencenja.

RasterizacijaRasterizacija je potrebna, zato sto priprema prikaz, koji je do tada prikazan vektorski, putem temena. Treba sad to pretvoriti u skup fragmenata piksela i da se kao takvi iskopiraju u frejm bafer. Mi ga ocitavamo od strane video kontrolera i shodno sadrzaju prikazuje se na ekranu.Kojom brzinom video kontroler ocitava video (frejm) bafer?Odg: U zavisnosti od brzine osvezavanja prikaznog uredjaja onda i frejm bafer mora da bude ocitavan tom brzinom od strane video kontrolera.

Operacije koje se desavaju: crtanje linija najjednostavnije manipusanje poljima slike piksela (pixmaps) kopiranje, skaliranje, rotiranje i sl. kompozicija slike, definisanje, i modifikacija regiona crtanje i bojenje poligona (trouglova) najvaznija operacija u rasterizaciji u danasnjim sistemima aliasing i antialiasing metode kada se linija uveca nece biti glatka nego stepenicasta, resavanje npr. takvih problema

Crtanje linija

Imamo sad neku povrsinu na kojoj crtamo, dimenzija m x n i treba da nacrtamo neku liniju izmedju tacaka A i B. A je na jednoj kordinati, B je na drugoj kordinati. Ova linija koja tu stoji (na slici) je idelna linija, koja treba da stoji izmedju ove dve tacke, ona ne moze biti napravljena tako idealno, treba da se napravi od tackica koje vise manje prate tu liniju.Kada bi vi dobili ovakav zadatak vi bi isprogramirali nesto poput ovog putem matematike i jednacine prave.Krecuci se po x od A do B za svako x iz tog intervala sracunali bi Y.B na je odsecak za x=0, a nagib bi opet racunali preko kordinate.

Kod ovog resenja imamo potencijalni problem. Sta ako A i B imaju recimo istu x kordinatu, ili jos veci problem ako ugao koji zaklapa linija veci od 45 stepeni. Ako je je ugao veci od 45 stepeni linija ce biti isprekidana za vece vrednosti. Kako cemo ovo resiti?Odg: Razdvojicemo ovaj problem na dva podproblema. Gledamo koja je razlika veca izmedju x1 i x2 odnsosno y1 i y2 i onda radimo po njoj.

Kako podici preformanse, sta ovde jede vreme?Funkcija zaokruzivanja ce ovde trositi malo vise vremena nego sto treba. Ovo je reseno preko algoritma srednje tacke.

Algoritmom srednje tacke se odlucuje kako sad crtati liniju i kuda ici. Za svako x racunaju koje ce biti y.Ako crtaju krive samo pod uglom od 45 stepeni onda je moguce samo ovo ili ono(pokazuje na slici). Znaci sad ako sam sracunao za x onda sracunam za x+1, onda buduce y biram izmedju ova dva, i tako redom. Ostaje izbor samo izmedju dva naredna piksela, po y gde je jedan isti kao prethodni y, a drugi za jedan veci od y.Kako su to uradili, tako sto su zapisali funkciju pravca implicitno i sad racunali kolika je ta funkcija za x/2,za x+1, pa za y/2, da i tu prolazi prava. Sve su cele vrednosti osim ove 1/2. Kako cemo se resiti te ?Odg: Mogu celu funkciju da pomnozim 2, bice se dvaput vece od originalnog rezultata, ali dva puta ce biti veca i y pa cemo dobiti y. Ja cu dobiti dva puta vece vrednosti ali mene to ne interesuje bitan je predznak.

Sada sve ovo lepo radi samo za linije do 45 stepeni. Sta cemo raditi da bi pokrili sve?Odg: za 0 > dy/dx > -1 treba rotirati oko x ose, za dy/dx > 1 treba zarotirati oko x=y prave.

Napomena: za ovaj algoritam sam pisao ono sto ima smisla citirajuci njega, ako hoces mozes poslusati audio od 17:45 krece pricu o algoritmu srednje tacke.

Jaggies

Jeggies mozemo resiti tako sto cemo povecati rezoluciju prikaza, sa ovim povecanjem rezolucije stepenice postaju manje i manje, te je manje uocljiviji jaggies. Ali kako mi povecavamo rezoluciju linija postaje tanja i manja. Ako bi zeleli da povecanjem rezolucije da zadrzimo debljinu linije opet ce nam se vratiti jeggies, vrtimo se u krug.Resenje je da zamazemo. Kako bi smo mogli to da odradimo, da ove stepenice postanu manje vidljive?Odg: Da bojimo ove bele piksele bojom koja obuhvata nijase izmedju boje linije i boje pozadine. Ti pikseli se boje onom jacinom boje linije u zavisnosti koliko linija obuhvata piksel. Ako je ceo piksel obuhvacen onda ce on biti 100% crn, sto je piksel manje obuhvacen linijom on je sve manje crn, siv je i ide ka beloj(ako je bela pozadina).Medjutim ovde imamo problem. Npr ako hocemo da isecemo jedan deo slike, i taj deo uklopimo u neku drugu sliku odnosno pravimo foto montazu, ostace boja aliasing-a. Ovo cemo resiti tako sto pikseli nece prelaziti do boje pozadine nego do transparetne boje, odnosno alfa transparetne vrednosti. Crtanje kruznice

Slicno crtanju linije. Racunajuci funkciju kruznice, ubacujuci middle point, ali sada samo zbog kvadrata odluka je obrnuta, ako je vece od nule onda idemo dole, ako je manje od nule onda idemo gore, na gornji piksel.Kako su jos neki ubrzali crtanje kruznice, tako sto su uzeli simetriju. Ako crtamo preko simetrije mozemo uzeti cak 1/8 kruga, i kombinacijom isecka iscrtati ceo krug.Kako jos mozemo iscrtati krug, koristeci neku transformaciju? Odg, rotacijom nekog poligona, npr trougla oko neke tacke. Sta smo jos dobili sa tim? Odg: Debljinu linije.Crtanje poligona

Od poligona dobili smo samo temena, u temenima se nalazi informacijao materijalu, normali, kako treba bojiti. Sve to imamo samo trebamo pronaci tacke izmedju, koje spadaju u unutrasnjost poligona. Na slici prva dva poligona su konveksna, ostala su konkavna. Poligon je konveksan ako linija koja spaja bilo koje dve tacke unutar poligona, lezi cela u poligonu.

Osnovni akademski algoritam za crtanje poligona:Ide se duz scan linija. Imamo definiciju poligona pomocu tacaka temena. Treba naci koje tacke po scan linijama treba obojiti. Presecne tacke su na slici obelezene sa A,B,C,D. Izmedju tih presecnih tacaka bojimo sve piksele. Redosled linija koji definisu poligon, u sustini moze biti bilo kakav.Procitati iz skripte korake algoritama , lepo je objasnjen strana 96.

Za probleme, profa je rekao da to od nas nece traziti. Na slajdu ima sve sto je profa rekao o tome.

Algoritmi za rasterizaciju trouglova, kao elementa poligona

1. Rekurzivna podela na mikro poligoneNadju se srednje vrednosti svih kordinata, koje su ustvari sredje tacke linija i od jednog trougla se naprave 1,2,3,4 trougla i to se tako uporno deli, sve dok se ne dobije trougao srazmeran jednom pikselu.2. Rekurzivna podela citavog ekranaPodela citave povrsine, gde je taj trougao definisan. Deli se prostor uporno na cetitri dela, i dele stalno one povrsine koje su prisutne. Deli se dotle dok se ne dobije element koji prekriva jedan ili nekoliko piksela. Ovaj algoritam se lako opisuje uz pomoc quad tree . Kod ovog algoritma bolja je struktura podataka, ali je bolji od predhodnog jedino ako je trougao pravilan, poklapa se sa osnovnim osama prostora gde je definisan.3. Edge walkingNjegova ideja je da se kretajuci od bilo kog temena ide prema ivicama, po verikali, prema dole, sve dok ne dodje do sledecg temena.Prvo se sortiraju sva temena po x i y, zatim se odredjuje sredisnja tacka da li lezi na levoj ili desnoj starni trougla,a koje ivicia trougla paralelna sa scan linijom onda nema breakpoint-a. Alogirtam ide levom i desnosnom stranicom i interpolira po broju piksela izmedju.4. Edge equation Znasniva se na jednacinama stranica pravaca.Jednacinu pravca za neki edge znamo, sve tacke koje pripadju tom pravcu jednacina pravca je 0, a za ostale tacke jednacina je veca ili manja od nule, zavisi kako orijentisemo ovaj pravac. Ako je pametno orijentisano, sve tacke unutar trougla mogle bi da imaju isti predznak, treba da bojimo samo one tacke koje zadovoljavaju sve tri jednacine pravca, sve 3 ivice, tako da imamo isti predznak da li je >0 ili