Osnove inženjerstva

Transcription

Osnove inženjerstva
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
Slika 4. Senzor digitalne kamere
plava
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 crnobijeli 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.
V
G: 120°
svijetlo plava
plava
C: 180°
Y: 60°
bijela: 1
R: 0°
B: 240°
M: 300°
bijela
ljubičasta
zelena
crna
H
crvena
žuta
a) RGB model
S
crna: 0
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 CAD sistemi srednje klase
sistemi
- Pro/Engineer Wildfire
- Autodesk Mechanical
Desktop
- Siemens NX (I-Deas,
Unigraphics)
- Siemens SolidEdge
- Catia
- SolidWorks
- Autodesk Inventor
CAD sistemi za manje
zahtjevne korisnike
- 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"
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