glava 1 osnovne komponente grafiČke obrade · glava 1 osnovne komponente grafiČke obrade...

39
Glava 1 OSNOVNE KOMPONENTE GRAFIČKE OBRADE Računarska grafika nije potpuno originalna tema, jer za definisanje i rešavanje problema koristi neke već uspostavljene tehnike kao što su geometrija, algebra, optika i ljudska psihologija. Geometrija se upotrebljava da obezbedi okvir za opisivanje 2D i 3D pros- tora, dok se algebarske tehnike koriste za definisanje i evaluiranje jednakosti vezanih za određeni prostor. Nauka o optici postavlja modele za opisivanje ponašanja svetlosti, dok ljudska psihologija nudi modele za ljudsku viziju i percepciju boja. Iako pomenuti opseg tema navodi korisnika da pomisli da je reč o kompleksnoj nauci, računarsku grafiku je, u stvari, relativno lako razumeti, zahvaljujući primeni posebnih tehnika koje se koriste za simulaciju virtuelnog sveta oblika, za skaliranje, boje i pokrete iako se te tehnike zasnivaju na nekim osnovnim tehničkim principima. Drugačije se i ne može očekivati kada se ima u vidu da računarska grafika koristi u tako specifičnim oblastima kao što su modelovanje molekula ili medicinska dijagnostika mada se u ovakvim slučajevima pomenuti osnovni principi unapređuju posebnim tehnikama. Postoje aspekti animacije na računaru koji zahtevaju posebno matematičko i naučno znanje, ali to ne bi trebalo korisnike da spreči da eksperimentišu sa takvim sistemom. Interfejs između korisnika i računara se neprekidno razvija u pravcu izolovanja korisnika od irelevantnih unutrašnjih kompleksnosti samog sistema. 1.1 Hijerarhija grafičkog softvera Postoje raznorazne podele grafičkog softvera, od kojih je svaka podela priča za sebe. Podela grafičkih alata koja ovde sledi je jedna od mogućih, koja se rukovodi kriteriju- mima postojećih aplikacija. 1.1.1 Jednostavnije grafičke biblioteke Grafičke biblioteke omogućavaju pristup grafičkim komandama ili funkcijama. Grafičke komande su definisane u nekom programskom jeziku (C, Java, C++, ili neki drugi), a

Upload: ngothuy

Post on 18-Jul-2018

228 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Glava 1 OSNOVNE KOMPONENTE GRAFIČKE OBRADE · Glava 1 OSNOVNE KOMPONENTE GRAFIČKE OBRADE Računarskagrafika nije potpunooriginalnatema, jer za definisanje i rešavanje problema

Glava 1

OSNOVNE KOMPONENTE GRAFIČKEOBRADE

Računarska grafika nije potpuno originalna tema, jer za definisanje i rešavanje problemakoristi neke već uspostavljene tehnike kao što su geometrija, algebra, optika i ljudskapsihologija. Geometrija se upotrebljava da obezbedi okvir za opisivanje 2D i 3D pros-tora, dok se algebarske tehnike koriste za definisanje i evaluiranje jednakosti vezanih zaodređeni prostor. Nauka o optici postavlja modele za opisivanje ponašanja svetlosti,dok ljudska psihologija nudi modele za ljudsku viziju i percepciju boja.

Iako pomenuti opseg tema navodi korisnika da pomisli da je reč o kompleksnojnauci, računarsku grafiku je, u stvari, relativno lako razumeti, zahvaljujući primeniposebnih tehnika koje se koriste za simulaciju virtuelnog sveta oblika, za skaliranje,boje i pokrete iako se te tehnike zasnivaju na nekim osnovnim tehničkim principima.Drugačije se i ne može očekivati kada se ima u vidu da računarska grafika koristi u takospecifičnim oblastima kao što su modelovanje molekula ili medicinska dijagnostika madase u ovakvim slučajevima pomenuti osnovni principi unapređuju posebnim tehnikama.Postoje aspekti animacije na računaru koji zahtevaju posebno matematičko i naučnoznanje, ali to ne bi trebalo korisnike da spreči da eksperimentišu sa takvim sistemom.Interfejs između korisnika i računara se neprekidno razvija u pravcu izolovanja korisnikaod irelevantnih unutrašnjih kompleksnosti samog sistema.

1.1 Hijerarhija grafičkog softvera

Postoje raznorazne podele grafičkog softvera, od kojih je svaka podela priča za sebe.Podela grafičkih alata koja ovde sledi je jedna od mogućih, koja se rukovodi kriteriju-mima postojećih aplikacija.

1.1.1 Jednostavnije grafičke biblioteke

Grafičke biblioteke omogućavaju pristup grafičkim komandama ili funkcijama. Grafičkekomande su definisane u nekom programskom jeziku (C, Java, C++, ili neki drugi), a

Page 2: Glava 1 OSNOVNE KOMPONENTE GRAFIČKE OBRADE · Glava 1 OSNOVNE KOMPONENTE GRAFIČKE OBRADE Računarskagrafika nije potpunooriginalnatema, jer za definisanje i rešavanje problema

2

mogu da se primenjuju na različitim platoformama. Jednostavnije grafičke biblioteke,odnosno grafičke biblioteke nižeg nivoa predstavljaju softverski interfejs za hardver.Treba napomenuti da svaki grafički alat pripada nekoj jednostavnijoj grafičkoj biblioteci.U ove jednostavnije grafičke biblioteke spadaju:

• Direct3D (DirectX) predstavlja set nezavisnih API interfejsa za Windows plat-forme. API je akronim od engleskog naziva za programski interfejs aplikacije.Biblioteka DirectX predstavlja grupu API interfejsa, s tim što treba napomenutida tu pripada i biblioteka Direct3D.

• GKS (GKS-3D) je bibloteka za 2D grafiku sa ANSI/ISO standardom koji definišemetode za pravljenje slika na rasterskim ili vektorskim izlaznim uređajima. Biblio-teka GKS-3D je sastavni deo biblioteke GKS koja omogućava izradu 3D objekata.

• Mesa je 3D biblioteka sa API interfejsom koji je sličan API interfejsu bibliotekeOpenGL. Njeno zaduženje je da emulira OpenGL komande na platformama kojene podržavaju OpenGL. Mesa može da se upotrebljava kao direktna zamena zaOpenGL.

• MicroSystem 3D Graphic Tools predstavlja 3D biblioteku koja može da seupotrebi za razvoj programskih jezika Visual Basic i Visual C++.

• OpenGL predstavlja primarno okruženje za razvoj interaktivnih 2D i 3D grafičkihaplikacija. OpenGL je akronim od engleskog naziva za otvoreni grafički jezik.

• OpenGL for Java (GL4Java) mapira kompletan OpenGL 1.2 API i kompletanGLU 1.2 API za Javu i integriše sve njihove funkcije u Javu kako bi mogle da sekoriste u ovom okruženju.

• PHIGS je standardni 3D grafički API. Trebalo bi napomenuti da su OpenGL iDirect3D grafički standard danas, koji dolaze sa većom podrškom i hardvera isoftvera. PHIGS se koristi za kompleksnije 3D aplikacije u tehničkim i komerci-jalnim oblastima, uključujući proizvodnju, industrijski dizajn, tehničku analizu inaučnu vizualizaciju.

• QuickDraw3D je biblioteka novijeg datuma koja je ugrađena u QuickTime odstrane firme Apple Computer.

• XGL je biblioteka koju je razvila firma SUN Microsystems. Ova biblioteka po-država veliki broj API interfejsa, ali i biblioteke, kao što su GKS i PHIGS.

1.1.2 Alati za vizuelizaciju

Alati za vizuelizaciju podrazumevaju grafičke alate koji kao izlaz imaju sliku i na tajnačin predstavljaju podatke i odgovarajuće informacije. Jednostavno rečeno, vizue-lizacija upošljava grafiku da pravi slike kako bi se predstavili željeni podaci. Brojnikomercijalni i besplatni programski paketi za vizuelizaciju pokrivaju različite naučneoblasti: medicinu, mehaniku fluida, biologiju, hemiju, fiziku itd. Ovde su navedenisamo oni koji se najčešće koriste:

Page 3: Glava 1 OSNOVNE KOMPONENTE GRAFIČKE OBRADE · Glava 1 OSNOVNE KOMPONENTE GRAFIČKE OBRADE Računarskagrafika nije potpunooriginalnatema, jer za definisanje i rešavanje problema

3

• 3D Grapher ilustruje i rešava kompleksne matematičke jednačine u ravni i pros-toru;

• 3D Studio VIZ se koristi u arhitekturi i industrijskom dizajnu;

• 3DField omogućava vizuelizaciju podataka;

• Amira omogućava rad sa podacima iz medicine, biologije, hemije, fizike i mašin-stva uopšte;

• AVS omogućava vizuelizaciju podataka, kao i njihovu analizu;

• Blueberry omogućava modelovanje terena (zemljišta) na osnovu realnih poda-taka;

• Dice omogućava organizaciju podataka, kao i vizuelizaciju;

• Enliten omogućava prikazivanje, analiziranje i manipulisanje kompleksnim sce-narijima vizuelizacije;

• Ensight omogućava prikaz i proračun mehanike fluida, strukturalne analize, sa-gorevanja, kao i elektromagnetike;

• FAST omogućava dobijanje podataka iz numeričkih simulacija;

• Ferret omogućava okeanolozima i meteorolozima da analiziraju ogromne količinesloženih podataka;

• Geomview omogućava vizuelizaciju i manipulisanje 3D geometrijskim objektima;

• GNUPlot omogućava štampanje naučnih podataka u različitim formama;

• IDL omogućava analizu podataka, vizuelizaciju, kao i razvoj aplikativnih plat-formi;

• Iris Explorer omogućava vizuelizaciju 3D podataka, manipulisanje njima, kao injihovu animaciju;

• J/View 3Dpro omogućava vizuelizaciju interaktivnih podataka;

• LandForm mapira podatke terena dobijene sa satelita i pravi 3D površi kako binapravio model terena;

• MapRender3D generiše realistične prikaze terena i okoline;

• Mathematica omogućava numerička i simbolička izračunavanja, vizuelizaciju isimulaciju;

• Matlab omogućava analiziranje podataka i njihovu vizuelizaciju, numerička isimbolička izračunavanja, kao i simulaciju u realnom vremenu;

• Mvox omogućava vizuelizaciju slika u medicini;

Page 4: Glava 1 OSNOVNE KOMPONENTE GRAFIČKE OBRADE · Glava 1 OSNOVNE KOMPONENTE GRAFIČKE OBRADE Računarskagrafika nije potpunooriginalnatema, jer za definisanje i rešavanje problema

4

• Ncar pristupa podacima, analizira ih i vizuelizuje;

• OpenDX omogućava stvaranje i vizuelizaciju naučnih, tehničkih, medicinskih iposlovnih podataka;

• OpenGL Volumizer spada u C++ klasu i omogućava manipulaciju i prikazivanjeodređenih podataka;

• OpenInventor/VRML omogućava 3D vizuelizaciju i animaciju;

• PV-Wave omogućava manipulisanje i vizuelizaciju kompleksnih ili ekstremnovelikih tehničkih baza podataka;

• Realax VR Studio omogućava simulacije i vizuelizacije izuzetnog kvaliteta;

• ROSS omogućava rekonstrukciju 3D preseka i njihovu vizuelizaciju;

• SciAn omogućava vizuelizaciju, pravljenje filmskih sekvenci i rad sa vektorskimcrtežima;

• Tecplot vrši vizuelizaciju tehničkih podataka dobijenih raznim analizama, simu-lacijama i eksperimentima;

• VisAD omogućava interaktivnu vizuelizaciju i analizu numeričkih podataka;

• VRCharts omogućava vizuelizaciju numeričkih podataka;

• VTK omogućava vizuelizaciju i procesiranje slika.

1.1.3 Alati za modelovanje

Modelovanje je proces stvaranja 3D objekata gledajući realne podatke ili baratajući ima-ginarnim objektima. Alati za modelovanje omogućavaju kreiranje virtuelnih objekata iokruženja za CAD (CAD je akronim od engleskog naziva za projektovanje primenomračunara), vizuelizaciju, obrazovanje, razne vrste obuka, itd. Postoji mnogo alata zamodelovanje, ali ovde će biti pomenuti oni koji se najčešće koriste:

• 3D MeNow kreira ljudska lica;

• 3D Studio Max omogućava animaciju i renderovanje, kao i kreiranje efekata zaigrice;

• 3D Studio VIZ omogućava arhitektonski i industrijski dizajn;

• 3Dom kreira čvrsta tela (solide);

• AC3D kreira objekte i scene;

• ACIS 3D Toolkit kreira črsta tela i 3D površi;

• Amapi3D omogućava NURBS modelovanje (NURBS je akronim od engleskognaziva za neuniformne racionalne B-krivulje), renderovanje i animaciju;

