Uvod

 

Ovaj tutorial nastao je kao projekt za predmet Računalna Grafika na Fakultetu elektrotehnike i računarstva u Zagrebu kod Doc. prof. sc. Željke Mihajlović, na moju inicijativu i zbog mog učestalog izostajanja laboratorijskih vježbi.

 

Zanimanje ljudi za računalnu grafiku zadnjih par godina uvelike raste, osobito zato što se ona sve više i više približava onoj profesionalnoj grani kreativnog zanimanja čiji nositelji su do sada bili uglavnom televizija, te razne vrste audiovizualnih umjetnosti koje nisu uključivale računala. Iako je razvoj ove grane znanosti, ili ako želite nazovite je umjetnosti (ona je oboje), započeo još 1950-ih godina  tek je sada postigao kvalitetu i mogućnosti da za ozbiljno preuzme na sebe čak i veće dijelove audiovizuelne industrije. Prije je bavljenje računalnom grafikom predstavljalo crtanje nekakvih crtica i točkica na monokromatskom zelenom monitoru Schneider računala koje učitava programe sa audio kazeta, no danas je moguće kreirati i matematički u stvarnom vremenu prikazati složene modele koji se mogu činiti stvarni kao u realnom svijetu. Ovo se najviše uočava u prelasku jednog manjeg dijela filmske industije na 3D animacije tijekom cijelih filmova, tj. snimanju filmova bez ijednog živog glumca koji glumi u njima. Primjer su Shreck, Final Fantasy itd. a sve manje je zastupljena stara i sve skuplja Walt-Disney-evska crtana grafika. Računalne igre najbolje prikazuju vrh tehnologije rečunalne grafike u realnom vremenu. Računalom obrađene slike uz stalno snižavanje cijene, i stalno povečanje brzine obrade podataka, polako, ali sigurno preuzimaju tržište. Kako će se računalna grafika razvijati dalje, je naravno nepoznato, no započeo je jedan brzi rast te vrste industije, i moje mišljenje je da nebude tako brzo stao. Virtuelna realnost, izložbe 4D radova, fraktali i povečanje brzine protoka interneta pogodovat će razvoju i grananju ove znanosti, a granice joj je zaista nemoguće zamisliti.

Zbog rastuće popularnosti, i sve većeg broja zahtjeva za računalnom grafikom odlučio sam napisati ovaj tutorial, i tako pružiti ljudima samo uvod u DirectX 9.0 čije mogućnosti trenutno zadovoljavaju, pa i prelaze zahtjeve za 3D grafiku, prvenstveno u računalnim igrama. Također je potrebno privući zanimanje ljudi za ovo područje znanosti, i educirati ih unapred, te im pružiti priliku da rade na njoj. Proizvodnja računalnih igrara nije lagan posao, i zahtjeva inteligenciju, ogromno znanje i predanost, no orjentirana je prema svijetu, i pruža neku vrstu sigurnosti u nezaposlenošću prožetoj Lijepoj Našoj.

Da li se usredotočiti na OpenGL ili na DirectX ostaje na vama.

P.S. Nisam zadrti Mircrosoftovac.

 

Tutorial je rađen po lekcijama, sa što manjim koracima, i potrudio sam se da kod bude što razumljiviji i sa što manje nepotrebnih komplikacija. Način pisanja sa pojedinim klasama u različitim datotekama u mojoj praksi pokazao se vrlo koristan, pa predlažem da ga i vi koristite. Dakle, sva sučelja klasa pisana su u header datotekama, a opisi metoda u cpp datotekama. Imena klasa počinju sa velikim slovom C, i velikim početnim slovom svake riječi u nazivu. Klasa imena "neka klasa" zvati će se CNekaKlasa, i interface za tu klasu nalazit će se u NekaKlasa.h datoteci, a opis metoda u NekaKlasa.cpp datoteci. Kod naziva datoteka nisu bitna velika i mala slova, pošto ih operacijski sustav ne razlikuje(MS Windows, sve verzije). U kasnijim tutorialima postoje i klase koje se nasljeđuju, i one su također opisane u posebnim datotekama. Pokušajte razviti vlastitu konvenciju pisanja koda koje ćete se držati jer će vam to uvelike olakšati pisanje koda koji se malo "razvuče". DirectX sam po sebi nije ništa više od skupa metoda, interfacea i objekata, no mnogi njegovi djelovi koriste funkcionalnosti WinSDK, COM-a, STL-a i drugih ekstenzija c++-a. Ako radite u kojem drugom jeziku sa DirectX-om, ja vam ne mogu pomoći, osim da vam kažem da se ipak primite c++-a, jer trenutno on ipak drži glavnu riječ, a što budućnost donosi, o tome treba razmišljati u budućnosti, a ne sada. Ako mrzite učiti nove stvari, okanite se DirectX-a, nađite curu, neki lagani posao, započnite život i umrite u starim godinama svoga života. Ako pak mislite da treba učiti dok ste živi, volite fast-food, ne funkcionirate dobro ako niste primili dnevnu dozu zračenja monitora, te pijete barem pola litre turske kave dnevno, onda je ovo zanimanje za vas.

 

Pokušat ću istaknuti problematične stvari, barem one koje su mene mučile, no vjerojatno neću uspjeti, zato ako imate pitanja, prvo pogledajte u nazivnoj dokumentaciji, nađite nekoga tko zna ili u krajnjem slučaju pošaljite mail na miroslav80@yahoo.com ili ostavite poruku na http://fly.cc.fer.hr/~mirol. Ako vam itko ikada kaže da zna DirectX, ne vjerujte mu, laže, nitko nezna DirectX, ali vjerojatno nas ima više koji ćemo  ga pokušati nekako i nekada naučiti.

 

Cijeli tutorial možete skinuti na http://free-sk.hinet.hr/mll/D3DXTutorial.zip

 

Kompajlirani primjeri su na adresi http://geocities.com/miroslav80/exe.zip

 


Home  Next