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