Page 5: Glava 1 OSNOVNE KOMPONENTE GRAFIČKE OBRADE · Glava 1 OSNOVNE KOMPONENTE GRAFIČKE OBRADE Računarskagrafika nije potpunooriginalnatema, jer za definisanje i rešavanje problema

5

• Amorphium omogućava kreiranje 3D skupltura i omogućava slikarima da sepokažu;

• Animation Master omogućava kreiranje filmova, virtuelnu realnost i poslovneprezentacije;

• AutoCAD je najkompletniji programski paket za modelovanje i projektovanje uravni i prostoru;

• bCAD omogućava dizajn i renderovanje;

• Beyond 3D omogućava kreiranje VRML modela (VRML je akronim od engleskognaziva za jezik za modelovanje virtuelne realnosti) i animacije;

• Blueberry omogućava modelovanje terena (zemljišta) na osnovu realnih poda-taka;

• Body Paint 3D omogućava mapiranje ljudskih i životinjskih tela;

• Bryce 3D omogućava modelovanje terena i prirodnih pojava;

• Cinema 4D omogućava kreiranje sekvenci za filmove i televiziju, omogućavakreiranje ljudskih likova, kao i multimedijalne sadržaje;

• CyberMotion 3D Designer je odličan za igrice i virtuelnu realnost;

• DMesh omogućava modelovanje organskih predmeta;

• Flesh omogućava oslikavanje likova;

• Genesis3D kreira igrice u realnom vremenu;

• ImageModeler omogućava kreiranje 3D modela iz ravanske slike;

• LandForm mapira podatke terena dobijene sa satelita i pravi 3D površi kako binapravio model terena;

• MapRender3D generiše realistične prikaze reljefa;

• Maya omogućava animaciju i virtuelnu realnost;

• MindsEye podržava NURBS dizajniranje za operativne sisteme Linux i Unix;

• Natural Scene Designer omogućava kreiranje drveća, oblaka, stena, žbunja,jezera i atmosferskih pojava;

• ProEngineer omogućava skiciranje, modelovanje i prezentaciju u svim tehničkimoblastima;

• Rhino3D omogućava modelovanje;

• TrueSpace omogućava kreiranje igrica i animiranog virtuelnog okruženja;

• ZBrush omogućava dizajniranje u prostoru i renderovanje u realnom vremenu.

Page 6: Glava 1 OSNOVNE KOMPONENTE GRAFIČKE OBRADE · Glava 1 OSNOVNE KOMPONENTE GRAFIČKE OBRADE Računarskagrafika nije potpunooriginalnatema, jer za definisanje i rešavanje problema

6

1.1.4 Alati za renderovanje

Renderovanje je proces stvaranja slika na osnovu grafičkih modela. Ovi alati ili gener-išu 3D modele ili ih učitavaju sa čvrstog diska prilikom kreiranja željenih slika. Poredgeometrije modela, alati za rendering u izlaznu sliku ugrađuju i osvetljenje, senke, tek-sture, boje, prozirnost, kao i neke napredne mogućnosti pojedinih programskih paketa.Postoji mnogo alata za renderovanje, ali ovde će biti pomenuti oni koji se najčešćekoriste:

• 3D Studio Max omogućava animaciju i renderovanje, kao i kreiranje efekata zaigrice;

• Amorphium omogućava kreiranje 3D skulptura i omogućava likovno izražavanje;

• ARTlantis Render omogućava renderovanje i animaciju;

• Blueberry omogućava modelovanje terena (zemljišta) na osnovu realnih poda-taka;

• Bryce 3D omogućava modelovanje terena i prirodnih pojava;

• Cinema 4D omogućava stvaranje sekvenci za filmove i televiziju, ljudskih likova,kao i multimedijalnih sadržaja;

• CyberMotion 3D Designer je odličan za igrice i virtuelnu realnost;

• Genesis3D kreira igrice u realnom vremenu;

• Geomview omogućava vizuelizaciju i manipulisanje 3D geometrijskim modelima;

• Imagine omogućava vizuelizaciju za film i TV, kao i u komercijalne svrhe;

• LightScape omogućava vizuelizaciju modela programskih paketa AutoCAD i 3DStudio MAX;

• MapRender3D generiše realistične prikaze reljefa;

• Maya omogućava animaciju i virtuelnu realnost;

• Natural Scene Designer omogućava kreiranje drveća, oblaka, stena, žbunja,jezera i atmosferskih pojava;

• Panard Vision omogućava izuzetno kvalitetno renderovanje;

• RenderMan omogućava izradu kadrova za filmove;

• Sart omogućava vizuelizaciju fraktala i slično;

• TrueSpace omogućava kreiranje igrica i animiranog virtuelnog okruženja;

• ZBrush omogućava dizajniranje u prostoru i renderovanje u realnom vremenu.

Page 7: Glava 1 OSNOVNE KOMPONENTE GRAFIČKE OBRADE · Glava 1 OSNOVNE KOMPONENTE GRAFIČKE OBRADE Računarskagrafika nije potpunooriginalnatema, jer za definisanje i rešavanje problema

7

1.1.5 Alati za animaciju

Animacija je integralni deo računarske grafike. Većina programskih paketa za vizueli-zaciju, modelovanje, renderovanje i simulaciju ima uključenu i animaciju. U klasičnojanimaciji redosled posla je sledeći: pravi se scenario, kreiraju se ključne slike, definišese zvuk koji treba uključiti, povezuju se slike i zvuk i, na kraju, vrši se interpolacijaizmeđu ključnih slika kako bi se došlo do kvalitetne animacije. Trebalo bi napomenutida računarska animacija predstavlja promenu različitih slika u određenom vremenskomperiodu. Da bi animacija bila kvalitetna (bez skokova slika) trebalo bi smestiti najmanje24 ključne slike u sekundi. Postoji mnogo alata za animaciju, ali ovde će biti pomenutioni koji se najčešće koriste:

• 3D Choreographer omogućava animaciju za filmove;

• 3D Studio Max omogućava animaciju i renderovanje, kao i kreiranje efekata zaigrice;

• AIR omogućava renderovanje i animaciju;

• Anim8OR omogućava 3D modelovanje i animaciju tih modela;

• Animation Master omogućava kreiranje filmova, virtuelnu realnost i poslovneprezentacije;

• ARTlantis Render omogućava renderovanje i animaciju;

• Beyond 3D omogućava kreiranje VRML modela i animacije;

• Carrara Studio omogućava modelovanje, renderovanje i animaciju;

• Cinema 4D omogućava stvaranje sekvenci za filmove i televiziju, stvaranje ljud-skih likova i multimedijalnih sadržaja;

• CyberMotion 3D Designer je odličan za igrice i virtuelnu realnost;

• Imagine omogućava vizuelizaciju za film i TV, kao i u komercijalne svrhe;

• Internet Character Animator služi za animaciju 3D likova;

• Iris Explorer omogućava vizuelizaciju 3D podataka, manipulisanje njima, kao injihovu animaciju;

• LightWave 3D omogućava animacije za televiziju, filmove i video igrice;

• Maya omogućava animaciju i virtuelnu realnost;

• OpenInventor/VRML omogućava 3D vizuelizaciju i animaciju;

• Realmotion omogućava realne animacije za nezgode (automobilske, avionske,železničke), za filmske efekte i za scene unutar igrica;

• Softimage omogućava animacije za filmove i igrice;

Page 8: Glava 1 OSNOVNE KOMPONENTE GRAFIČKE OBRADE · Glava 1 OSNOVNE KOMPONENTE GRAFIČKE OBRADE Računarskagrafika nije potpunooriginalnatema, jer za definisanje i rešavanje problema

8

• TrueSpace omogućava kreiranje igrica i animiranog virtuelnog okruženja;

• WorldUp omogućava kreiranje i animiranje raznih VR svetova (VR je skraćenicaod Virtual Reality).

1.1.6 Alati za simulaciju

Simulacija predstavlja proces kreiranja, izvršenja i vizuelizacije modela kako bi se komp-letirale informacije o onome što treba reći u realnom ili imaginarnom svetu. Pod mo-delom se podrazumeva matematičko, fizičko ili tehničko predstavljanje sistema sa svimnjegovim karakteristikama. Postoji mnogo alata za simulaciju, ali ovde će biti pomenutioni koji se najčešće koriste:

• 20-sim simulira ponašanje dinamičkih sistema uz grafički prikaz;

• 3D Grapher ilustruje i rešava kompleksne matematičke jednačine u ravni i pros-toru;

• GL Studio omogućava simulaciju i obuku u okruženju virtuelne realnosti;

• LS-DYNA omogućava dizajn automobila i simulira njihovo ponašanje sudara;

• Mathematica omogućava numerička i simbolička izračunavanja, vizuelizaciju isimulaciju;

• Matlab omogućava analiziranje podataka i njihovu vizuelizaciju, numerička isimbolička izračunavanja, kao i simulaciju u realnom vremenu;

• Maya omogućava animaciju, simulaciju i virtuelnu realnost;

• Realax VR Studio omogućava simulaciju, dizajn i vizuelizaciju visokog kvaliteta;

• Simul8 omogućava planiranje, modelovanje, animaciju i simulaciju;

• VEGA omogućava vizuelnu i audio simulaciju, virtuelnu realnost, kao i kvalitetnuvizuelizaciju.

1.1.7 Alati za virtuelnu realnost

Postoje dve kategorije virtuelne realnosti (VR): kompleksnija VR i jednostavnija VR.Kod kompleksnije VR korisnik ima specijalni uređaj na glavi ili posebne naočare. Prikazna tom uređaju prati pokrete glave i ljudski pogled u realnom vremenu. JednostavnijaVR je jeftinija i "siromašnija", jer nema posebnih uređaja i prikaz ne prati pokrete glave,ali korisnik diktira kretanje kroz virtuelni svet. Sistem VR je i sistem za simulaciju kojiopisuje i simulira određene aktivnosti iz realnog sveta u oblastima kao što su obuka,obrazovanje i radno okruženje. Postoji mnogo alata za VR, ali ovde će biti pomenutioni koji se najčešće koriste:

• Cryonics omogućava razvoj virtuelnog okruženja i razmenu putem Interneta saostalim korisnicima;

Page 9: Glava 1 OSNOVNE KOMPONENTE GRAFIČKE OBRADE · Glava 1 OSNOVNE KOMPONENTE GRAFIČKE OBRADE Računarskagrafika nije potpunooriginalnatema, jer za definisanje i rešavanje problema

9

• DIVERSE je zajednički API za programe virtuelnog okruženja i za potrebanhardver;

• Maya omogućava animaciju i virtuelnu realnost;

• MR Toolkit je grupa potprogramskih VR biblioteka;

• Summit 3D omogućava kreiranje kompleksnog virtuelnog sveta;

• Unrealty omogućava kretanje kroz virtualno okruženje;

• VEGA omogućava vizualnu i audio simulaciju, virtuelnu realnost, kao i kvalitetnuvizuelizaciju;

• WorldUp omogućava kreiranje i animiranje raznih VR svetova.

1.1.8 Alati Web3D

Alati Web3D su grafički alati koji omogućavaju isporučivanje grafike putem veb pre-traživača, a dostupna je svakom korisniku Interneta. Ovi alati su doživeli najvećuekspanziju i nije teško zaključiti da su to alati budućnosti što se tiče obrazovanja,vizuelizacije, kupovine i prodaje, komunikacija i sveukupnog okruženja. Mnogi Web3Dalati su postali dopunski ili dodatni moduli za veb pretraživače. Većina alata, kaošto su VRML pretraživač i Java3D programersko okruženje, razvijeni su u OpenGL-uili Direct3D-u. Ovi alati su odlični za mrežu i mrežno okruženje, jer korisnicima umreži omogućavaju istovetno virtuelno okruženje u realnom vremenu. Ovih alata imamnogo, svakodnevno se menjaju i dopunjuju, svakodnevno se pojavljuju novi, tako daje iluzorno nabrajati ih.

1.1.9 Alati za konvertovanje formata

Danas ljudi ne žive samo u realnom svetu nego i u 3D virtuelnom svetu. Provodi semnogo vremena u sistemima virtuelne realnosti, igraju se igrice, gledaju se filmovi oimaginarnim svetovima, a tu su i interkativne simulacije. Da bi se napravili modeli zaVR i da bi se taj svet VR distribuirao Internetom za različite platforme, moraju postojati3D grafički fajlovi u kojima se čuvaju informacije o modelima, scenama, svetovima ianimacijama. Tu se radi o mnogo fajlova u različitim formatima, jer različiti korisnicikoriste različite programske pakete. Da bi se u takvu raznovrsnost uveo red, tu suprogrami koji omogućavaju konverziju jednog grafičkog formata u drugi, bez gubitakapodataka. Postoji mnogo alata za konvertovanje formata, ali ovde će biti spomenutisamo oni koji se najčešće koriste:

• 3D Exploration omogućava pretraživanje Interneta, pregled i renderovanje uraznim grafičkim formatima;

