-
15. RAČUNARSKA GRAFIKA 15.1. Uvod Računarska grafika (eng.
Computer graphics) je oblast vizuelnog računarstva koje se bavi
svim aspektima kreiranja slike pomoću računara. Obuhvata hardver i
softver, kao i njihovu primjenu. Računarska grafika se primjenjuje
u raznim oblastima: računarske igre, računarska animacija,
snimanje, obrada i reprodukcija videa, specijalni filmski efekti,
obrada slike, simulacije i modeliranje. Računarska grafika je našla
svoju primjenu u mnogim oblastima: u tehnici, konstruiranju,
uredskom poslovanju, nauci, medicini, industriji zabave, sve do
kontrole kvaliteta u procesnoj industriji. Osnovni grafički sistem
je prikazan na slici 1. Kao i drugi računarski sistemi, sastoji se
od hardvera i softvera. Hardver se dijeli na ulazne uređaje, sistem
za formiranje slike i izlazne uređaje.
a) Ulazni uređaji b) Sistem za formiranje slike c) Izlazni
uređaj
Slika 1. Osnovni grafički sistem [1]
Pojava računarske grafike je vezana za prve aplikacije za
simulacije letenja, koje je razvijala američka vojska početkom
1950-ih godina. Prvi glavni iskorak u računarskoj grafici je
napravio Ivan Sutherland 1962. godine, izumom sketchpad-a (uređaja
za interakciju čovjeka s računarom), a on je autor mnogih
algoritama koji se i danas koriste u računarskoj grafici. Najčešće
podjele računarske grafike su na 2D i 3D grafiku, te na rastersku i
vektorsku grafiku. Pojam 2D grafike se odnosi na slike koje imaju
samo 2 dimenzije, kao što je slika koja se prikazuje na ekranu,
fotografija ili tehnički crtež. Sa razvojem računarskog hardvera
došlo je do razvoja 3D grafike, odnosno prikaza stvarnog
trodimenzionalnog prostora i objekata u digitalnom obliku. Ti 3D
modeli se onda mogu koristiti za kreiranje realističnih 2D slika,
za računarske simulacije i inženjerske analize. Rasterska grafika
je zasnovana na dvodimenzionalnoj mreži piksela. Slika se prikazuje
kao diskretni skup sitnih elemenata slike (Pixel - PICture
ELement), a svakom pikselu je pridružen broj, koji predstavlja boju
piksela. Vektorska grafika koristi osnovne geometrijske likove
(tačke, pravce, kružnice, lukove, poligone) za prikaz slike. To
omogućuje da se povećanjem slike ne gubi na kvalitetu slike, za
razliku od rasterske grafike (slika 2).
-
Slika 2. Povećanjem rasterske slike gubi se kvalitet, jer
pikseli postaju uočljivi
15.2. Hardver za računarsku grafiku Hardver za računarsku
grafiku se može podijeliti na: ulazne uređaje, sistem za formiranje
slike i izlazne uređaje. 15.2.1. Ulazni uređaji Za digitalizaciju
se koriste ulazni uređaji, kao što su skeneri i kamere.
Digitalizacija je proces pretvaranja realnih objekata u diskretni
set tačaka. Primjer digitalizacije je skeniranje dokumenta ili
fotografisanje digitalnim fotoaparatom. Skener Princip rada skenera
je prikazan na slici 3. Lampa osvjetljava original, od kojeg se
svjetlost odbija i preko ogledala i leća usmjerava na CCD senzor.
Senzor registruje razlike osvijetljenosti pojedinih tačaka sa
originala, što se očituje u promjeni nivoa analognog električnog
signala na izlazu iz senzora. Analogno-digitalni konvertor pretvara
taj analogni signal u binarni oblik, koji se dalje obrađuje pomoću
računara.
Slika 3. Princip rada skenera
Rezultat skeniranja je rasterska grafika, odnosno matrica
piksela. Broj piksela po jedinici površine naziva se rezolucija
skenera. Mjerna jedinica za rezoluciju je DPI (Dots Per Inch -
tačaka po inču). Svaki piksel je predstavljen brojem, koji
predstavlja boju piksela. Broj različitih nijansi boje koje može
imati svaki piksel naziva se dubina boje. Obično se dubina boje
mjeri brojem bita potrebnih za pohranjivanje broja u
-
binarnom obliku. Naprimjer, 24-bitna dubina boje koristi 24
bita, odnosno po 8 bita za prikaz tri osnovne boje (crvena, zelena,
plava). U binarnom obliku bi čista crvena boja, 24-bitne dubine
bila prikazana kao 11111111.00000000.00000000 (prvih 8 bita
predstavlja udio crvene boje, drugih 8 bita udio zelene i
posljednjih 8 bita udio plave boje). Crno-bijela (Greyscale) slika
ima 8-bitnu dubinu boje i kod nje broj predstavlja nijansu sive, od
0 (bijela) do 255 (crna). U binarnom obliku, bijeli piksel bi imao
vrijednost 00000000, a crni 11111111. Od dubine boje zavisi i broj
različitih nijansi koje se mogu prikazati (npr. 24-bitna slika ima
oko 16 miliona nijansi, a 8-bitna samo 256 nijansi boje). Kamera
Kod analognog fotoaparata se kroz sistem leća (objektiv)
osvjetljava film (celuloidna traka sa slojem osjetljivim na
svjetlost prije hemijske obrade). Kod digitalnog fotoaparata
osvjetljava se senzor. Senzor se sastoji od velikog broja
fotoosjetljivih dioda, koje intenzitet svjetla pretvaraju u
električni naboj. Senzori registruju samo intenzitet svjetla, tako
da je rezultat crno-bijela slika. James Clerk Maxwell je 1860
uslikao istu sliku kroz crveni, zeleni i plavi filter, a zatim je
tako dobijene crno-bijele slike projektovao kroz iste filtere, čime
je dobio kolor sliku. Na istom principu rade i današnji kolor
senzori. Svaki piksel na senzoru ima filter tako da propušta samo
jednu boju (slika 4).
crvena zelena plava Slika 4. Senzor digitalne kamere
Kod kamera se kvalitet slike mjeri megapikselima (1 megapiksel =
106 piksela). Za normalnu štampu (fotografije) dovoljna je
rezolucija od 200 DPI. Slika veličine 2000 x 1600 piksela (oko 3
megapiksela) se može odštampati na papir 20 x 25 cm, da se pikseli
ne primijete golim okom. Rezolucija od 640 x 480 (VGA) je dovoljna
za Web, e-mail ili prezentacije. 3D skeneri i digitalizatori U
posljednje vrijeme za digitalizaciju 3D objekata koriste se uređaji
koji mogu snimiti ne samo boju, nego i prostorni oblik objekata. Za
to se koriste mehanički digitalizatori (robotska ruka sa senzorom
koji detektuje prostorne koordinate pojedinih tačaka na objektu),
te optički uređaji kao što su laserski skeneri i 3D skeneri sa
projekcijom linija. Optički uređaji su zasnovani na principu
triangulacije; koordinate tačaka u prostoru se izračunavaju iz
geometrijskih osobina trougla koji čine položaj izvora svjetlosti,
položaj kamere i položaj tačke u prostoru od koje se odbija
svjetlost.
-
Slika 5. Optički 3D skener i mehanički digitalizator
15.2.2. Sistem za formiranje slike Pored centralnog procesora
(CPU - Central Processing Unit), čiji je zadatak obrada svih
podataka u računaru, obrada grafičkih podataka se vrši u posebnom
namjenskom mikroprocesoru (GPU - Graphical Processing Unit). GPU i
grafička memorija su obično realizovani kao posebna komponenta
računara, koja se naziva grafički adapter ili grafička kartica. Za
zahtjevnu 3D računarsku grafiku nije preporučljivo koristiti
računare sa grafičkim adapterom koji je integrisan u osnovnu ploču,
jer su takvi adapteri slabih performansi i opterećuju glavni
procesor i memoriju. Na slici 7 je prikazan tipičan grafički
adapter. Njegove glavne komponente su ulazni interfejs, odnosno
konektor za spajanje na sabirnicu računara (prema standardu AGP ili
PCI-Express), izlazni interfejsi za spajanje displeja (analogni
VGA, digitalni DVI i/ili video izlaz za spajanje sa drugim vrstama
video uređaja kao što je TV), video radna memorija (VRAM) i
grafički procesor (GPU). Savremeni grafički adapteri se nazivaju i
grafički akceleratori, jer sadrže hardver i softver koji služe za
ubrzanje obrade složene 3D grafike, kao što su proračun sjena,
geometrijske transformacije, složene teksture, uklanjanje
nevidljivih linija i sl. Kako se grafički adapteri u radu jako
griju, video memorija i GPU se opremaju pasivnim ili aktivnim
hladnjakom. Vodeći proizvođači grafičkih adaptera za PC računare su
Nvidia i ATI.
Slika 7. Grafički adapter
15.2.3. Izlazni uređaji Izlazni uređaji obuhvataju displeje
(ekrane, monitore, projektore) i štampače.
-
Displeji Prvi displeji koji su se koristili za prikaz računarske
grafike bili su zasnovani na katodnim cijevima (CRT - Catode Ray
Tube). U elektronskom topu žarna nit grije katodu koja emituje snop
elektrona. Kontrolna mrežica određuje količinu elektrona koja će
proći dalje i na taj način određuje osvijetljenost. Sistem za
fokusiranje elektronskog snopa dinamički fokusira snop zavisno od
položaja na ekranu. Horizontalni i vertikalni otklonski sistem
otklanjaju snop. Visoko pozitivna metalizacija (anoda) napona od
15.000-20.000 V ubrzava elektrone koji padaju na sitastu masku ili
aperturnu rešetku. Danas se ti displeji sve manje koriste. Danas su
sve više u upotrebi LCD (Liquid Crystal Display) ili plazma
displeji. Plazma displeji sastoje se od velikog broja malih komora
ispunjenih gasom (najčešće ksenon i neon) koji se pokreću
električnim impulsima i tako proizvode svjetlost. Ove komore
osvjetljavaju određenim intenzitetom crvenu, zelenu i plavu
komponentu fosfornih ćelija koje na taj način na ekranu prikazuju
određenu boju. LCD displeji posjeduju matricu poluvodiča TFT (Thin
Film Transistor) koji napajaju strujom ćelije ispunjene tečnim
kristalima, smještene između dva stakla. Nakon prolaska struje
kristali se rotiraju za određeni ugao i na taj način filtriraju
bijelo svjetlo koje proizvodi lampa smještena iza ekrana, čime se
prikazuju različite boje. LCD tehnologija omogućava postavljanje
gušćeg rasporeda elemenata i tako se mogu dobiti veće rezolucije na
manjoj površini. Plazma displeji imaju bolji kontrast i bolji
prikaz boja nego LCD displeji. Video projektori projektuju video
signal na veće površine (zid, projekciono platno) koristeći izvor
svjetla i sistem leća. Svi video projektori koriste veoma jak izvor
svjetlosti za projektovanje slike. Video projektori se koriste za
prezentacije na konferencijama, u učionicama, te za druge javne
događaje kao što su koncerti, predstave, i sl. Nekad se projektori
koriste u kombinaciji s interaktivnim površinama (tzv. "pametne
table"), koje omogućuju da se tipično izlazni uređaj koristi i kao
ulazni uređaj. Uobičajene rezolucije modernih projektora su SVGA
(800×600 piksela), XGA (1024×768 piksela), 720p (1280×720 piksela),
i 1080p (1920×1080 piksela). Druga osobina projektora je
osvijetljenost, koja se mjeri lumenima. Što je projektovana slika
veća i što je više ambijentalnog svjetla u prostoriji, potreban je
projektor sa više lumena. Projektori od 1500 do 2500 lumena su
podesni za manju sliku i prostorije bez jakog vanjskog
osvjetljenja. Za veliku sliku i prostorije sa velikim prozorima
kroz koje ulazi jako vanjsko svjetlo potrebno je barem 4000 lumena.
Štampači Za štampanje računarske grafike na papir i druge medije
koriste se razne vrste štampača. Danas su najviše u upotrebi
ink-jet i laserski štampači, a rjeđe se koriste matrični i termalni
štampači. Za štampanje velikih formata koriste se ploteri. Ink-jet
štampači koriste tečnu boju koja se mlaznicama nanosi na papir,
tako da kvalitet štampe najviše zavisi od vrste papira. Ink-jet
štampači su jeftini, ali je cijena kertridža sa bojom relativno
visoka, tako da se njihova upotreba isplati za štampanje manjeg
broja primjeraka. Najbolji kvalitet štampe za relativno malu cijenu
daju laserski štampači. Laserski zrak se usmjerava na
fotoosjetljivu površinu doboša, koja se naelektriše na područjima
izloženim djelovanju lasera. Naelektrisani dijelovi na sebe
privlače čestice praha (tonera), koji se zatim nanose na papir.
Papir se zatim izlaže djelovanju temperature, kako bi se toner
trajno vezao za papir. Postoje crno-bijeli i kolor laserski
štampači.
-
a) Laserski štampač b) Ink-jet štampač
Slika 6. Princip rada štampača 15.3. Softver za računarsku
grafiku 15.3.1. Percepcija svjetlosti i modeli boja Svjetlost je
elektromagnetno zračenje. Frekvencije vidljivog dijela spektra
svjetlosti se kreću od 400 do 790 THz. Frekvencija, odnosno talasna
dužina određuje boju, a amplituda određuje intenzitet svjetlosti.
Za postojanje boje potrebne su tri komponente: posmatrač, objekat i
svjetlost. Iako se čista bijela svjetlost vidi kao da nema boja,
ona u stvari sadrži sve boje vidljivog spektra. Kad bijela
svjetlost osvijetli neku površinu, ona selektivno blokira neke boje
a reflektuje (odbija) druge. Samo reflektovane boje doprinose
percepciji boja od strane posmatrača. Ljudsko oko detektuje spektar
kombinacijom fotoreceptora (fotoosjetljivih ćelija). Ćelije oblika
štapića bolje detektuju slabu svjetlost, ali registruju samo
intenzitet svjetla. Ćelije oblika konusa (čepića) mogu razlikovati
i boje, ali ne registruju svjetlost slabijeg intenziteta. Oko
sadrži tri tipa konusnih ćelija, koje su osjetljive na svjetlosti
kratke (plava), srednje (zelena) ili duge (crvena) talasne dužine.
Na osnovu toga definisan je model miješanja boja iz tri komponente.
U zavisnosti od toga da li se radi o izvoru svjetlosti ili o
površinama koje reflektuju svjetlost, koriste se dvije vrste modela
boja za digitalizaciju, aditivni i subtraktivni model. Aditivni
model dodaje svjetlost na tamnu podlogu i koristi se kod izvora
svjetla, kao što su displeji ili TV aparati. Subtraktivni model,
koji se koristi kod štampanja, pigmentima blokira bijelu svjetlost.
Primarne aditivne boje su crvena (Red), zelena (Green) i plava
(Blue) i po njima se aditivni model naziva RGB. Primarne
subtraktivne boje su svijetlo plava (Cyan), ljubičasta (Magenta) i
žuta (Yellow) i po njima se taj model naziva CMY. Miješanjem
primarnih komponenti u određenim omjerima dobiju se sve ostale
boje. Na taj način je omogućena digitalizacija, odnosno
predstavljanje različitih boja pomoću brojeva. Osnovne (primarne)
boje se mogu prikazati u Dekartovom koordinatnom sistemu (slika
8.a). Dijagonala od crne do bijele predstavlja liniju sa jednakim
učešćem osnovnih boja: nijanse sive boje. Učešće pojedine
komponente se može izraziti procentualno (od 0 do 100%), a češće se
koristi po jedan bajt za prikaz svake komponente, tako da je u
binarnom obliku 0% prikazano bajtom 00000000, a 100% je prikazano
bajtom 11111111.
-
crna
crvena
zelena
plava
ljubičastabijela
svijetlo plava
žuta
Y: 60°G: 120°
C: 180°
B: 240°
M: 300°
R: 0°
crna: 0
bijela: 1
V
SH
a) RGB model b) HSV model
Slika 8. Modeli boja Pored RGB modela, za prikaz grafike u video
zapisima koriste se i drugi modeli boja: - YUV
PAL TV sistemi: osvijetljenost Y = 0,299·R + 0,587·G + 0,114·B,
informacije o bojama: U = R – Y, V = B – Y
- YIQ NTSC TV sistemi: osvijetljenost Y = 0,299·R + 0,587·G +
0,114·B, informacije o bojama: I = V cos33° - U sin33°, Q = V
sin33° - U cos33°
- HSV Nijansa (Hue), zasićenost (Saturation), vrijednost
(Value); model razvijen da bi se komponente što više približile
načinu na koji ljudsko oko registruje boje.
CMY model boja je zasnovan na apsorpciji svjetlosti. Od bijele
boje se oduzimaju komponente u određenom procentu. Manji procenat
boje predstavlja svjetliju boju. Bijela = 0%C+0%M+0%Y. Crna boja je
teoretski 100%C+100%M+100%Y, ali se u praksi, zbog aditiva u
bojama, umjesto crne dobije tamnosmeđa boja. Zato se dodaje četvrta
boja (crna - blacK), tako da se u štampi koristi CMYK model boja,
odnosno četvorobojna štampa. 15.3.2. Rasterska i vektorska grafika
Rasterska grafika predstavlja grafičke podatke pravougaonom mrežom
piksela. Boja svakog piksela je definisana brojčanim vrijednostima
koje predstavljaju udio komponenti korištenog modela boja. Kvalitet
rasterske slike određuje ukupan broj piksela (rezolucija) kao i
broj mogućih nijansi za svaki pojedinačni piksel (dubina boje).
Veća dubina boje podrazumijeva vjerodostojniji prikaz, ali
zahtijeva i više memorije. Da bi se memorija koristila
racionalnije, koriste se različiti algoritmi za kompresiju
podataka. Rasterska slika se ne može povećati na veću rezoluciju
bez gubitka kvalitete, što nije slučaj sa vektorskom grafikom.
Vektorska grafika umjesto piksela za prikaz slike koristi
geometrijske objekte, kao što su tačke, linije, krivulje,
matematičke funkcije, geometrijski likovi. Na taj način se slika
može neograničeno povećati bez gubitka kvaliteta. Rasterska grafika
se koristi kod obrade fotografija,a vektorska se koristi kod
projektovanja, grafičkog dizajna i izrade tehničke dokumentacije.
Problem kod vektorske grafike je nerealan prikaz objekata iz
prirode, jer se pravilni geometrijski likovi u prirodi rijetko
sreću. Zato su razvijeni hibridni formati grafičkih datoteka, koji
sadrže istovremeno i rastersku i vektorsku grafiku.
-
15.3.3. Komercijalni softverski paketi Iako se osnovne operacije
nad rasterskom grafikom (promjena veličine, promjena dubine boje,
isijecanje dijela slike, rotacija slike) mogu izvršiti pomoću alata
koji su sastavni dio sistemskog softvera (MS Paint), za bilo kakve
ozbiljnije zahvate (podešavanje kontrasta, histograma, imitacije
slikarskih tehnika) koriste se profesionalni softveri, od kojih je
najpoznatiji Adobe Photoshop. Softver za vektorsku grafiku se
koristi za DTP (DeskTop Publishing), grafički dizajn i CAD
(Computer Aided Design), odnosno računarom podržano projektovanje.
Prva komercijalna primjena CAD-a je bila u velikim kompanijama
automobilske i avio industrije, te u elektronici. Tada su samo
velike korporacije mogle da priušte računare koji su mogli da
izvode kompleksne proračune. Osamdesetih godina XX vijeka
pojavljuju se grafički-orijentisani računari (Apple Lisa, IBM PC,
Amiga, Atari,...) koji dramatično obaraju cijene hardvera i
softvera. 1982. godine je objavljena prva verzija softvera Catia za
3D modeliranje. Iste godine je osnovana firma Autodesk, sa idejom
da se kreira CAD program koji će koštati do $1000. Njihov AutoCAD
je bio prvi CAD softver koji je mogao da se pokrene na običnom PC
računaru, za razliku od drugih softvera koji su zahtijevali skupe
grafičke radne stanice. Danas na tržištu postoji veliki broj
komercijalnih CAD sistema, koji se razlikuju po cijeni i po
mogućnostima. Njihova osnovna namjena je 2D i 3D modeliranje, ali
se koriste i za CAM (Computer Aided Manufacturing), računarom
podržanu proizvodnju i CAE (Computer Aided Engineering), računarom
podržano inženjerstvo. CAE obuhvata upotrebu računara u
konstruisanju, računarske analize i simulacije. Najšire
primjenjivana metoda računarske analize u inženjerstvu je metoda
konačnih elemenata (MKE), koja se koristi za proračune naprezanja,
deformacija, prenosa toplote, magnetnog i električnog polja,
protoka fluida, i rješavanje drugih inženjerskih problema. Primjeri
savremenih CAD sistema: Vrhunski CAD/CAM/CAE sistemi
CAD sistemi srednje klase CAD sistemi za manje zahtjevne
korisnike
- Pro/Engineer Wildfire - Siemens NX (I-Deas,
Unigraphics) - Catia - Autodesk Inventor
- Autodesk Mechanical Desktop
- Siemens SolidEdge - SolidWorks
- Autodesk AutoCAD - Alibre Design Expert - FreeCAD -
TurboCAD
Slika 9. Komercijalni CAD softver (Solidworks i NX6)
-
15.3.4. Formati datoteka za pohranjivanje slike Za digitalno
pohranjivanje slika koriste se standardizirani formati grafičkih
datoteka. Veličina datoteke se izražava jedinicama kao što su B
(byte), kB (kilobyte), MB (megabyte) i raste s brojem piksela i s
dubinom boje. Veličina grafičke datoteke se može smanjiti pomoću
algoritama za kompresiju. Digitalni fotoaparati visoke rezolucije
(npr. 12 megapiksela = 12.000.000 piksela) formiraju nekomprimirane
slike (12 megapiksela, 24-bitna dubina boje - datoteka veličine 36
MB). Takve slike se kompresijom mogu smanjiti i na 10% originalne
veličine. Postoje dvije vrste algoritama za kompresiju grafičkih
datoteka: algoritmi za kompresiju bez gubitaka (lossless) i
algoritmi s gubitkom podataka (lossy). Algoritmi za kompresiju bez
gubitaka smanjuju veličinu datoteke bez smanjenja kvaliteta slike,
ali ne garantuju visok stepen kompresije. Koriste se kad je
kvalitet slike važniji od veličine datoteke. Algoritmi za
kompresiju s gubitkom podataka koriste ograničenja ljudskog oka i
odbacuju dio podataka koje oko ne registruje.
a) bez kompresije (490 kB) b) lossless (380 kB) c) lossy (20
kB)
Slika 10. Kompresija slike veličine 480x340 piksela Formati za
pohranjivanje slika se mogu podijeliti u dvije glavne skupine:
rasterski i vektorski. Formati PNG, JPEG i GIF su primjeri
rasterskih formata koji se najčešće koriste za prikaz slika na
internetu. - JPEG (Joint Photographic Experts Group) je dobio ime
po metodi kompresije,
koja je u većini slučajeva kompresija s gubitkom podataka.
Koriste se dvije ekstenzije za opis ovih datoteka: JPEG ili JPG.
Ovaj format podržava 8 bita po boji (crvena, zelena, plava) odnosno
24-bitnu dubinu boje. Stepen kompresije može biti različit, pa je
kod pohranjivanja slike u ovakve datoteke potrebno naći optimalan
odnos između veličine datoteke i kvaliteta slike.
- TIFF (Tagged Image File Format) format koristi 24-bitnu ili
48-bitnu dubinu boje, a ekstenzija za ove datoteke je TIFF ili TIF.
TIFF datoteke koriste kompresiju bez gubitka, i zato su
preovlađujući format za velike slike koje se koriste za štampu
jumbo plakata, visoko kvalitetnih kataloga i sl.
- GIF (Graphics Interchange Format) je ograničen na 8-bitnu
paletu, odnosno 256 boja. To je format pogodan za pohranjivanje
grafike s relativno malo boja kao što su dijagrami, geometrijski
oblici, i logotipi. GIF format podržava animacije i još uvijek se
često koristi za prikaz animacija na web stranicama. Koristi
kompresiju bez gubitka i podržava transparentnost (transparentni
pikseli u slici prikazuju boju podloge ispod slike, tako da izgleda
kao da je dio slike providan).
- PNG (Portable Network Graphics) format podržava 24-bitnu
dubinu boje i koristi kompresiju bez gubitka podataka. Podržava i
transparentnost.
- RAW je sirovi format bez kompresije koji se koristi na
digitalnim fotoaparatima. Nije standardiziran i ne podržavaju ga
svi softveri za obradu slike.
- BMP (Windows bitmap) format grafičkih datoteka unutar
Microsoft Windows operativnog sistema. Obično ne koristi
kompresiju, tako da su datoteke velike.
-
Vektorski formati datoteka mogu sadržavati i vektorske i
rasterske podatke. Primjeri standardnih vektorskih formata su CGM
(Computer Graphics Metafile), SVG (Scalable Vector Graphics), EPS
(Encapsulated PostScript), SWF (Shockwave Flash), PDF (Portable
Document Format), WMF/EMF (Windows Metafile/Enhanced Metafile), kao
i brojni formati koji su nisu univerzalni, nego su vezani za
komercijalni softver, kao što su CDR (CorelDraw), DWG (AutoCAD), AI
(Adobe Illustrator). Za pohranjivanje vektorske 3D grafike koriste
se standardni univerzalni formati kao što su IGES (Initial Graphics
Exchange Specification), STEP (STandardized Exchange of Product),
STL (StereoLiTography), ali i komercijalni formati vezani za
softver. 15.4. 2D modeliranje Pojam 2D modeliranja se odnosi na
vektorsku grafiku. Slika kod vektorske grafike se formira pomoću
geometrijskih objekata, kao što su tačke, linije, krivulje,
poligoni, ili krivulje koje se temelje na matematičkim funkcijama.
Ti se geometrijski objekti nazivaju primitivi. Na primjer, za
modeliranje kruga poluprečnika "r", potrebne su sljedeće
informacije: 1. Informacija o tome da se namjerava nacrtati krug (a
ne neki drugi primitiv) 2. Poluprečnik "r" 3. Koordinate tačke za
centar kruga 4. Stil, debljina i boja linije 5. Stil i boja
unutrašnjosti kruga. Prednosti ovakve definicije u odnosu na
rastersku grafiku su: - Ova minimalna količina informacija
zahtijeva znatno manju veličinu datoteke u
odnosu raster sliku (veličina ne zavisi od dimenzija slike) -
Može se neograničeno zumirati na dio kruga, a da rub kruga ostaje
gladak. Kod
rasterske slike sa zumiranjem dolazi do pojave "nazubljenosti"
ruba, odnosno pikseli postaju vidljivi kao kvadrati.
- Parametri objekata ostaju pohranjeni i mogu se naknadno
mijenjati. To znači da translacija, skaliranje, rotacija, promjena
boje unutrašnjosti i sl. ne degradiraju kvalitetu crteža.
Tipični objekti koji se koriste kao 2D primitivi obuhvaćaju:
duži (linije), višestruke segmente povezanih linija (polyline),
poligone (pravougaonik, trougao, trapez i sl.), krugove i elipse,
Bézierove krivulje i tekst (različiti fontovi, gdje se svako slovo
formira od Bézierovih krivulja). Nekad se i rasterske slike koriste
kao primitivi, a u relaciji s drugim objektima ponašaju se kao
pravougaoni poligoni.
Slika 11. Primjer formiranja slike iz 2D primitiva (AutoCAD)
-
Vektorska grafika omogućava transformacije objekata kao što su
translacija, rotacija, simetrično preslikavanje (mirror),
skaliranje, afine transformacije i kombinovanje primitiva u
složenije objekte. Često se koriste tehnike kao što je odsijecanje
linija do neke granice (trim), koso obaranje ivica (chamfer),
obaranje ivica radijusom (fillet), te matematičke operacije nad
likovima kao što su presjek, unija i razlika. Jednom kreirani
objekti se mogu kopirati, od njih se mogu praviti višestruke
pravilno raspoređene kopije (pattern), te koncentrične kopije
(offset). Za izradu tehničkih crteža se koriste CAD alati za 2D
grafiku, koji mogu biti univerzalni (kao što je AutoCAD) ili
specijalizirani, kod kojih se pored osnovnih geometrijskih
primitiva koriste gotovi alati karakteristični za pojedine grane
tehnike (npr. vijci, navoji, opruge u mašinstvu; oznake
tranzistora, kondenzatora, otpornika u elektrotehnici; vrata,
prozori, šrafure betona ili cigle u građevinarstvu itd.). Ti
softveri obično imaju posebne alate koji olakšavaju crtanje
sastavnica crteža, šrafiranje, kotiranje, označavanje tolerancija.
Posebno korisna osobina CAD softvera je korištenje slojeva
(layers). Crtež se može razdvojiti na posebne slojeve, koji se
ponašaju kao providne folije. Svaki objekat na crtežu pripada
određenom sloju, a svaki sloj ima definisane osobine objekata koji
mu pripadaju, kao što su boja i debljina linije. Promjenom osobina
sloja automatski se mijenja ta osobina svih objekata koji pripadaju
tom sloju. Prebacivanjem objekta iz jednog sloja u drugi automatski
se mijenjaju i osobine tog objekta. Pojedini slojevi se mogu po
potrebi uključiti i isključiti, tako da se lako dobiju različite
varijante crteža. Najčešće se na posebne slojeve razdvoje
simetrale, kote, šrafura, glavne linije, tekst, tako da se brzo
može dobiti crtež bez šrafure ili bez kota. Kako su primitivi
definisani preko koordinata karakterističnih tačaka, na početku je
potrebno definisati koordinatni sistem. Mogu se koristiti pravougli
ili polarni koordinatni sistemi, a za crtanje složenih oblika mogu
se definisati i lokalni, pomoćni koordinatni sistemi. Koordinate se
unose putem tastature, pomoću miša ili korištenjem postojećih
objekata na crtežu, gdje je softver u stanju da prepozna presjek
linija, centar kruga i slične tačke, te da ih koristi kao
referentne objekte za unos novih tačaka. Između objekata se mogu
uspostaviti i relacije, kao što su paralelnost, okomitost,
tangentnost, tako da se naknadnim modifikovanjem objekata te
relacije moraju zadržati. U tom slučaju se pojedini parametri
objekata (npr. radijus kruga) automatski izračunavaju prema
postavljenim relacijama. Zakrivljene linije se u računarskoj
grafici mogu predstaviti pomoću niza tačaka ili pomoću polinoma.
Predstavljanje nizom tačaka je samo približni prikaz, jer se
krivulje aproksimiraju pomoću izlomljenih linija. Manipulacija tako
prikazanim krivuljama je teška, jer se sve tačke moraju premještati
pojedinačno. Umjesto toga, krivulja se modelira kao set polinoma: x
= x(t), y = y(t), z = z(t), gdje je t – parametar polinoma. Mogu se
koristiti linearni: f(t)=at+b, kvadratni: f(t)=at2+bt+c ili kubni
polinom: f(t)=at3+b t2+ct+d. Krivulje se obično konstruišu
povezivanjem krajeva više manjih segmenata. Kontinuitet je pojam
kojim se opisuju pravila o povezivanju pojedinih segmenata. C0 je
kontinuitet linije (segmenti imaju samo zajedničku tačku), C1 je
tangentni kontinuitet (segmenti imaju i zajednički smjer tangente;
prvi izvod polinoma daje jednačinu tangente), a C2 je kontinuitet
drugog izvoda (i drugi izvod u tački spajanja je isti za oba
segmenta, tako da tangente imaju isti intenzitet i smjer). Da bi se
osigurao C2 kontinuitet, krivulje moraju biti najmanje trećeg reda
i zbog toga se za modeliranje koriste kubni polinomi.
-
Slika 12. Tri vrste kontinuiteta segmenata parametarskih
linija
Krivulju je teško konceptualizirati kao polinom
x(t)=axt3+bxt2+cxt+dx (crtači ne razmišljaju o koeficijentima ili
kubnim jednačinama). Umjesto toga, krivulja se definiše kao
kombinacija 4 precizno definisana kubna polinoma. Svaki tip
krivulje definiše različite kubne polinome. Za prikaz krivulja
koriste se različite vrste parametarskih krivulja: Hermitove (dvije
krajnje tačke i dva vektora tangenti u krajevima), Bezier (dvije
krajnje tačke i dvije druge tačke koje definišu vektore tangenti u
krajevima) i B-splajnovi (četiri kontrolne tačke, C1 i C2
kontinuitet u tačkama dodira).
Slika 13. Hermitova parametarska krivulja
Hermitova 2D parametarska krivulja je prikazana na slici 13.
Definisana je sa 8 parametara: a, b, c, d, e, f, g, h. U nastavku
je dato objašnjenje kako se intuitivne krajnje tačke pretvaraju u
ovih 8 (relativno) neintuitivnih parametara. Poznato je: (x, y)
položaj za t = 0, p1 (x, y) položaj za t = 1, p2 (x, y) izvod za t
= 0, dp/dt (x, y) izvod za t = 1, dp/dt Uvrštavanjem poznatih
vrijednosti dobije se sistem od 4 jednačine: fx(0) = d = p1x fy(0)
= h = p1y fx(1) = a+b+c+d = p2x fy(1) = e+f+g+h = p2y Iz te 4
jednačine nije moguće odrediti svih 8 nepoznatih, pa se koriste
izvodi: fx'(0) = c = dp1x/dt fy'(0) = g = dp1y/dt fx'(1) = 3a+2b+c
= dp2x/dt fy'(1) = 3e+2f+g = dp2y/dt Rezultujuća jednačina
Hermitovog splajna u matričnom obliku glasi:
-
Bezier krivulje su slične Hermitovim, ali imaju intuitivniju
definiciju izvoda krajnjih tačaka. Izvodi, odnosno tangente u
krajnjim tačkama su definisane preko čvorova, odnosno tačaka koje
definišu vektore tangenti (slika 14).
"oslonac"
"tetiva"
"oslonac"
"tetiva"
Slika 14. Bezier krivulja
Slika 15. B-splajn
B-splajn (slika 15) predstavlja spoj dvije Bezier krivulje sa C1
i C2 kontinuitetom u tačkama dodira. B-splajn ima četiri kontrolne
tačke (P0, P1, P2, P3). Prvi segment ima kontrolne tačke v0, v1,
v2, v3, a kontrolne tačke drugog segmenta su w0, w1, w2, w3. Na
slici 20 se vidi kako se iz kontrolnih tačaka Bezier segmenata
odrede kontrolne tačke B-splajna. 15.5. 3D modeliranje 3D
modeliranje je proces razvoja matematičke reprezentacije prostornih
površina ili objekata pomoću softvera. Rezultat 3D modeliranja se
naziva 3D model, a može se prikazati kao dvodimenzionalna slika,
pomoću procesa koji se naziva renderisanje (rendering) ili se
koristi za računarske simulacije fizičkih pojava. Ti se modeli mogu
i materijalizirati, pomoću 3D printera ili pomoću tehnika brze
izrade prototipova (rapid prototyping). 3D modeli predstavljaju 3D
objekte koristeći skup tačaka u 3D prostoru, koje su povezane
raznim geometrijskim entitetima poput trouglova, linija, zaobljenih
površina, itd. 3D modeli se mogu kreirati ručno, algoritamski
(proceduralno modeliranje) ili 3D skeniranjem. 3D modeli danas
imaju široku upotrebu. Detaljni 3D modeli organa se koriste u
medicinskoj dijagnostici (MRI). Filmska industrija koristi 3D
modele za specijalne efekte. Industrija video igara koristi 3D
modele za kreiranje realističnih likova i virtualnih ambijenata. U
nauci se 3D modeli koriste za vizualizaciju i simulacije. U
arhitekturi se 3D modeli koriste za projektovanje, vizualizaciju i
planiranje građevinskih objekata. Inženjerska upotreba 3D modela
obuhvata izradu tehničke dokumentacije (iz 3D modela se lako dobiju
detalji i presjeci), inženjerske analize,
-
proračune, analizu i sintezu sklopova, projektovanje,
generisanje CNC koda za proizvodnju. Za prikaz 3D modela koriste se
žičani (wireframe), površinski (surface) i prostorni (solid)
modeli. Žičani modeli se koriste samo za vizualizaciju, nemaju ni
površinu ni zapreminu. Površinski modeli su predstavljeni samo
površinom objekta, a nemaju zapreminu. Zasnovani su na pretpostavci
da je debljina stjenke koja ih predstavlja beskonačno tanka. Ove
modele je lakše kreirati od prostornih. Gotovo svi vizualni modeli
koji se koriste u računarskim igrama i u filmskim trikovima su
površinski modeli. Prostorni modeli su definirani zapreminom
objekta koji predstavljaju. Ovi modeli su najrealniji, ali i
najteži za modeliranje. Uglavnom se koriste za medicinske i
inženjerske simulacije i za CAD/CAM/CAE.
a) žičani model b) površinski model c) prostorni model
Slika 16. Osnovne vrste prikaza 3D modela 3D modeliranje se može
izvršiti na više načina: - Modeliranje primitivima (CSG -
Constructive Solid Geometry): Osnovni postupak
modeliranja, gdje se koriste pravilna geometrijska tijela
(kocka, kvadar, kupa, cilindar, torus, lopta) i operacije nad
skupovima (unija, presjek i razlika) za formiranje složenih oblika.
Ova vrsta modeliranja je primjenjiva samo za tehničke aplikacije,
gdje postoje pravilni geometrijski oblici. Pored osnovnih
geometrijskih tijela, često se za definisanje 3D oblika koriste i
transformacije 2D kontura. 2D kontura vrši translaciju (extrude)
ili rotaciju (revolve) u prostoru, i trag koji pri tome ostavlja
formira 3D površinu. Tako nastala kontura kreira novi oblik, dodaje
se na postojeći ili se oduzima od postojećeg 3D modela.
Slika 17. Modeliranje primitivima: operacije unije (), presjeka
() i razlike ()
-
Slika 18. Formiranje 3D oblika iz 2D kontura (extrude, revolve,
sweep)
- Modeliranje poligonima: Tačke u 3D prostoru se povezuju pravim
linijama, kako
bi formirale mrežu poligona (polygonal mesh). Svaki poligon je
definisan preko koordinata tačaka i vektorom normale koji određuje
lice i naličje poligona. Obično se na tako nastale poligone
aplicira neka 2D tekstura, kako bi se dobio što realističniji
prikaz. Ovaj način modeliranja je brz, ali se koristi samo za
površinske modele. Osnovni nedostatak ovog načina modeliranja je
potreba za velikim brojem poligona za formiranje zakrivljenih
površina.
Slika 19. Apliciranje teksture na mrežu poligona
- NURBS modeliranje: Koristi se za glatke, zakrivljene površine
bez oštrih rubova.
NURBS (Non-Uniform Rational B-Spline) površine se formiraju
pomoću kubnih polinoma. Ti polinomi su predstavljeni parametarski,
pomoću kontrolnih tačaka. Složene zakrivljene površine se
modeliraju pomoću mreže NURBS površina.
Slika 20. NURBS 3D površina i 3D model napravljen od mreže NURBS
površina
-
Literatura 1. E. Angel: "Interactive Computer Graphics: A
Top-down Approach Using
OpenGL", 5th Edition, Addison-Wesley, ISBN-10: 0321535863, 2009
2. Dragan Cvetković: Računarska grafika ISBN 86-7991-287-5, 2006 3.
James D. Foley: Computer graphics: principles and practice,
Addison-Wesley,
ISBN 0201848406, 1995 4. Mark de Berg, Marc van Kreveld, Mark
Overmars, and Otfried Schwarzkopf:
Computational Geometry: Algorithms and Applications, Springer,
ISBN 3540779736, 2008