Page 1
USTANOVA: Umjetnička akademija u Splitu ODSJEK: Dizajn vizualnih komunikacija KOLEGIJ: Osnove računalne grafike GODINA / SEMESTAR: I / II
PROGRAMIRANJE RAČUNALNE GRAFIKE
MENTOR: STUDENT: prof. Ivica Mitrović, mr. sc. Luka Vidoš
Split, 31. svibnja 2006.
Page 2
Luka Vidoš _____________________________________________________ Programiranje računalne grafike
Sadržaj 1. Uvod ................................................................................................................................. 3
2. Kratka povijest računalne grafike ................................................................................ 5
3. Grafičko sučelje .............................................................................................................. 8
4. Primjena danas ............................................................................................................... 9
5. Digitalna umjetnost ........................................................................................................ 10
6. Zaključak ........................................................................................................................ 11
7. Literatura ........................................................................................................................ 12
2
Page 3
Luka Vidoš _____________________________________________________ Programiranje računalne grafike
1. Uvod Kada spomenemo riječ grafika (graphics), tada
nas to asocira na vizualnu prezentaciju na nekoj
površini, kao što su zid, platno, papir, kamen ili
drvo koje informira, ilustrira ili zabavlja. Primjeri
toga su fotografije, crteži, grafikoni, geometrijski
dizajn, mape i sl. Grafika obično kombinira tekst,
ilustraciju i boju. Bakropis, stara grafička tehnika
Riječ računalo (computer) označava stroj koji je projektiran za manipulaciju podacima preko
niza instrukcija koje nazivamo programom.
Dakle, računalna grafika (computer graphics ili CG)
obuhvaća stvaranje, pohranu i uporabu objekata putem
računala. Ti objekti računalne grafike potječu iz
različitih područja: prirode, znanosti, inženjerstva,
apstraktnih koncepata, itd. Računalna grafika je ujedno i
polje vizualne umjetnosti gdje korisnik putem računala
generira slike i vizualno ih mijenja te ih kombinira sa
informacijama i materijalima iz stvarnog svijeta.
Računalna grafika se danas koristi u raznim područjima,
od administracije, edukacije, umjetnosti pa sve do
zabave. Neki primjeri primjene računalne grafike
uključuju:
Izmjena postojeće slike na računalu
- korisnička sučelja - većina aplikacija na osobnim računalima i na radnim stanicama
imaju grafički sustav prozora putem kojeg komuniciraju s korisnicima. Primjeri takvih
aplikacija uključuju obradu teksta, stolno izdavaštvo, proračunske tablice...
- interaktivno crtanje - u poslovnim, znanstvenim i tehnološkim primjenama računalna
grafika koristi se za prikazivanje funkcija, dijagrama, histograma i sličnih grafičkih
prikaza sa svrhom jasnijeg sagledavanja složenih pojava i olakšanja procesa
odlučivanja
3
Page 4
Luka Vidoš _____________________________________________________ Programiranje računalne grafike
- uredska automatizacija i elektroničko izdavaštvo - računalna grafika se široko koristi
za izradu elektroničkih i tiskanih dokumenata
- projektiranje pomoću računala - CAD danas se standardno koristi za projektiranje
sustava i komponenata u strojarstvu, elektrotehnici, elektronici, telekomunikacijama,
računalstvu...
- simulacija i animacija - računalna grafika koristi se za znanstvenu i inženjersku
vizualizaciju i zabavu; područja primjene obuhvaćaju prikaze apstraktnih
matematičkih modela vremenski promjenljivih pojava, TV i filmsku tehnologiju...
- umjetnost - računalna grafika se koristi za kreiranje umjetničkih slika
- trgovina - računalna grafika se koristi za vizualnu animaciju i elektroničku trgovinu
- upravljanje procesima - podaci iz senzora dinamički se prikazuju u prikladnom
grafičkom obliku
- geografski informacijski sustavi - računalna grafika koristi se za točan prikaz
geografski raspodijeljenih i rasprostranjenih sustava i mjernih podataka npr. u
telekomunikacijama i telemetriji
- grafičko programiranje - računalna grafika se koristi za automatizaciju procesa
programiranja virtualnih sustava npr. u instrumentaciji
Računalno programiranje (često
nazivano samo programiranje ili
kodiranje) je postupak implementiranja
međusobno povezanih apstraktnih
algoritama i koncepata koristeći određene
programske jezike za izradu konkretnog
računalnog programa. Programiranje u
sebi sadržava elemente znanosti,
matematike i inženjerstva.
Programski jezik QBasic
Jedini jezik koje računalo razumije je jezik stroja, binarni jezik. Programeri su u početku
morali sami pisati strojni jezik, ali danas oni pišu kodove u programskim jezicima koje
računalo putem kompajlera, interpretera ili asemblera prevodi i tek tada pokreće željenu
naredbu.
4
Page 5
Luka Vidoš _____________________________________________________ Programiranje računalne grafike
Programski jezici su stilizirane komunikacijske tehnike koje su namijenjene upravljanju
računalima. Poput prirodnih jezika koje mi ljudi koristimo, programski jezici imaju svoje
sintaktičke i semantičke zakone koji se koriste za definiciju značenja.
5
Page 6
Luka Vidoš _____________________________________________________ Programiranje računalne grafike
2. Kratka povijest računalne grafike Jedan od značajnijih pothvata u povijesti
računalne grafike bi zasigurno bio Whirlwind I,
koji je prvi put demonstriran 1951, a projekt je
ugašen 1983. To je bilo računalo koje je
generiralo i prikazivalo pozicije aviona na
konzoli. Funkcionirao je po principu vektorske
grafike, i njime se upravljalo putem svjetlosnog
pištolja. Geografske reference, identifikacija i slično, kontrolirala se putem raznih prekidača.
Project Whirlwind I.
1954. je John Backus iz IBM-a predložio izradu FORTRAN jezika, čiji je princip rada bio
izgrađen oko ideje da se numeričke formule u programskom jeziku putem kompajlera
pretvore u strojni jezik koji računalo razumije.
Zatim je John McCarthy sa MIT-a 1960. izdao prijedlog u kojem je predstavio novi
programski jezik nazvan Lisp (List Processing). Jezik je sadržavao jednostavne operatore i
funkcionalne oznake, sve izgrađene oko jednostavne centralne strukture za kod i podatke.
1964. je Thomas E. Kurtz izumio BASIC, jezik koji se koristio u početku na Dartmouth
College. Jezik se jako brzo rasprostranio i imao velik utjecaj na industriju, budući da je bio
besplatan i svima dostupan.
U to vrijeme je digitalna umjetnost postala jako
popularna, došlo je "digitalno doba", te osim
matematičara i računalnih inženjera, programe počinju
koristiti i umjetnici i dizajneri. Ponekad su razlike
između njih bile jako male. Kao primjer možemo uzeti
Bena Laposkya, matematičara i umjetnika iz Iowe.
1950. je kreirao prve grafičke slike koje su bile kreirane
računalnim putem. On je snimao na film kretanje
osciloskopa i te je radove nazvao "oscillonima" i
"elektroničkim apstrakcijama". Slično je radio i Herbert
Franke iz Njemačke.
Ben Laposkyevi "oscilloni"
6
Page 7
Luka Vidoš _____________________________________________________ Programiranje računalne grafike
Williamu Fetteru, grafičkom dizajneru iz Boeing
Aircraft Co., 1960. se pripisuje da je osmislio frazu
"računalna grafika" da opiše što je radio u Boeingu u to
vrijeme.
John Whitney je bio jedan od najutjecajnijih računalnih
animatora svoga vremena, nakon osobnih
eksperimenata je radio na brojnim filmovima, među
kojima je Hitchcockov Vertigo 1961., za kojega je radio
otvaranje. Sa IBM-ovim programerima je radio na
izradi jezika za proširenje računala da kontrolira
grafičke uređaje, što je rezultiralo jednom od njegovih
najpoznatijih animacija, Permutations, 1968. A kasnije, sa svojim sinom, je kreirao
Arabesque, svoje drugo najpoznatije djelo.
John Whitney
Ivan Sutherland radi u Sketchpadu
Razvojem TX-2 digitalnog računala na MIT-u,
Ivan Sutherland, kada je birao svoj diplomski
rad, ciljao na izradu programa kojim bi se
moglo crtati na računalu. Koristio je svjetlosnu
olovku i ekran, te je iz toga rođen Sketchpad,
što je označilo revoluciju u području računalne
grafike, a time i začetak interaktivne računalne
grafike.
Također na MIT-u, 1961. je mladi programer Steve
Russel, vodio tim koji je kreirao prvu računalnu igricu -
Spacewar - za koju je bilo potrebno oko 200 sati na PDP-
1 računalu. To je bilo prvo računalo koje je dozvoljavalo
da više korisnika dijeli računalo istovremeno.
Prva multiplayer igrica - Spacewar
Kroz kraće vrijeme, i polaganim ulaskom u osamdesete,
računalna grafika sve više nailazi na svoju primjenu.
Počinju se otvarati komercijalne kompanije koje rade
računalnu grafiku za oglašavanje i televiziju.
7
Page 8
Luka Vidoš _____________________________________________________ Programiranje računalne grafike
Tvrtka MAGI je osnovana 1966.
je razrađivala softver koji je
trebao procijeniti raspone
nuklearne radijacije. To je bila
prva firma koja je razvila ray-
tracing algoritam za izradu slika,
koja je bila bazirana na konceptu
odbijanja svjetlosti od izvora do
objekta pa na svoju okolinu.
Radili su na filmu Susreti treće
vrste i TRON-u, te još nekim
manje poznatim.
TRON - film s elementima popularne igre
1972. su Gary Demos, John Whitney i Ivan Sutherland osnovali tvrtku Picture/Design Group,
te zajedno radili na brojnim projektima, uključujući Futureworld (za koji kažu da je prvi film
koji je zapravo imao značajne elemente računalne grafike), TRON-u, Star Warsima, Empire
Strikes Back i sl. Kasnije su se raspali, osnovali tvrtku DemoGraFX koje je kasnije kupio
Dolby Laboratories i sada rade na usavršavanju digitalne TV, HDTV standardima i
digitalnom compositingu.
Gary Demos na dodjeli Oscara
Prva tvrtka koja se dobro ustoličila u filmskoj industriji
bila je Digital Effects (osnovana 1978.), koju je osnovao
Judson Rosebush. Zajedno sa još nekim tvrtkama (Abel,
MAGI i III) su doprinijeli nastanku TRON-a, jednog od
prvih filmova koji je bio gotovo u cijelosti napravljen na
računalu.
Digital Productions su osnovali John Whitney i Gary
Demos 1982. nakon što su otišli iz prethodne tvrtke. Kroz
godine, ovaj dvojac je pobrao brojne nagrade, uključujući
prvu nagradu za Scientific and Engineering Award od
Academy for Motion Pictures Arts and Sciences.
8
Page 9
Luka Vidoš _____________________________________________________ Programiranje računalne grafike
Jedna od značajnijih tvrtki, koja je u to vrijeme nastala, je Autodesk. Osnovana je 1982. te su
svoj AutoCAD program nadograđivali sa paketima za animaciju AutoFlix. Danas oni
posjeduju velik dio tržišta, uz svoje CAD programe, posjeduju i 3D Studio Max, koji je danas
jedan od jačih alata za rad sa 3D-om.
Nakon toga, ubrzano se sve dešava i kao što danas vidimo u samo 10ak godina, napredak je
bio ogroman. Industrija se toliko brzo razvijala, toliko je novih inovacija da ih je teško
nabrojati u malo vremena.
9
Page 10
Luka Vidoš _____________________________________________________ Programiranje računalne grafike
3. Grafičko sučelje Danas gotovo da ne bi mogli živjeti bez grafičkog
sučelja (osim možda najokorjelijih Linuxaša), jer
smo se toliko naviknuli da do svih elemenata
lagano dođemo. Danas više niti ne razmišljamo o
tome što radimo i kako radimo, jednostavno se
krećemo kroz sustav. Ali, grafičko sučelje
operativnog sustava je puno više od pomicanja
miša i klikanja na određene dijelove. Svaki gumb,
svaka ikona, pa čak i svaki potez miša je detaljno
isprogramiran.
Na principu miša se može vidjeti kako zapravo
animacija funkcionira, jer, on je objekt koji se
kreće na ekranu, to je, u programerskom jeziku, "sprite". To je objekt s točnom lokacijom
koja je s njime povezana. Ta se lokacija
postupno mijenja, frame po frame, čime se
daje dojam da se objekt pomiče.
Prvo grafičko sučelje
Windows XP grafičko sučelje danas
Danas, moderna računalna animacija koristi
različite tehnike za izvođenje animacija.
Uglavnom se koriste sofisticirani
matematički algoritmi da bi manipulirali
kompleksnim trodimenzionalnim
poligonima, dodavali teksture, osvjetljenje i
brojne druge efekte.
10
Page 11
Luka Vidoš _____________________________________________________ Programiranje računalne grafike
4. Primjena danas Zahvaljujući bogatim proračunima velikih znanstvenih centara, te pokojim poticajima iz
vojne industrije, računalna grafika je brzo napredovala. Od prvih računala koji su jedva
računali osnovne naredbe, do svjetlosnih olovaka i navigacije za avione, simulatore i sl. Sve
informacije koje računalo izračuna mogu se vizualizirati, grafovi, putanje, mape, i što sve ne.
U inženjerske poslove su se uvukli programi poput Romulusa, AutoCAD-a, EasyCAD-a,
Airbusa i brojnih drugih koji su računalo koristili da bi olakšali i ubrzali izradu projekta.
Golemi neboderi, kompleksni strojevi, precizna mehanika, i razni drugi inženjerski pothvati
su bili omogućeni. Računalom se mogu testirati otpornosti, ergonomija, izgled, materijali.
Osim za inženjerske stvari, računalna grafika je zarazila
svijet i igrama. Počelo je sa Spacewarom, pa Pongom, i
brojnim Atarijevim igricama kasnije, te, napretkom
računala, i današnjim modernim igricama koje se
odvijaju u tri dimenzije i realnom vremenu, kao što su
World of Warcraft i sl. Na tisuće i tisuće poligona, s
ogromnim tehničkim zahtjevima, ali to je aspekt koji
računalnu industriju danas pokreće. Prije su za vojne
potrebe trebale goleme prostorije i što brža računala koja
su satima ili čak danima radila svoj zadatak, a danas taj
napredak potiče industrija igara.
Osim industrije igara, filmska industrija ima jedan veliki
dio tog kolača. Danas gotovo da nema filma u kojem se
ne nalaze efekti koje su generirali neki računalni alati.
Pixarov crtić koji je osvojio brojne nagrade
11
Page 12
Luka Vidoš _____________________________________________________ Programiranje računalne grafike
5. Digitalna umjetnost U početku, jedini ljudi koji su se bavili digitalnom umjetnošću su
bili znanstvenici, što dokazuju prve dvije izložbe digitalne
umjetnosti.
Charles Williams je 1977. digitalizirao ručno nacrtan cvijet i radio
razne teksture i patterne od njega. Sam je rekao: "Vrijednost
računala za grafičare je u tome što mu omogućava da koristi
računalno generirane kompleksne varijacije crteža koje bi bile
gotovo nemoguće za napraviti ručno."
Primjeri digitalne umjetnosti (Charles Williams,
Vera Molnar, Mike Newman, Larry Cuba)
Mike Newman je, kada je govorio o digitalnoj umjetnost,
rekao: "Kao kada koristite kameru, oni prvi osjećaji
nevjerice i neshvatljivosti će brzo nestati i goleme će se
mogućnosti ostvariti i postati stvarnost."
No, jedna od značajnijih umjetnica koja se bavila
digitalnom umjetnošću, bila je Vera Molnar. Ona je
osnovala GRAV (Groupe de recherche d'art visuel), a
sama je otkrila da računalom može raditi radove koji su
korak dalje od one "ljudske ideje". Početni radovi su
uključivali transformacije geometrijskih objekata, njihovo
deformiranje, rezanje i sl.
Od drugih, tada važnijih umjetnika koji su imali istu
zanimaciju, bili su Manfred Mohr, Larry Cuba, Lillian
Schwartz, David Em, Yoichiro Kawaguchi, Ed
Emshwiller, Herbert Franke, Frieder Nake, George Nees,
Harold Cohen, Duane Palyka, Darcy Gerbarg, Colette
and Charles Bangert, svatko je doprinio puno u evoluciji
računalne umjetnosti.
12
Page 13
Luka Vidoš _____________________________________________________ Programiranje računalne grafike
6. Zaključak Računalna grafika se, osim umjetnosti, počela uvlačiti u sve pore masovnih medija. Danas
gotovo da ne možemo zamisliti bilo koji materijal koji se u medijima koristi a da nije prošla
kroz računalo. Ovdje se nisam želio toliko baviti samim programiranjem, već ukazati na to što
je zapravo sve isprogramirano. Neke stvari shvaćamo toliko banalno, da ni ne razmišljamo što
sve stoji iza toga. Programski
jezici kojih je bezbroj nema toliko
smisla nabrajati, oni služe svojoj
svrsi, ali ono što je proizašlo iz
njih, alati koje svakodnevno
koristimo, počevši od grafičkog
sučelja, alata za obradu slika i
videa i sl. Svi oni su
isprogramirani, a ukoliko imaju grafičko sučelje, to automatski za sobom povlači i računalnu
grafiku. Umjetnost i programiranje idu skupa, nerijetko. U današnje doba, najočitije primjere
vidimo na Internetu. Flash animacije su nerijetko programirane, s računalnom preciznošću i
umjetničkom rukom. Danas više nije toliko kompleksno napraviti jedan rad, koji sadržava
spoj nečega računalnoga i nečega kreativnog.
QBasic izvorni kod
Činjenica je da danas granica između
računalnog i stvarnog postaje jako
tanka. Računalom se mogu
proizvesti stvari koje postaju veoma
realne da počinju kreirati realnost.
Zapravo, medij je ušao u stvarnost.
Sve ovo ne bi bilo moguće da
umjetnici u ono vrijeme nisu htjeli
pronaći nešto drugo, odnosno, da
nisu ulazili u sam medij. Medij je postao platno po kojemu su umjetnici crtali, ali su tada to
isto platno počeli rezati, uništavati, postavljati u druge prostore, druge dimenzije i sl.
Fotografija programa (efekt proizveo sam aparat)
Nove dimenzije koje su nam otvorene, još uvijek se istražuju. Kreativnost ili matematika?
Teško je odrediti. Uostalom... Sanjaju li androidi doista električne ovce?
13
Page 14
Luka Vidoš _____________________________________________________ Programiranje računalne grafike
7. Literatura • http://en.wikipedia.org/wiki/Category:Computer_graphics
• http://cgw.pennnet.com/Articles/Article_Display.cfm?Section=Archives&Subsection=
Display&ARTICLE_ID=140685&KEYWORD=retrospective
• http://accad.osu.edu/~waynec/history/lessons.html
• http://www.oreilly.com/news/graphics/prog_lang_poster.pdf
14