• 3D Win, AccuTrans, Crossroads i Wilbur omogućavaju konverziju 3D fajlova;

Page 10: Glava 1 OSNOVNE KOMPONENTE GRAFIČKE OBRADE · Glava 1 OSNOVNE KOMPONENTE GRAFIČKE OBRADE Računarskagrafika nije potpunooriginalnatema, jer za definisanje i rešavanje problema

10

• Guru 3D-Converter omogućava konverziju fajlova iz programa 3D Studio MAXu DirectX fajlove;

• InterChange omogućava konverziju formata i podržava oko 40 formata;

• Materialize3D omogućava konverziju modela i formata;

• NuGraf omogućava komponovanje scena, pregled i konvertovanje modela;

• Polytrans omogućava uvoz/izvoz 3D fajlova;

• Quick3D omogućava pregled, organizovanje i konvertovanje 3D modela.

1.2 Grafički API interfejs

Postavlja se pitanje šta je API. API predstavlja skup rutina koje aplikativni programkoristi da upravlja izvršavanjem procedura od strane operativnog sistema računara.Podela programskih interfejsa aplikacija biće obavljena prema proizvođačima.

1.2.1 Jednostavni API

U grupu jednostavnih API interfejsa spadaju: IrisGL, OpenGL i MesaGL.IrisGL je jednostavniji API koji je ranije bio poznat pod nazivom Iris 3D API.

Ovaj grafički interfejs sadrži u sebi 390 funkcija koje su implementirane u grafičkommodu. Naslednik ovog APi-ja je OpenGL.

OpenGL je možda najpoznatiji grafički API. Uvela ga je 1992. godine firma SiliconGraphics, kao opšti sistem za CAD i 3D API za X-terminale zasnovane na operativnomsistemu Unix. OpenGL se razvio iz SGI-jeve vlasničke grafičke biblioteke IrisGL. U prvovreme, upotreba OpenGL bila je ograničena na poslovne primene, kao što su industri-jsko, interno i mehaničko projektovanje, kao i na statističke i naučne analize. Međutim,API se utemeljio u oblasti računarskih igara. Svi glavni PC paketi za 3D animaciju, pačak i neki od jeftinijih proizvoda te vrste, sada podržavaju OpenGL.

OpenGL API je projektovan da može da podrži napredne grafičke tehnike za re-alističan prikaz, kao što su preslikavanje tekstura (sposobnost da se primeni slika nagrafičku površinu), uklanjanje nazubljenosti, transparentnost, zamagljivanje, osvetlja-vanje (sposobnost da se proračuna obojenost površine kada su na nju primenjeni različitimodeli osvetljavanja iz jednog ili više izvora svetlosti), glatko senčenje (sposobnost dase proračunaju efekti senčenja kada svetlost pada na površinu pod uglom, što rezultujefinim razlikama u nijansama boje na površini), zamagljivanje pokreta i transformacijaza modelovanje (sposobnost promene mesta, veličine i perspektive objekta u trodimen-zionalnom koordinatnom prostoru).

Skup njegovih osobina je sličan onome koji ima Direct3D, ali je OpenGL API nižegnivoa od svog rivala, obezbeđujući vrlo fino upravljanje osnovnim elementima 3D scene,kao što su informacije o tačkama i trouglovima. Aplikacija u OpenGL mora da obezbedisve geometrijske informacije za svaku od primitiva (tačka, linija ili trougao) u sceni,kao i za efekte koji će se primeniti na primitive (boja, transparentnost, zamagljivanje

Page 11: Glava 1 OSNOVNE KOMPONENTE GRAFIČKE OBRADE · Glava 1 OSNOVNE KOMPONENTE GRAFIČKE OBRADE Računarskagrafika nije potpunooriginalnatema, jer za definisanje i rešavanje problema

11

itd.). Nivo upravljanja koji se daje programerima je glavni činilac koji stoji iza tvrdnjeda je sa OpenGL API interfejsom mnogo lakše praviti aplikacije nego sa Direct3D, kaoi da je to mnogo pouzdaniji proizvod na različitim hardverskim platformama.

U suštini, postoje dva nivoa za hardverski ubrzanu podršku OpenGL-u. To su ICD(instalabilni klijentski upravljački programi) koji ubrzavaju osvetljavanje, transforma-cije i rasterizaciju i MCD (mali klijentski upravljački programi) koji podržavaju samorasterizaciju. Dok su MCD lakši za prodavce hardvera, ICD nude bolju performansu.

MesaGL je grafička biblioteka sa API interfejsom i veoma je slična OpenGL-u.Ovaj API koristi sintaksu OpenGL-a, s tim što je za to bila potrebna dozvola firmeSilicon Graphics, Inc. (SGI).

1.2.2 Kompleksniji API

U ovu grupu grafičkih programskih interfejsa aplikacija (API-ja) spadaju: Open In-ventor, OpenGL Optimizer, Cosmo3D, OpenGL++ i Simple Scene Graph.

Open Inventor je objektno orijentisan API koji nudi rešenja problema koji se jav-ljaju prilikom programiranja interaktivne grafike. Predstavlja programski modul koji sezasniva na bazama podataka 3D scena što dramatično pojednostavljuje programiranjegrafike. U sebi sadrži bogat komplet objekata kao što su kocke, poligoni, tekst, mate-rijali, kamere, svetla, 3D prikaze i editor koji povećava brzinu programiranja i povećavaprogramske sposobnosti samog korisnika.

OpenGL Optimizer poboljšava vizuelizaciju kompleksnih 3D modela. Na tajnačin, programeru je omogućeno da pravi aplikaciju koju može vizuelno da kontroliše igde može interaktivno da utiče na bazu podataka. Ovom API-ju su dodate tehnologijekoje se zovu ClearCoat i RealityMapping. Tehnologija ClearCoat je revolucionarna novatehnologija koja proizvodi prirodan prikaz odličnih materijala kao što su boja, plastika istaklo. Tehnologija RealityMapping je revolucionarno nova tehnologija 3D softverskogrenderovanja kako bi se sjajne površine prikazale kako treba.

Cosmo3D je kratko vreme bio samostalanAPI, a onda je integrisan u OpenGLOptimizer.

OpenGL++ predstavlja skup funkcija, koje su pisane u programskom jeziku C++,koji omogućava 3D grafičkom sistemu OpenGL-a da podrži objektno orijentisane struk-ture podataka. Ovaj projekat je rezultat saradnje firmi SGI, IBM i Intel, koje su rešileda naprave kompleksni API koji će podržavati OpenGL. Rad na ovom API interfejsuprekinut je kada je firma SGI prekinula ovu saradnju i sa firmom Microsoft počela darazvija API pod nazivom Fahrenheit, koji je, takođe, propao.

Simple Scene Graph (SSG) je API koji je trebalo da postane sastavni deoOpenGL-a, koji je koristio programski jezik C++ i koji je mogao da radi sa GLUT-om (OpenGL Utility Toolkit). SSG je sadržao biblioteku jednostavnih matrica i vektorai podržavao je neka testiranja.

1.2.3 Cosmo API

Treba napomenuti da Cosmo nije grafički API. Pitanje je da li Cosmo može da senazove grafičkim API-jem u pravom smislu zato što je Silicon Graphics, u nastojanju

Page 12: Glava 1 OSNOVNE KOMPONENTE GRAFIČKE OBRADE · Glava 1 OSNOVNE KOMPONENTE GRAFIČKE OBRADE Računarskagrafika nije potpunooriginalnatema, jer za definisanje i rešavanje problema

12

da iskoristi prednosti Jave, VRLM 3D okruženja i raznih multimedijalnih elemenataza razvoj prestižnih aplikacija i prezentacija, napravio Cosmo. grafički konglomeratkoji se, u stvari, sastoji od vizuelizacije kompleksnih naučnih i poslovnih podataka,poboljšane vizuelne komunikacije, kao i mogućnosti da razvijaju igrice ili interfejse zaigrice. Sastavni deo ovog API-ja predstavljaju sledeći proizvodi:

• Cosmo Create je sistem koji kombinuje 2D slike, 3D sekvence virtuelne realnosti,tekst i ostale elemente kako bi napravio multimedijalnu stranicu za Internet iliproizvod.

• Cosmo Player omogućava prikazivanje ili pretraživanje prezentacije koja je razvi-jena upotrebom Cosmo API-ja. Treba napomenuti da ovaj proizvod radi na svimoperativnim sistemima.

• Cosmo Code omogućava vizuelno okruženje za već postojeće Java kodove pri-likom stvaranja multimedijalne prezentacije.

• Cosmo Worlds omogućava uključivanje sledećih stvari u multimedijalnu pre-zentaciju: svetlosne efekte, više izvora svetlosti, zvuk, ogromnu biblioteku boja,materijala i tekstura, kao i primene slika čiji je autor sâm programer.

• Cosmo MediaBase omogućava programeru lagano upravljanje fajlovima kojiučestvuju u prezentaciji.

1.2.4 Fahrenheit API

Prvobitno najavljen početkom 1998. godine, Fahrenheit je trebalo da se sastoji od trikomponente. Prva je Fahrenheit Scene Graph, koja je po funkciji slična režimu RetainedMode iz Direct3D. Ona omogućava da se prilikom razvoja programer koncentriše napravljenje ukupne scene, a ne na realistično prikazivanje pojedinačnih poligona. Gotovou isto vreme bio je uveden FLM (Fahrenheit Large Model Visualisation, za vizuelizacijuvelikih modela), što predstavlja kompleksniji API ili API vrlo visokog nivoa, projektovanza CAD i profesionalne primene koje podrazumevaju strukture kao što su zakrivljenepovršine. Najznačajnija komponenta, međutim, biće uvedena malo kasnije. Ta kompo-nenta je FLL (Fahrenheit nižeg nivoa), što predstavlja jednostavniji API ili API niskognivoa. Bavi se osnovnim upravljanjem geometrijom ali, što je najvažnije, zamenićeDirect3D Immediate Mode i radiće zajedno sa OpenGL-om.

1.2.5 Microsoftov API

Grafička tehnologija je oblast industrije PC računara koja se posebno brzo razvija,sa novim skupovima čipova, novim revizijama skupova čipova i čak potpuno novimtehnologijama koje se pojavljuju tempom koji zvoni na uzbunu. Ovo predstavlja prob-lem za primene u oblastima gde treba iskoristiti prednosti najnovijeg 3D hardvera, jerje apsolutno nemoguće za bilo koga ko radi na razvoju aplikacija da piše softver uoriginalnom kodu za svaki grafički procesor.

Rešenje je u programskom interfejsu aplikacije, API-ju. API radi kao posrednik

Page 13: Glava 1 OSNOVNE KOMPONENTE GRAFIČKE OBRADE · Glava 1 OSNOVNE KOMPONENTE GRAFIČKE OBRADE Računarskagrafika nije potpunooriginalnatema, jer za definisanje i rešavanje problema

13

između aplikacionog softvera i hardvera na kome se on izvršava. Programer piše kôdkoji na izlazu daje podatke API drajveru putem standardizovanih komandi, a ne direk-tno preko hardvera. Drajver, napisan od strane proizvođača hardvera, onda prevodi tajstandardni kôd u originalni format koji poseban, dati model hardvera može da razume.

Prvi put predstavljen 1995. godine, DirectX je integrisani skup alata za pro-gramiranje, projektovan tako da pomogne programerima da naprave niz multimedijskihaplikacija za platformu operativnog sistema Windows. On pokriva gotovo sve aspektemultimedije i u vreme DirectX 7.0 obuhvatao je sledeće glavne komponente:

• Direct3D za 3D grafiku u realnom vremenu;

• DirectDraw za 2D grafiku;

• DirectSound za audio reprodukciju;

• DirectPlay za mrežno povezivanje (posebno za računarske igre za više učesnikapreko interneta);

• DirectInput za komandne palice i druge slične uređaje;

• DirectMusic za muzičke podatke zanovane na porukama.

DirectX 8.0 je uveden krajem 2000. godine i spojio je DirectSound i DirectMusic u kom-ponentu DirectX Audio, dok su do tada razdvojene funkcionalnosti za 2D i 3D grafiku,DirectDraw i Direct3D spojene u komponentu DirectX Graphics. Tada je, takođe,komponenta DirectShow, ranije implementirana kao poseban API, postala zvaničnakomponenta DirectX.

Microsoft je uspeo da napravi i DirectX (verzija 9.0) kako bi zadovoljio većinu ko-risnika koji su tražili poboljšanje performansi svojih računara u igranju akcionih igricai korisnika koji su želeli da gledaju video prezentacije i animacije kod kuće na svojimpersonalnim računarima.

Ključ za način na koji Direct3D dozvoljava razvijaocu računarske igre da radi neza-visno od hardvera PC računara je njegov HAL (Hardware Abstraction Layer), sloj zaapstrakciju hardvera koji kao efekat ima nezavisno pisanje softvera. HAL obezbeđujespregu sa pogodnostima koje su široko implementirane u 3D grafičkom hardveru idozvoljava proizvođačima da naprave drajvere koji povezuju HAL sa hardverom. Toomogućava Direct3D aplikacijama da iskoriste osobine većine hardverskih uređaja hard-vera bez potrebe da se pišu za svaki posebno.

U protočnoj obradi za realističan prikaz Direct3D, geometriju 3D objekata obrađujecentralna procesorska jedinica glavnog računara pre nego što 3D akcelerator počne daprikazuje scenu na ekranu. Tokom 1998. godine - kada su se proizvođači čipova suma-nuto utrkivali za pravo da se mogu pohvaliti da imaju najbrži 3D akcelerator - DirectX(verzija 5) je brzo postao usko grlo u procesu 3D realističnog prikaza. Kako je situacijapostala još gora sa pojavom 3D čipova treće generacije, Microsoft je pažljivo preispitaoAPI u DirectX za transformaciju i osvetljavanje da bi poboljšao efikasnost geometrijskeobrade i uravnotežio arhitekturu sistema. DirectX 6.0 (u stvari, njegovo peto izdanje),bio je uveden u leto 1998. godine i ponudio je nove osobine za poboljšanje realističnog

Page 14: Glava 1 OSNOVNE KOMPONENTE GRAFIČKE OBRADE · Glava 1 OSNOVNE KOMPONENTE GRAFIČKE OBRADE Računarskagrafika nije potpunooriginalnatema, jer za definisanje i rešavanje problema

14

prikaza kod računarskih igara i modelovanja.Šesta verzija komponente Direct3D podržava mogućnost novijih grafičkih kartica

da izvode renderovanje sa više tekstura u jednom prolazu, što značajno smanjuje vremepotrebno da bi se primenile mape tekstura. Ona, takođe, uključuje novije tehnike zadodavanje realnosti 3D scenama, kao što su anizotropno filtriranje, koje dodaje ele-ment dubine trilinearnom filtriranju, i Bump preslikavanje, koje stvara iluziju "realnih"tekstura i izvora svetlosti na ravnim površinama. Trend za objedinjavanje osobinaOpenGL-a nastavio se sa operacijama postavljanja slika na 3D scenu, a ne tekstura napojedinačne 3D objekte.

U borbi za prevlast u areni 3D grafike za PC računare, postoji Direct3D u jednomuglu, takmičara koji se oslanja na Microsoftovu veliku industrijsku snagu, i OpenGL udrugom, sa manje gušenja na platformi operativnog sistema Windows, ali sa očiglednovećom podrškom ljudi iz razvoja. U fazama uobličavanja DirectX (verzija 7.0) izgledaloje da će se te suprotnosti usmeriti ka razumnom rešenju, sa vestima da su se Microsofti SGI udružili da naprave nešto što se zove Fahrenheit. Međutim, kada je DirectX(verzija 7.0) došao na tržište 1999. godine, uprkos nastavljanju trenda objedinjavanjaosobina OpenGL-a, izgledalo je da su se izgledi za Fahrenheit smanjili.

Pored toga što je bio optimizovan da radi 20% brže od svog prethodnika, DirectX(verzija 7.0) je uključio i izvestan broj novih osobina. Najvažnija među njima je podrškaza hardverski ubrzanu transformaciju i osvetljavanje koje podržava većina 3D grafičkihkartica najnovije generacije, a posebno one zasnovane na skupovima čipova GeForce256 firme nVidia i S3 firme Savage. S obzirom na to da transformacija i osvetljavanjepredstavljaju zadatke u savremenim računarskim igrama koji zahtevaju najviše radacentralne procesorske jedinice, preusmeravanje tog posla na namenski 3D akceleratoroslobađa značajnu količinu procesorovog kapaciteta za druge zadatke - što dozvoljavada se u razvoju ugradi više detalja u realistično prikazivanje i više specijalnih efekatakoji traže intenzivno angažovanje procesora.

DirectX (verzija 8), koji se pojavio krajem 2000. godine, uveo je veći broj važnihpromena u sledećim oblastima:

• dalje pojednostavljenje inicijalizacije i upotreba Direct3D API-ja, prilagođava-nje modela koje nudi Direct3D mogućnostima najnovijeg hardvera i uklanjanjepodrške nasleđenim spregama;

• proširenje sprege Direct3D u nove 3D akceleratorske tehnologije, kao što su volu-metrijske teksture, realistično prikazivanje sa više uzoraka (uključujući i podrškuza T-bafer) i tako dalje;

• uvođenje novih principa obrade podataka: senčenja, kako na nivou piksela, takoi na nivou geometrijskih podataka.

1.2.6 Intelov API

Kada se pomene firma Intel, prvo na šta se pomisli su procesori. Ova firma se bavi ikreiranjem API-ja, a ovde će biti pomenuta dva: 3DRender i Intel Scene Manager.

3DRender (3DR) je Intelova 3D grafička biblioteka koja je optimizirana za rad

Page 15: Glava 1 OSNOVNE KOMPONENTE GRAFIČKE OBRADE · Glava 1 OSNOVNE KOMPONENTE GRAFIČKE OBRADE Računarskagrafika nije potpunooriginalnatema, jer za definisanje i rešavanje problema

15

sa Pentium procesorima. Ta biblioteka ima sledeće osobine: podržava više od šesnaestsvetlosnih izvora, omogućava raznorazno mapiranje, omogućava primenu atmosferskihuslova i padavina, omogućava primenu transparentnosti, podržava operativne sistemeWindows 95 i Windows NT, besplatna je.

Intel Scene Manager (ISM) je API koji je još uvek u razvojnoj fazi i sličan jeOpenGL-u.

1.2.7 Sunov API

Internetove tehnologije i programski jezik Java doveli su do fundamentalnih promenau načinu dizajniranja i razvoja aplikacija. Java ima sličan izgled kao jezici C ili C++.Programeri koji imaju iskustvo sa ovim jezicima neće imati problema da nauče Javu.Naredbe kontrole toka i funkcija operatora su skoro identične. Međutim, za razliku odC-a, Java je objektno orijentisan programski jezik koji je redukovao neke funkcije C-a paje zato relativno mali. Java3D je API koji se koristi za pisanje 3D grafičkih aplikacija ili3D apleta za veb. Ovaj API daje korisniku veliku slobodu pri kreiranju i manipulisanju3D geometrijom i omogućava primenu mnogih alata za definisanje potrebnih struktura.Java3D API je nastao kao posledica saradnje sledećih firmi: Silicon Graphics, IntelCorporation, Apple Computers i Sun Microsystems.

1.2.8 Appleov API

Firma Apple Computers se bavi računarima, ali određeni njeni segmenti se bave i razvo-jem softvera. Jedan segment je stvorioi API pod nazivom QuickDraw3D (QD3D).Ovaj API omogućava kreiranje 3D grafike na Apple računarima i renderovanje u real-nom vremenu. On podržava skoro sve matične ploče sa svim hardverskim dodacimakoje proizvodi pomenuta firma.

1.2.9 HP-ov API

Što se tiče firme HP i njenih API-ja koje razvija, vrlo je malo informacija. Najosnovnijeinformacije postoje o sledeća četiri API-ja:

• Starbase je originalni 3D API firme HP i sličan je OpenGL-u, ali je urađen navišem nivou;

• PHIGS je API koji je podržavao stariji industrijski standard (ISO) i ovaj API seviše ne koristi;

• PEX je varijacija gore pomenutog API-ja pod nazivom PHIGS koji je predviđenda radi na serverima;

• DirectModel je sličan OpenGL Optimizeru, ali je, u međuvremenu, otkazan ibiće integrisan u već pomenuti FLM za vizualizaciju velikih objekata.

Page 16: Glava 1 OSNOVNE KOMPONENTE GRAFIČKE OBRADE · Glava 1 OSNOVNE KOMPONENTE GRAFIČKE OBRADE Računarskagrafika nije potpunooriginalnatema, jer za definisanje i rešavanje problema

16

1.2.10 Ostali API interfejsi

Ovde će biti pomenuti još neki programski interfejsi koji se pominju u literaturi i uraznim člancima, a proizvođači su različiti. O nekima ima više, a o nekima ima manjeinformacija, ali ovde će biti samo nabrojani oni koji se najčešće pominju, uz osnovneinformacije:

• Heidi je API firme Autodesk koji omogućava veću brzinu i efikasnost programada prikaže i odštampa željene informacije. Ovaj API je primarna komponentaprograma: AutoCAD, 3DS MAX, 3D Studio VIZ, Volo View, Volo View Express,a sadržan je i u DWF formatu i HDI razvojnom sistemu za kvalitetniju štampu.

• RenderMan je API firme Pixar koji omogućava fotorealistično renderovanje i ukome se nalazi moćan programski jezik koji je senčenje doveo do savršenstva.

• RenderWare, BRender i GKS su stariji API-ji koji su omogućavali renderovanje,s tim što više nisu u upotrebi.

• RealityLab je API koji omogućava softversko renderovanje. Razvio ga je Micro-soft i implementirao u Direct3D.

• MultiGen’s GameGen je ogroman i krajnje kompleksan API koji se koristi zarazvoj igrica, s tim što bi trebalo napomenuti da je i za današnje uslove preskup.

1.3 Geometrijske transformacije

Osnovne 2D i 3D geometrijske transformacije, koje se koriste u računarskoj grafici, kaošto sutranslacije, skaliranja i rotiranja veoma su bitne za većinu grafičkih aplikacija. Ovetransformacije su sastavni deo većine grafičkih programa, kao i mnogih potprograma.

1.3.1 2D transformacije

Korisnik može da translira tačku u XY ravni do nove pozicije dodavanjem neke veličinekoordinatama tačke. Ako treba tačku sa koordinatama P(x, y) pomeriti za veličinu dx

paralelno X osi i za veličinu dy paralelno Y osi do nove tačke P′(x′, y′), onda to možeda se definiše izrazima:

x′ = x+ dx y′ = y+ dy (1.1)

Ako se definišu matrice

P =[x

y

]P′ =

[x′

y′

]T =

[dx

dy

](1.2)

onda izrazi (1.1) mogu preciznije da se izraze kao:

P′ = P + T (1.3)

Page 17: Glava 1 OSNOVNE KOMPONENTE GRAFIČKE OBRADE · Glava 1 OSNOVNE KOMPONENTE GRAFIČKE OBRADE Računarskagrafika nije potpunooriginalnatema, jer za definisanje i rešavanje problema

17

Korisnik može da translira ceo objekat primenjujući izraze (1.1) na svaku tačku ob-jekta. Svaka linija objekta je sastavljena od beskonačno mnogo tačaka, onda bi procestranslacije trajao izuzetno dugo. Dovoljno je da se transliraju krajnje tačke linija i da seiscrta linija između novih, transliranih tačaka; ovaj princip važi i za skaliranje i rotiranje.Na slici 1.1 prikazano je transliranje kućice za vrednost (3,−4).

Slika 1.1. Transliranje

Tačke mogu da budu skalirane ili mogu da im se promene veličine (vrednosti) samopo x ili samo po y osi (neproporcionalno) ili i po x i po y osi za istu vrednost (propor-cionalno). Promena veličine se postiže množenjem sa sx duž X ose i množenjem sa syduž Y ose:

x′ = sx x y′ = sy y (1.4)

U formi matrica izraz postaje:[x′

y′

]=[sx 00 dy

]·[x

y

]ili P′ = S · P (1.5)

gde S predstavlja matricu u izrazu (1.5).Na slici 1.2 kućica je skalirana vrednošću 1

2 po X osi i vrednošću 14 po Y osi.

Slika 1.2. Skaliranje

Treba napomenuti da se skaliranje obavlja oko koordinatnog početka, što znači da jekuća manja i bliža koordinatnom početku. Ako je faktor skaliranja veći od 1, onda jekućica veća i udaljenija od koordinatnog početka. Proporcije kućice se menjaju ako sufaktori skaliranja različiti po osama, tj. sx �= sy. Proporcije kućice se ne menjaju ako

Page 18: Glava 1 OSNOVNE KOMPONENTE GRAFIČKE OBRADE · Glava 1 OSNOVNE KOMPONENTE GRAFIČKE OBRADE Računarskagrafika nije potpunooriginalnatema, jer za definisanje i rešavanje problema

18

su faktori skaliranja isti po osama, tj. sx = sy.Tačke mogu da se rotiraju oko koordinatanog početka za neki ugao θ. Matema-

tička definicija rotiranja je:

x′ = x cosθ− y sinθ y′ = x sinθ+ y cosθ (1.6)

U formi matrica izraz postaje:[x′

y′

]=[cosθ −sinθsinθ cosθ

]·[x

y

]ili P′ = R · P (1.7)

gde R predstavlja matricu u izrazu (1.7). Na slici 1.3 prikazana je rotacija kućice za45◦ oko koordinatnog početka.

Slika 1.3. Rotiranje

Pozitivne vrednosti ugla rotacije se mere u suprotnom smeru od smera kretanja kazaljkena satu, od pozitivnog smera X ose. Za negativne vrednosti (mere se u smeru kretanjakazaljke na satu) mogu jednakosti

cos(−θ) = cosθ i sin(−θ) = −sinθda se iskoriste kako bi se modifikovali izrazi (1.6) i (1.7). Izraz (1.6) je lako dobiti saslike 1.4, gde se tačka P(x, y) rotiranjem za ugao θ transformiše u tačku P′(x′, y′).

Slika 1.4. Jednačina rotiranja

Zbog toga što se radi o rotiranju oko koordinatnog početka, rastojanje od koordinatnogpočetka do tačaka P i P′ je isto (na slici 1.16 označeno je sa r). Primenom osnovnihpravila trigonometrije, došlo se do izraza:

x = r cosφ i y = r sinφ (1.8)

Page 19: Glava 1 OSNOVNE KOMPONENTE GRAFIČKE OBRADE · Glava 1 OSNOVNE KOMPONENTE GRAFIČKE OBRADE Računarskagrafika nije potpunooriginalnatema, jer za definisanje i rešavanje problema

19

i

x′ = r cos(θ+ φ) = r cosφcosθ− r sinφ sinθy′ = r sin(θ+ φ) = r cosφ sinθ+ r sinφcosθ (1.9)

Zamenom izraza (1.8) u izraz (1.9) dobija se izraz (1.6).

1.3.2 Homogene koordinate i matrice u 2D transformacijama

O matričnim prezentacijama transliranja, skaliranja i rotiranja već je bilo reči, i oneimaju oblik: za transliranje P′ = P+T , za skaliranje P′ = S ·P, i za rotiranje P′ = R ·P.Očigledno je da se transliranje tretira drugačije (kao zbir članova) od skaliranja i roti-ranja (kao proizvod članova). Da bi se ovo pojednostavilo, ide se na to da se sve tritransformacije tretiraju identično. U tom pogledu bitnu ulogu su imale homogenekoordinate i tu se sve transformacije tretiraju kao proizvodi. Homogene koordinate surazvijene zbog računarske grafike i najpre su primenjene tu. Razni grafički potprogramii procesori rade primenjujući homogene koordinate i pomenute transformacije.

U homogenim koordinatama tačke imaju i treću koordinatu. Umesto da tačka budeprikazana parom brojeva (x, y), u homogenim koordinatama tačka je prikazana sa tribroja (x, y,W). U isto vreme, za dve homogene koordinate (x, y,W) i (x′, y′,W′)se kaže da su iste ako se jedna koordinata dobija množenjem druge. Tako koordinate(2, 3, 5) i (4, 6, 10) predstavljaju istu tačku, koja je prikazana sa dva različita kompletabrojeva. Očigledno je da svaka tačka ima neograničen broj prezentacija unutar ho-mogenih koordinata. Važno je napomenuti da barem jedna homogena koordinata morada bude različita od nule, što znači da nije dozvoljena tačka (0,0,0). Ako je koor-dinata W različita od 0, onda vrednosti tačaka mogu da se podele sa tom vrednošću ida se dobije jednakost:

(x, y,W) =( xW,y

W, 1)

Kada je W �= 0, onda može da se obavi ovo deljenje i brojevi x/W i y/W se zovuDekartove koordinate homogenih tačaka. Tačke sa W = 0 se nazivaju tačke u besko-načnosti i takve tačke se neće ovde razmatrati.

Uobičajeno je da tri koordinate predstavljaju tačku u 3D prostoru, ali ovde tekoordinate predstavljaju tačku u 2D prostoru. Veza je sledeća: ako se uzmu u obzirsve koordinate koje predstavljaju istu tačku, sve koordinate tipa (tx, ty, tW), gde jet �= 0, onda se dobija linija u 3D prostoru. Zaključak je da svaka homogena tačkapredstavlja liniju u 3D prostoru. Ako se homogenizuju tačke (deljenjem sa W),onda se dobijaju tačke sa koordinatama (x, y, 1). To znači da homogenizovane tačkeformiraju ravan koja je definisana jednačinom W = 1 u (x, y,W) prostoru. Slika 1.5prikazuje ovu relaciju. Tačke u bekosnačnosti nisu prikazane u ovoj ravni.

Page 20: Glava 1 OSNOVNE KOMPONENTE GRAFIČKE OBRADE · Glava 1 OSNOVNE KOMPONENTE GRAFIČKE OBRADE Računarskagrafika nije potpunooriginalnatema, jer za definisanje i rešavanje problema

20

Slika 1.5. XYW homogeni koordinatni prostor

Kada se tako predstave homogene tačke, onda transformaciona matrica, koja množivektor jedne tačke kako bi se dobio vektor druge tačke, mora da bude 3 × 3. U formimatrice 3 × 3 za homogene koordinate, izraz transliranja (1.1) postaje:

⎡⎣ x′

y′

1

⎤⎦ =

⎡⎣ 1 0 dx

0 1 dy

0 0 1

⎤⎦ ·⎡⎣ x

y

1

⎤⎦ (1.10)

Transponovana matrica je matrica kod koje redovi i kolone menjaju svoja mesta i kodkoje mora da se zadovolji jednakost:

(AT)−1

=(A−1

)TAko se primene transponovane matrice, onda je:

(M · P)T = PT ·MT

Jednačina (1.10) može da se predstavi u obliku:

P′ = T (dx, dy) · P (1.11)

gde je:

T (dx, dy) =

⎡⎣ 1 0 dx

0 1 dy

0 0 1

⎤⎦ (1.12)

Šta se dešava kada se tačka P translira pomoću T (dx1 , dx2) do tačke P′, a onda setranslira pomoću T (dx2 , dy2) do tačke P′′? Ono što se intuitivno očekuje je transliranjetipa T (dx1 + dx2 , dy1 + dy2). Da bi se ovo potvrdilo, mora da se krene od:

P′ = T (dx1 , dy1) · P (1.13)P′′ = T (dx2 , dy2) · P′ (1.14)

Ako se izraz (1.13) zameni u izrazu (1.14), dobija se:

P′′ = T (dx2 , dy2) · [T (dx1 , dy1) · P] = [T (dx2 , dy2) · T (dx1 , dy1)] · P (1.15)

Page 21: Glava 1 OSNOVNE KOMPONENTE GRAFIČKE OBRADE · Glava 1 OSNOVNE KOMPONENTE GRAFIČKE OBRADE Računarskagrafika nije potpunooriginalnatema, jer za definisanje i rešavanje problema

21

Proizvod matrica T (dx2 , dy2) · T (dx1 , dy1) je:⎡⎣ 1 0 dx2

0 1 dy2

0 0 1

⎤⎦ ·⎡⎣ 1 0 dx1

0 1 dy1

0 0 1

⎤⎦ =

⎡⎣ 1 0 dx1 + dx2

0 1 dy1 + dy2

0 0 1

⎤⎦ (1.16)

Očekivano transliranje je zaista tipa T (dx1 + dx2 , dy1 + dy2). Ovaj proizvod matricaima razne nazive, ali ovde će se koristiti naziv kompozicija matrica T (dx1 , dy1) iT (dx2 , dy2).

Slično ovome, jednačina skaliranja (1.4) može da se predstavi u matričnoj formi:⎡⎣ x′

y′

1

⎤⎦ =

⎡⎣ sx 0 0

0 sy 00 0 1

⎤⎦ ·⎡⎣ x

y

1

⎤⎦ (1.17)

Definisanjem

S (sx, sy) =

⎡⎣ sx 0 0

0 sy 00 0 1

⎤⎦ , (1.18)

dobija seP′ = S (sx, sy) · P (1.19)

Kao što je ranije uspešno transliranje predstavljeno sabiranjem, ovde se očekuje da ćese uspešno skaliranje predstaviti množenjem. Ako je poznato:

P′ = S (sx1 , sy1) · P (1.20)P′′ = S (sx2 , sy2) · P′ (1.21)

i ako se izraz (1.20) zameni u izrazu (1.21), onda se dobija:

P′′ = S (sx2 , sy2) · [S (sx1 , sy1) · P] = [S (sx2 , sy2) · S (sx1 , sy1)] · P (1.22)

Proizvod matrica S (sx2 , sy2) · S(sx1 , sy2) je:⎡⎣ sx2 0 0

0 sy2 00 0 1

⎤⎦ ·⎡⎣ sx1 0 0

0 sy1 00 0 1

⎤⎦ =

⎡⎣ sx1 · sx2 0 0

0 sy1 · sy2 00 0 1

⎤⎦ (1.23)

I zaista, uspešno skaliranje je predstavljeno množenjem.Na kraju, jednačina rotiranja (1.6) može da se predstavi kao:

⎡⎣ x′

y′

1

⎤⎦ =

⎡⎣ cosθ −sinθ 0sinθ cosθ 0

0 0 1

⎤⎦ ·⎡⎣ x

y

1

⎤⎦ (1.24)

Definisanjem

R(θ) =

⎡⎣ cosθ −sinθ 0sinθ cosθ 0

0 0 1

⎤⎦ (1.25)

Page 22: Glava 1 OSNOVNE KOMPONENTE GRAFIČKE OBRADE · Glava 1 OSNOVNE KOMPONENTE GRAFIČKE OBRADE Računarskagrafika nije potpunooriginalnatema, jer za definisanje i rešavanje problema

22

dobija seP′ = R(θ) · P (1.26)

Ako je poznato:

P′ = R (θ1) · P (1.27)P′′ = R (θ2) · P′ (1.28)

i ako se izraz (1.26) zameni u uzraz (1.27), dobija se:

R(θ1) · R(θ2) =

⎡⎣ cosθ1 −sinθ1 0sinθ1 cosθ1 0

0 0 1

⎤⎦ ·⎡⎣ cosθ2 −sinθ2 0sinθ2 cosθ2 0

0 0 1

⎤⎦ =

=

⎡⎣ cos(θ1 + θ2) −sin(θ1 + θ2) 0sin(θ1 + θ2) cos(θ1 + θ2) 0

0 0 1

⎤⎦ (1.29)

Očigledno je iz izraza (1.28) da je:

R(θ1) · R(θ2) = R(θ1 + θ2) (1.30)

U gornjoj levoj 2 × 2 podmatrici u jednačini (1.25) dva reda mogu da se smatrajuvektorima. Da bi vektori bili prikazani, moraju da zadovolje tri uslova:

• da je svaki vektor jedinični;

• da vektori međusobno zaklapaju ugao od 90◦, tj. da su međusobno normalni; i

• da se prvi i drugi vektor rotiraju pomoću R(θ) kako bi ležali duž pozitivnihsmerova x i y osa (ako se poštuju prethodna dva uslova, onda to znači dadeterminanta podmatrice ima vrednost 1).

Prva dva uslova važe i za kolone podmatrice 2 × 2. Definisani pravci su zaista onikoji se poklapaju sa pozitivnim smerovima x i y osa kada se vektori zarotiraju. Oviuslovi omogućavaju dva korisna načina za određivanje matrice rotacije kada se zna štata rotacija treba da omogući. Matrica koja ispunjava ove uslove naziva se specijalnaortogonalna matrica.

Transformaciona matrica, čija je forma⎡⎣ r11 r12 txr21 r22 ty0 0 1

⎤⎦ (1.31)

i čija je gornja leva 2×2 podmatrica ortogonalna, sadrži i čuva informacije o uglovima idužinama. Posle primene ovakve matrice, jedinična površina (jedinični kvadrat) ostajejedinična površina, samo se menja oblik (ne dobija se ni romb ni pravougaonik). Ovakvetransformacije su poznate pod nazivima transformacije čvrstih tela (solida) zato što

Page 23: Glava 1 OSNOVNE KOMPONENTE GRAFIČKE OBRADE · Glava 1 OSNOVNE KOMPONENTE GRAFIČKE OBRADE Računarskagrafika nije potpunooriginalnatema, jer za definisanje i rešavanje problema

23

se telo ili objekat transformiše, ali nema izobličenja u bilo kom pravcu. Kombinacijommatrica rotacije i translacije dolazi se do ovakve matrice.

Proizvodi proizvoljnih delova matrica za transliranje, rotiranje i skaliranje nazivajuse i afine transformacije, jer se kod njih vodi računa o paralelnosti linija, a ne odužinama i uglovima. Na slici 1.6 prikazan je rezultat primene rotacije jedinične kockeza 45◦, a onda je na tu kocku primenjeno neuniformno skaliranje. Očigledno je sa slike1.6 da su paralelne linije ostale paralelne, ali uglovi i dužine nemaju više iste vrednosti.Dalje transformacije tipa rotiranja, skaliranja i transliranja ne garantuju paralelnostlinija. Veličine R(θ), S (sx, sy) i T (dx, dy) su, takođe, afine transformacije.

Slika 1.6. Afine transformacije

Još jedan tip primitivne transformacije, transformacija smicanjem, je, takođe, afinatransformacija. Postoje dve vrste transformacije smicanjem: smicanje duž x ose ismicanje duž y ose. Slika 1.7 prikazuje efekte transformacije smicanjem duž pomenutihosa tekućeg koordinatnog sistema.

Slika 1.7. Trasnformacija smicanjem

Ova operacija može da se predstavi matricom

SHx =

⎡⎣ 1 a 0

0 1 00 0 1

⎤⎦ . (1.32)

Član a u matrici smicanja predstavlja proporcionalnu konstantu, tj. koeficijent propor-cionalnosti. Na primer, proizvod

SHx

[x y 1

]T =[x+ ay y 1

]Tjasno pokazuje srazmernu promenu u pravcu x ose kao funkciju y, tj. jasno pokazujesmicanje duž x ose. Slično ovome, matrica

SHy =

⎡⎣ 1 0 0b 1 00 0 1

⎤⎦ (1.33)

definiše smicanje duž y ose.

Page 24: Glava 1 OSNOVNE KOMPONENTE GRAFIČKE OBRADE · Glava 1 OSNOVNE KOMPONENTE GRAFIČKE OBRADE Računarskagrafika nije potpunooriginalnatema, jer za definisanje i rešavanje problema

24

1.3.3 Kombinovanje 2D transformacija

Korisnik može da kombinuje osnovne R, S i T matrice kako bi dobio željeni rezultat.Osnovna prednost kombinovanja transformacija je u povećanju efikasnosti primenomjedne komponovane transformacije na tačku, nego promena više transformacija, jedneza drugom.

Na primer, pretpostavka je da treba zarotirati objekat oko neke tačke P1. Uobiča-jeno je da se rotiranje vrši oko koordinatnog početka tekućeg koordinatnog sistema, jervećina grafičkih paketa tako i radi. Zbog toga se ovaj problem razbija na tri jednos-tavnija koraka:

1. Transliranje objekta i definisanje koordinatnog početka u tački P1.

2. Rotiranje objekta.

3. Transliranje objekta kako bi se tačka iz koordinatnog početka vratila na pozicijuP1.

Ovaj način ilustrovan je na slici 1.8 gde se "kućica" rotira oko tačke P1(x1, y1). Prvotransliranje se vrši za (−x1,−y1), dok se poslednje transliranje obavlja za inverznuvrednost (x1, y1). Rezultat je drugačiji nego da je obavljeno samo rotiranje oko tačke.

Slika 1.8. Rotacija oko tačke P1 za ugao θ

Složena transformacija ima sledeći oblik:

TRT = T (x1, y1) · R(θ) · T (−x1,−y1) (1.34)

TRT =

⎡⎣ 1 0 x1

0 1 y1

0 0 1

⎤⎦ ·⎡⎣ cosθ −sinθ 0sinθ cosθ 0

0 0 1

⎤⎦ ·⎡⎣ 1 0 −x1

0 1 −y1

0 0 1

⎤⎦ (1.35)

TRT =

⎡⎣ cosθ −sinθ x1 (1 − cosθ) + y1 sinθ

sinθ cosθ y1 (1 − cosθ) − x1 sinθ

0 0 1

⎤⎦ (1.36)

Sličan pristup primenjuje se kada korisnik hoće da skalira objekat oko zadate tačkeP1. Najpre treba translirati objekat da se tačka P1 poklopi sa koordinatnim početkom,

Page 25: Glava 1 OSNOVNE KOMPONENTE GRAFIČKE OBRADE · Glava 1 OSNOVNE KOMPONENTE GRAFIČKE OBRADE Računarskagrafika nije potpunooriginalnatema, jer za definisanje i rešavanje problema

25

nakon toga se objekat skalira i, na kraju, objekat se translira nazad u tačku P1. Utakvom slučaju, složena transformacija ima sledeći oblik:

TST = T (x1, y1) · S (sx, sy) · T (−x1,−y1) (1.37)

TST =

⎡⎣ 1 0 x1

0 1 y1

0 0 1

⎤⎦ ·⎡⎣ sx 0 0

0 sy 00 0 1

⎤⎦ ·⎡⎣ 1 0 −x1

0 1 −y1

0 0 1

⎤⎦ (1.38)

TST =

⎡⎣ sx 0 x1 (1 − sx)

0 sy y1 (1 − sy)0 0 1

⎤⎦ (1.39)

Ako korisnik hoće da skalira, rotira i translira kućicu sa tačkom P1 kao centrom skali-ranja i rotiranja, kao što je to prikazano na slici 1.9, onda je postupak sledeći: najprese translira kućica i to tako da se tačka P1 poklopi sa koordinatnim početkom, nakontoga se skalira i rotira i, na kraju, vrši se transliranje kućice iz koordinatnog početkado nove tačke P2, gde je završna pozicija.

Slika 1.9. Translacija, skaliranje i rotacija kućice do željenog položaja

Ovakva transformacija mora da sadrži faktor(e) skaliranja, ugao rotacije, kao i pomerajetokom transliranja, tako da ova složena transformacija ima sledeći oblik:

TRTS = T (x2, y2) · R(θ) · S (sx, sy) · T (−x1,−y1) (1.40)

1.3.4 Transformacija prozor/vizir

U računarskoj grafici prozor (engleski naziv je Window) je deo ekrana u aplikativnimi grafičkim interfejsima koji može da sadrži sopstveni dokumenat ili poruku. U okru-ženjima zasnovanim na prozorima, ekran može da se podeli na nekoliko okana tako dasvaki od njih ima svoje granice i da sadrži različit dokument (ili različit prikaz istogdokumenta). Izraz vizir (engleski naziv je Viewport) u računarskoj grafici predstavljaodređeni pregled (na) dokument(a) ili sliku(e). Vizir je sličan prozoru, ali se u njemuobično vidi samo deo dokumenta ili grafičke slike, i iz određene tačke posmatranja.

Neki grafički paketi zahtevaju od korisnika da definiše izlazne koordinate u svetskomkoordinatnom sistemu (WCS-u), i to u različitim jedinicama: mikronima, metrima,miljama, svetlosnim godinama itd. Termin svetski se koristi, jer je to okruženje kojeapliakcija stvara i prikazuje korisniku.

Page 26: Glava 1 OSNOVNE KOMPONENTE GRAFIČKE OBRADE · Glava 1 OSNOVNE KOMPONENTE GRAFIČKE OBRADE Računarskagrafika nije potpunooriginalnatema, jer za definisanje i rešavanje problema

26

Ako se definišu izlazne koordinate kao svetske koordinate, onda grafički potprogramimoraju da konvertuju te koordinate u ekranske koordinate. Pretvaranje jednih u drugekoordinate može da se obavi na dva načina:

• Prvi način je da programer definiše transformacionu matricu koja će izvršiti redi-rekciju ekranskih koordinata u svetske, i obrnuto.

• Drugi način je da programer definiše pravougaonu površinu u svetskom koor-dinatnom sistemu i pravougaonu površinu u ekranskom koordinatnom sistemu,tj. u viziru, u koji će se mapirati sadržina prozora u svetskom koordinatnomsistemu. Transformacije prenosa iz prozora u svetskom koordinatnom sistemu uvizir u ekranskom koordinatnom sistemu primenjuju se na sve objekte prilikommapiranja, iz prozora u vizir. Slika 1.10 prikazuje ovaj koncept.

Slika 1.10. Prebacivanje iz prozora u vizir

Kao što se vidi sa slike 1.10, ako nije isti odnos visine (po y osi) i širine (po x osi)prozora i vizira, onda se pojavljuje skaliranje objekata sa različitim faktorima skaliranjapo svakoj osi. To znači da se objekti u viziru deformišu. Ako aplikacioni program menjaprozor ili vizir, onda se te promene manifestuju i na objekte unutar tih površina. Akose vrši prebacivanje iz prozora u više različitih vizira, onda se transformacije primenjujuza svaki vizir posebno i na osnovu geometrije. To znači da su objekti različiti u vizirimarazličitih dimenzija (slika 1.11).

Slika 1.11. Prebacivanje iz prozora u više vizira

Ako su poznate dimenzije prozora i vizira, kako izgleda transformaciona matrica kojamapira sadržinu prozora u svetskom koordinatnom sistemu u sadržinu vizira u ekran-

Page 27: Glava 1 OSNOVNE KOMPONENTE GRAFIČKE OBRADE · Glava 1 OSNOVNE KOMPONENTE GRAFIČKE OBRADE Računarskagrafika nije potpunooriginalnatema, jer za definisanje i rešavanje problema

27

skom koordinatnom sistemu? Ova matrica može da se razvije kao složena matrica kojaobavlja tri koraka, kao što je to prikazano na slici 1.12.

Slika 1.12. Tri koraka za prebacivanje iz prozora u vizir

Prozor, koji je definisan donjim levim i gornjim desnim temenom, se, najpre, translirau koordinatni početak svetskog koordinatnog sistema. Sledeći korak je da se prozorskaliranjem svede na veličinu vizira. Na kraju se vrši transliranje vizira kako bi sepozicionirao u finalni položaj. Složena matrica Mwv definisana je kao:

Mwv = T (umin, vmin) · S(umax − umin

xmax − xmin

)· T (−xmin,−ymin)

gde je:

T (umin, vmin) =

⎡⎣ 1 0 umin

0 1 vmin

0 0 1

⎤⎦

S

(umax − umin

xmax − xmin

)=

⎡⎢⎢⎣

umax−umin

xmax−xmin0 0

0 vmax−vmin

ymax−ymin0

0 0 1

⎤⎥⎥⎦

T (−xmin,−ymin) =

⎡⎣ 1 0 −xmin

0 1 −ymin

0 0 1

⎤⎦

Konačan izgled složene matrice je:

Mwv =

⎡⎢⎢⎣

umax−umin

xmax−xmin0 −xmax

umax−umin

xmax−xmin+ umin

0 vmax−vmin

ymax−ymin−ymin

vmax−vmin

ymax−ymin+ vmin

0 0 1

⎤⎥⎥⎦ (1.41)

Množenjem matrice Mwv sa[x y 1

]Tdolazi se do željenog rezultata:

P =[

(x− xmin) umax−umin

xmax−xmin+ umin (y− ymin) vmax−vmin

ymax−ymin+ vmin 1

]

Page 28: Glava 1 OSNOVNE KOMPONENTE GRAFIČKE OBRADE · Glava 1 OSNOVNE KOMPONENTE GRAFIČKE OBRADE Računarskagrafika nije potpunooriginalnatema, jer za definisanje i rešavanje problema

28

Mnogi grafički paketi kombinuju transformaciju na relaciji prozora i vizira sa isecanjemobjekata u prozoru sa svetskim koordinatnim sistemom. Ovaj koncept isecanja ćebiti naknadno obrađen. Na slici 1.13 ilustrovano je isecanje sadržine prozora i njenoprikazivanje u viziru.

Slika 1.13. Isecanje objekata u prozoru i njihovo prikazivanje u viziru

1.3.5 Efikasnost

Većina kompozicija R, S i T operacija proizvode matricu čija je forma:

M =

⎡⎣ r11 r12 txr21 r22 ty0 0 1

⎤⎦ . (1.42)

Gornja leva podmatrica 2×2 predstavlja kompozitnu matricu rotiranja i skaliranja, gdetx i ty predstavljaju komponente kompozitnog transliranja. Ako se računa M · P kaovektor koji se množi matricom 3×3, onda se pojavljuje 6 sabiranja i 9 množenja. Poštosu vrednosti poslednjeg reda matrice u jednačini (1.41) fiksne, onda to pojednostavljujeoperacije:

x′ = x · r11 + y · r12 + txy′ = x · r21 + y · r22 + ty, (1.43)

i dolazi se do 4 sabiranja i 4 množenja. Na ovaj način se povećava brzina rada, posebnokada treba primeniti ove operacije na hiljade tačaka po slici. Matrice 3×3 su korisne zakomponovanje 2D transformacija, ali je efikasnije koristiti finalne matrice za specijalnei specifične strukture podataka.

Još jedna oblast gde je efikasnost bitna je stvaranje potrebnih pogleda na objekatili objekte, kao što su molekuli ili avion, gde se svaki pogled rotira za nekoliko stepeni.Ako treba kreirati i prikazati svaki pogled dovoljno brzo (od 30 do 100 milisekundisvaki), onda će se objekti prikazivati i rotirati dinamički. Da bi se povećala brzinaprikazivanja, korisnik mora da obezbedi brzo transformisanje svake tačke i linije naobjektu ili objektima. Jednačine rotiranja (1.6) zahtevaju 4 množenja i 2 sabiranja.Treba smanjiti ove operacije, i to reorganizujući jednačine: ugao θ je mali (nekolikostepeni), tako da je cosθ ∼= 1. Ovakvom aproksimacijom, jednačine (1.6) postaju:

x′ = x− y sinθ y′ = x sinθ+ y (1.44)

Page 29: Glava 1 OSNOVNE KOMPONENTE GRAFIČKE OBRADE · Glava 1 OSNOVNE KOMPONENTE GRAFIČKE OBRADE Računarskagrafika nije potpunooriginalnatema, jer za definisanje i rešavanje problema

29

i za njihovo rešavanje treba 2 množenja i 2 sabiranja. Neutralisanje 2 množenja dopri-nosi brzini rada računara.

Jednačine (1.44) donose aproksimaciju samo vrednosti x′ i y′, što znači da jegreška mala. Svaki put kada se jednačine primenjuju na nove vrednosti x i y, greškapostaje veća. Ako se ove jednačine primenjuju mnogo puta, greška postaje ozbiljna irotiranje slike počinje da liči na kolekciju proizvoljno nacrtanih linija. Ako se posmatrajujednačine (1.44), onda je bolje da se koristi x′ umesto x u drugoj jednačini:

x′ = x− y sinθy′ = x′ sinθ+ y = (x− y sinθ) sinθ+ y = x sinθ+ y (1 − sin2θ) (1.45)

Ovo je bolja transformacija nego što su to jednačine (1.44), jer determinanta odgovara-juće matrice 2 × 2 ima vrednost 1, što znači da vrednosti transformisane jednačinama(1.45) nisu promenjene.

1.3.6 Matrice u 3D transformacijama

Kao što je pokazano, 2D transformacije mogu da budu prikazane 3×3 matricama kadase koriste homogene koordinate, tako i 3D transformacije (ako se koriste homogenekoordinate) mogu da budu prikazane 4× 4 matricama. Umesto da se prikazuje u formi(x, y, z), tačka će se prikazivati u formi (x, y, z,W). U isto vreme, za dve homogenekoordinate (x, y, z,W) i (x′, y′, z′,W′) kaže se da su iste ako se jedna koordinata dobijamnoženjem druge. Tako koordinate (2, 3, 5, 1) i (4, 6, 10, 2) predstavljaju istu tačku,koja je prikazana sa dva različita skupa brojeva. Očigledno je da svaka tačka može dase predstavi na bezbroj načina unutar homogenih koordinata. Pored toga, barem jednahomogena koordinata mora da bude različita od nule, što znači da nije dozvoljenatačka (0,0,0,0). Ako je koordinata W različita od 0, onda vrednosti tačaka mogu dase podele sa tom vrednošću, što daje jednakost:

(x, y, z,W) =( xW,y

W,z

W, 1).

Transformisanje tačaka u ovaj oblik naziva se homogenizacija. Sve tačke čije sukoordinate W = 0 nazivaju se tačkama u beskonačnosti. Svaka tačka u 3D pros-toru je predstavljena linijom kroz koordinatni početak 4D prostora, a homogenizovanaprezentacija ovih tačaka u formi 3D potprostora 4D prostora, predstavljena je jedin-stvenom jednačinom W = 1.

Kod 3D koordinatnog sistema, koji se ovde koristi, važi pravilo desne ruke, kako jeprikazano na slici 1.14. Kako je usvojeno, pozitivno rotiranje u desnom koordinatnomsistemu je takvo da kada korisnik stoji na pozitivnom delu ose i gleda ka koordinat-nom početku, rotiranjem za 90◦ u smeru suprotnom od smera kretanja kazaljke nasatu, pozitivni smer jedne ose se pretvara u pozitivni smer druge ose. Sledeća pravilaproizilaze iz ove konvencije: ako je osa rotacije x osa, onda je pozitivan smer rotacijeod ose y ka osi z; ako je osa rotacije y osa, onda je pozitivan smer rotacije od osez ka osi x; i ako je osa rotacije z osa, onda je pozitivan smer rotacije od ose x kaosi y. Postoji još jedna definicija, koja je odomaćena kod nas. Ako korisnik stegne

Page 30: Glava 1 OSNOVNE KOMPONENTE GRAFIČKE OBRADE · Glava 1 OSNOVNE KOMPONENTE GRAFIČKE OBRADE Računarskagrafika nije potpunooriginalnatema, jer za definisanje i rešavanje problema

30

pesnicu i palac poklopi sa pozitivnim smerom ose, onda prsti stegnute pesnice pokazujupozitivan smer rotacije oko te ose. Ove dve definicije, u stvari, govore isto.

Slika 1.14. Desni koordinatni sistem

Ovde se koriste desni koordinatni sistemi, jer je to standardna matematička konvencijamada mnogi misle da su bolji levi koordinatani sistemi (slika 1.15), jer je kod ovakvihkoordinatnih sistema pozitivan smer z ose od korisnika, što je prirodnije. Usvojenoje da je pozitivno rotiranje u levom koordinatnom sistemu takvo da, kada korisnikstoji na pozitivnom delu ose i gleda ka koordinatnom početku, obavlja se rotiranje za90◦ u smeru kretanja kazaljke na satu. Ovakva definicija pozitivne rotacije omogućavaprimenu istih matrica rotacije, bez obzira na to da li se radi o levim ili desnim koordinat-nim sistemima. Konverzija levog koordinatnog sistema u desni i desnog koordinatnogsistema u levi biće kasnije objašnjena.

Slika 1.15. Levi koordinatni sistem

Transliranje u 3D predstavlja jednostavno proširenje matrice za 2D transformacije:

T (dx, dy, dz) =

⎡⎢⎢⎣

1 0 0 dx

0 1 0 dy

0 0 1 dz

0 0 0 1

⎤⎥⎥⎦ (1.46)

U tom slučaju je:

T (dx, dy, dz) ·[x y z 1

]T =[x+ dx y+ dy z+ dz 1

]T.

Skaliranje u 3D predstavlja jednostavno proširenje matrice za 2D transformacije:

S (sx, sy, sz) =

⎡⎢⎢⎣sx 0 0 00 sy 0 00 0 sz 00 0 0 1

⎤⎥⎥⎦ (1.47)

Page 31: Glava 1 OSNOVNE KOMPONENTE GRAFIČKE OBRADE · Glava 1 OSNOVNE KOMPONENTE GRAFIČKE OBRADE Računarskagrafika nije potpunooriginalnatema, jer za definisanje i rešavanje problema

31

U tom slučaju je:

S (sx, sy, sz) ·[x y z 1

]T =[sx · x sy · y sz · z 1

]T.

Jednačina (1.26), kojom je opisano rotiranje u ravni, predstavlja 3D rotiranje oko zose, gde je:

Rz(θ) =

⎡⎢⎢⎣cosθ −sinθ 0 0sinθ cosθ 0 0

0 0 1 00 0 0 1

⎤⎥⎥⎦ (1.48)

Ovo je lako dokazati. Ako se izvrši rotacija[

1 0 0 1]T

za 90◦, što predstavlja

jedinični vektor duž x ose, dolazi se do jediničnog vektora[

0 1 0 1]T duž y ose.

Ako se ovo prikaže brojkama, onda proizvod⎡⎢⎢⎣

0 −1 0 01 0 0 00 0 1 00 0 0 1

⎤⎥⎥⎦ ·

⎡⎢⎢⎣

1001

⎤⎥⎥⎦

daje očekivani rezultat[

0 1 0 1]T .

Matrica koja opisuje rotiranje oko x ose je:

Rx(θ) =

⎡⎢⎢⎣

1 0 0 00 cosθ −sinθ 00 sinθ cosθ 00 0 0 1

⎤⎥⎥⎦ . (1.49)

Matrica koja opisuje rotiranje oko y ose je:

Ry(θ) =

⎡⎢⎢⎣

cosθ 0 sinθ 00 1 0 0

−sinθ 0 cosθ 00 0 0 1

⎤⎥⎥⎦ (1.50)

Kolone i redovi u gornjim 3 × 3 podmatricama matrica Rx(θ), Ry(θ) i Rz(θ) pred-stavljaju normalne jedinične vektore i te podmatrice imaju vrednost determinante 1,što znači da su tri matrice ortogonalne, o čemu je već bilo reči. Sve tri transformacionematrice imaju inverzne matrice. Inverzna T matrica dobija se postavljanjem negativnihvrednosti dx, dy i dz; inverzna S matrica se dobija postavljanjem recipročnih vrednostisx, sy i sz; inverzne Rx, Ry i Rz matrice dobijaju se postavljanjem negativne vrednostiugla rotacije.

Neograničen broj matrica transliranja, skaliranja i rotiranja može da se množi.Rezultat tog množenja je proizvod koji uvek ima sledeću formu:

M =

⎡⎢⎢⎣r11 r12 r13 txr21 r22 r23 tyr31 r32 r33 tz0 0 0 1

⎤⎥⎥⎦ . (1.51)

Page 32: Glava 1 OSNOVNE KOMPONENTE GRAFIČKE OBRADE · Glava 1 OSNOVNE KOMPONENTE GRAFIČKE OBRADE Računarskagrafika nije potpunooriginalnatema, jer za definisanje i rešavanje problema

32

Kao što je to bio slučaj u 2D transformacijama, gornja leva 3×3 podmatrica R prikazujeskupno rotiranje i skaliranje, gde T prikazuje složeno transliranje. Radi poboljšanjaefikasnosti neki računarski programi preporučuju transformacije eksplicitno u formi:

⎡⎣ x′

y′

z′

⎤⎦ = r ·

⎡⎣ x

y

z

⎤⎦+ T, (1.52)

gde su R i T podmatrice iz jednačine (1.51).Dvodimenzionalnoj matrici smicanja odgovara 3D matrica smicanja. Smicanje

(x, y) je:

SHxy (shx, shy) =

⎡⎢⎢⎣

1 0 shx 00 1 shy 00 0 1 00 0 0 1

⎤⎥⎥⎦ (1.53)

Ako se izraz (1.53) za SHxy primeni na tačku[x y z 1

]T , onda se dobija kaoodgovor

[x+ shx · z y+ shy · z z 1

]. Smicanja u pravcu x i y ose imaju sličnu

formu.

1.3.7 Kombinovanje 3D transformacija

Sledi primer komponovanja 3D transformacione matrice. Trebalo bi transformisati dužiP1P2 i P2P3 na slici 1.16, od početne do završne pozicije. Najpre treba tačku P1

translirati u koordinatni početak, duž P1P2 treba da leži na pozitivnom delu z ose i dužP1P3 treba da leži u yz ravni, u delu koji obrazuju pozitivni smerovi osa y i z. Dužineduži nisu bitne za ove transformacije.

Slika 1.16. Transformisanje tačaka od početnog do krajnjeg položaja

Postoje dva načina da se ove transformacije predstave. Prvi način je komponovanjeprimitivnih transformacija T , Rx, Ry i Rz. Ovaj način je duži, ali se lako ilustrujei razume. Drugi način je korišćenje osobina ortogonalnih matrica, što je brže, ali ikompleksnije.

Rad sa primitivnim transformacijama je jednostavniji i sastoji se od razbijanjaproblema na jednostavnije faze. U ovom slučaju željena transformacija može da seodradi u četiri koraka: 1) transliranje tačke P1 u koordinatni početak; 2) rotiranje okoy ose kako bi duž P1P2 ležala u yz ravni; 3) rotiranje oko x ose kako bi duž P1P2 leglana pozitivan deo z ose; i 4) rotiranje oko z ose kako bi duž P1P3 legla u specificirani

Page 33: Glava 1 OSNOVNE KOMPONENTE GRAFIČKE OBRADE · Glava 1 OSNOVNE KOMPONENTE GRAFIČKE OBRADE Računarskagrafika nije potpunooriginalnatema, jer za definisanje i rešavanje problema

33

deo yz ravni. Slede detaljna objašnjenja svakog pojedinačnog koraka.Korak 1: Transliranje tačke P1 u koordinatni početak. Translacija je:

T (−x1,−y1,−z1) =

⎡⎢⎢⎣

1 0 0 −x1

0 1 0 −y1

0 0 1 −z10 0 0 1

⎤⎥⎥⎦ . (1.54)

Primenom T na tačke P1, P2 i P3 dobija se:

P′1 = T (−x1,−y1,−z1) · P1 =

⎡⎢⎢⎣

0001

⎤⎥⎥⎦ , (1.55)

P′2 = T (−x1,−y1,−z1) · P2 =

⎡⎢⎢⎣x2 − x1

y2 − y1

z2 − z11

⎤⎥⎥⎦ , (1.56)

P′3 = T (−x1,−y1,−z1) · P3 =

⎡⎢⎢⎣x3 − x1

y3 − y1

z3 − z11

⎤⎥⎥⎦ . (1.57)

Korak 2: Rotacija oko y ose. Slika 1.17 pokazuje položaj duži P1P2 posle prvogkoraka, sa projekcijama ove duži na xz ravan.

Slika 1.17. Rotacija oko y ose

Ugao rotacije je −(90 − θ) = θ− 90. Tada je:

cos(θ− 90) = sinθ =z′2

D1=z2 − z1D1

sin(θ− 90) = −cosθ = − x′2

D1= −x2 − x1

D1(1.58)

gde je

D1 =√

(z′2)2 + (x′2)2 =

√(z2 − z1)2 + (x2 − x1)2 (1.59)

Page 34: Glava 1 OSNOVNE KOMPONENTE GRAFIČKE OBRADE · Glava 1 OSNOVNE KOMPONENTE GRAFIČKE OBRADE Računarskagrafika nije potpunooriginalnatema, jer za definisanje i rešavanje problema

34

Kada se ove vrednosti zamene u izraz (1.50), dobija se:

P′′2 = Ry (θ− 90) · P′

2 =[

0 y2 − y1 D1 1]T. (1.60)

Kao što se i očekivalo, x komponenta tačke P′′2 je jednaka nuli, a z komponenta pred-

stavlja dužinu D1.Korak 3: Rotacija oko x ose. Slika 1.18 pokazuje duž P1P2 posle primenjenog

drugog koraka.

Slika 1.18. Rotacija oko x ose

Za ugao rotacije φ sledi:

cosφ =z′′2

D2sinφ =

y′′2

D2(1.61)

gde D2 = |P′′1P

′′2 | predstavlja dužinu duži P

′′1P

′′2 . Dužina duži P

′′1P

′′2 je jednaka dužini

duži P1P2 zato što transformacija rotacijom i translacijom ne utiče na dužinu, tako daje:

D2 = |P′′2P

′′1 | = |P2P1| =

√(x2 − x1)2 + (y2 − y1)2 + (z2 − z1)2. (1.62)

Rezultat rotacije u trećem koraku je:

P′′′2 = Rx(φ) · P′′

2 = Rx(φ) · Ry (θ− 90) · P′2 =

= Rx(φ) · Ry (θ− 90) · T · P2 =[

0 0 |P1P2| 1]T. (1.63)

Na ovaj način se dolazi do toga da se duž P1P2 poklapa sa pozitivnim smerom z ose.Korak 4: Rotacija oko z ose. Slika 1.19 prikazuje duži P1P2 i P1P3 posle trećeg

koraka, sa tačkom P′′′2 na z osi i sa tačkom P

′′′3 na poziciji:

P′′′3 =

[x

′′′3 y

′′′3 z

′′′3 1

]T= Rx(φ) · Ry (θ− 90) · T (−x1,−y1,−z1) · P3 (1.64)

Izvršena je rotacija za ugao α, gde je:

cosα =y

′′′3

D3sinα =

x′′′3

D3D3 =

√x

′′′33 + y′′′2

3 (1.65)

Rezultati četvrtog koraka već su prikazani na slici 1.16 u završnom položaju.

Page 35: Glava 1 OSNOVNE KOMPONENTE GRAFIČKE OBRADE · Glava 1 OSNOVNE KOMPONENTE GRAFIČKE OBRADE Računarskagrafika nije potpunooriginalnatema, jer za definisanje i rešavanje problema

35

Slika 1.19. Rotacija oko z ose

Kompozitna matrica

Rz(α) · Rx(φ) · Ry (θ− 90) · T (−x1,−y1,−z1) = R · T (1.66)

definiše tražene transformacije, s tim što je R = Rz(α) ·Rx(φ) ·Ry (θ−90). Sada trebaovu transformaciju primeniti na tačke P1, P2 i P3 kako bi se verifikovale predviđeneizmene: tačka P1 je transformisana u koordinatni početak, tačka P2 je transformisanada leži na pozitivnom delu z ose, a tačka P3 je transformisana da leži u delu yz ravnikoji formiraju pozitivni delovi y i z ose.

Drugi način za dobijanje matrice R je korišćenjem osobina ortogonalnih matrica.Ako se u matrici u jednačini (1.51) preimenuju indeksi (drugi po redu) po usvojenojkonvenciji, dolazi se do:

R =

⎡⎣ r1x r2x r3x

r1y r2y r3y

r1z r2z r3z

⎤⎦ . (1.67)

Pošto je Rz jedinični vektor duž P1P2, onda će se izvršiti rotacija ka pozitivnom smeruz ose:

Rz =[r1z r2z r3z

]T =P1P2

|P1P2| (1.68)

Sledi da je Rx jedinični vektor koji je normalan na ravni P1, P2 i P3 i treba ga zarotiratido pozitivnog dela x ose, tako da Rx mora biti normalizovan proizvodom dva vektorau ravni:

Rx =[r1x r2x r3x

]T =P1P3 × P1P2

|P1P3 × P1P2| (1.69)

Konačno,Ry =

[r1y r2y r3y

]T = Rz × Rx (1.70)

će rotirati do pozitivnog dela x ose. Kompozitna (složena) matrica ima oblik:⎡⎣ r1x r2x r3x 0r1y r2y r3y 0r1z r2z r3z 0

⎤⎦ · T (−x1,−y1,−z1) = R · T, (1.71)

gde su R i T isti kao u jednačini (1.66). Na slici 1.20 prikazani su individualni vektoriRx, Ry i Rz. Kao što je već rečeno, postoje dva načina da se transformacije predstave.

Page 36: Glava 1 OSNOVNE KOMPONENTE GRAFIČKE OBRADE · Glava 1 OSNOVNE KOMPONENTE GRAFIČKE OBRADE Računarskagrafika nije potpunooriginalnatema, jer za definisanje i rešavanje problema

36

Prvi način je komponovanje primitivnih transformacija, s tim što je ovo duži način, alise lako ilustruje i razume. Drugi način je pomoću ortogonalnih matrica, što je brže, alii kompleksnije.

Slika 1.20. Jedinični vektori Rx, Ry i Rz

1.3.8 Transformacije kao promene koordinatnog sistema

Do sada je bilo govora o transformacijama jednog skupa tačaka nekog objekta, u drugiskup tačaka, ali oba skupa tačaka su se nalazila u istom koordinatnom sistemu. Satakvim pristupom koordinatni sistem ostaje nepromenjen i objekat se transformiše uodnosu na koordinatni početak tekućeg koordinatnog sistema. Alternativni, ali i ekviva-lentni način razmišljanja o transformacijama je promena i izmena koordinatnog sistema.Ovaj način je koristan kada se radi sa više objekata, gde je svaki objekat definisan usopstvenom lokalnom koordinatnom sistemu, i kada treba te objekte iskombinovati, azatim i izraziti koordinate objekata u jedinstvenom, globalnom koordinatnom sistemu.

Ako se sa P(i) definiše prezentacija tačke u koordinatnom sistemu i, sa P(j) sedefiniše prezentacija tačke u koordinatnom sistemu j, i sa P(k) se definiše prezentacijatačke u koordinatnom sistemu k, onda važi:

P(i) = Mi←j · P(j) i P(j) = Mj←k · P(k) (1.72)

Zamenom se dobija

P(i) =Mi←j · P(j) = Mi←j ·Mj←k · P(k) = Mi←k · P(k), (1.73)

tako da slediMi←k = Mi←j ·Mj←k. (1.74)

Slika 1.21 prikazuje četiri različita koordinatna sistema. Ako se obrati pažnja na sliku,vidi se da je transformacija od koordinatnog sistema 2 do koordinatnog sistema 1:

M1←2 = T (4, 2)

Slično ovome, sledi:

M2←3 = T (2, 3) · S (0, 5; 0, 5)M3←4 = T (6, 7; 1, 8) · R (−45◦)M1←3 = M1←2 ·M2←3T (4, 2) · T (2, 3) · S (0, 5; 0, 5)

Page 37: Glava 1 OSNOVNE KOMPONENTE GRAFIČKE OBRADE · Glava 1 OSNOVNE KOMPONENTE GRAFIČKE OBRADE Računarskagrafika nije potpunooriginalnatema, jer za definisanje i rešavanje problema

37

Slika 1.21. Tačka P i koordinatni sistemi 1, 2, 3 i 4

Sa slike 1.21 je jasno da tačka P ima sledeće koordinate:

P(1) = (10, 8) P(2) = (6, 6) P(3) = (8, 6) P(4) = (4, 2)

od koordinatnog sistema 1 do koordinatnog sistema 4, respektivno. Veoma je lakoverifikovati da je:

P(i) = Mi←j · P(j) za 1 ≤ i, j ≤ 4.

Treba registrovati i sledeću relaciju:

Mi←j = M−1j←i

Odatle slediM2←1 = M−1

1←2 = T (−4,−2)

i zbog toga je:

M1←3 = M1←2 ·M2←3,

M−11←3 = M−1

2←3 ·M−11←2 = M3←2 ·M2←1

Već je bilo reči o levim i desnim koordinatnim sistemima. Matrica koja konvertuje tačkeiz jednog koordinatnog sistema (levog ili desnog) u drugi (levi ili desni) ima oblik:

MR←L = ML←R =

⎡⎢⎢⎣

1 0 0 00 1 0 00 0 −1 00 0 0 1

⎤⎥⎥⎦ (1.75)

Ranije je spominjan sledeći pristup: definisanje objekata se vršilo u svetskom koor-dinatnom sistemu, a onda se vršilo njihovo transformisanje na željena mesta; ovo jemalo nerealističan pristup, jer su svi objekti, inicijalno, smeštani jedan iznad drugog uistom koordinatnom sistemu. Mnogo je prirodnije da se razmišlja kako je svaki objekatdefinisan u sopstvenom koordinatnom sistemu, a onda se vrši skaliranje, rotiranje itransliranje kako bi se redefinisale koordinate koje bi odgovorale svetskom koordinat-nom sistemu. Neki ovakav pristup posmatraju kao posebne listove papira, sa objektimana njima, koji mogu da se skupljaju, razvlače, rotiraju i smeštaju na ravan sa aktivnimsvetskim koordinatnim sistemom. Drugi ovakav pristup posmatraju kao mogućnost da

Page 38: Glava 1 OSNOVNE KOMPONENTE GRAFIČKE OBRADE · Glava 1 OSNOVNE KOMPONENTE GRAFIČKE OBRADE Računarskagrafika nije potpunooriginalnatema, jer za definisanje i rešavanje problema

38

se ravan razvlači, skuplja i relativno premešta u odnosu na svaki papir. Matematički,oba gledišta su identična.

Sledi jednostavan primer transliranja skupa tačaka, koje definišu kućicu prikazanuna slici 1.22, u koordinatni početak. Ova transformacija je definisana kao T (−x1,−y1).

Slika 1.22. Kućica i dva koordinatna sistema

Ako se označe dva koordinatna sistema kao na slici 1.22, vidi se da transformacija kojaprevodi koordinatni sistem 1 u koordinatni sistem 2 ima oblik:

M2←1 = T (x1, y1) = T (−x1,−y1)−1.

Generalno pravilo je da transformacije koje transformišu set tačaka u jednom koor-dinatnom sistemu upravo odgovaraju inverznim transformacijama prilikom promenekoordinatnog sistema u kojima su tačke predstavljene. Ova relacija može da se vidi naslici 1.23, a direktno proističe iz slike 1.9.

Slika 1.23. Originalna i transformisana kućica

Transformacije za predstavljene tačke u jedinstvenom koordinatnom sistemu su:

T (x2, y2) · R(θ) · S (sx, sy) · T (−x1,−y1) (1.76)

Sa slike 1.23 vidi se da transformacija koordinatnog sistema ima oblik:

M5←1 = M5←4M4←3M3←2M2←1 =

= [T (x2, y2) · R(θ) · S (sx, sy) · T (−x1,−y1)]−1 =

= T (x1, y1) · R(−θ) · S (s−1x , s−1

y ) · T (−x2,−y2), (1.77)

tako da je

P(5) = M5←1 P(1) = T (x1, y1) · R(−θ) · S (s−1

x , s−1y ) · T (−x2,−y2) · P(1) (1.78)

Page 39: Glava 1 OSNOVNE KOMPONENTE GRAFIČKE OBRADE · Glava 1 OSNOVNE KOMPONENTE GRAFIČKE OBRADE Računarskagrafika nije potpunooriginalnatema, jer za definisanje i rešavanje problema

39

Za transformacije koordinatnih sistema važna je promena transformacija. Neka oznakaQ(j) predstavlja transformaciju u koordinatnom sistemu j, i mogla bi da bude, na primer,složena (kompozitna) transformacija dobijena u nekom prethodnom koraku. Ako jepotrebno izračunati transformacijuQ(i) u koordinatnom sistemu i koja se primenjuje natačke P(i) u sistemu i koja treba da proizvede iste rezultate kao kada se transformacijaQ(j) primeni na odgovarajuće tačke P(j) u sistemu j, onda za takvu jednakost važisledeći izraz:

Q(i) · P(i) =Mi←j ·Q(j) · P(j)

ZamenomP(i) =Mi←j · P(j)

gornji izraz postaje:

Q(i) ·Mi←j · P(j) = Mi←j ·Q(j) · P(j)

Pojednostavljujući gornji izraz dobija se:

Q(i) = Mi←j ·Q(j) ·M−1i←j