1 / 33

Razvoj igrica

Razvoj igrica. Danijel Pobi, dipl. Ing. Računarstva. Računalna grafika. Vid i prikaz slike na ekranu Vid, FPS, hardware, CPU, GPU, GPGPU Osnovni elementi Pixel Tekstura Voxel Koordinatni sustav Vertex Poligon Elementi scene Koordinatni sustav Gledište Svijetla

Télécharger la présentation

Razvoj igrica

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Razvoj igrica Danijel Pobi, dipl. Ing. Računarstva

  2. Računalna grafika • Vid i prikaz slike na ekranu • Vid, FPS, hardware, CPU, GPU, GPGPU • Osnovni elementi • Pixel • Tekstura • Voxel • Koordinatni sustav • Vertex • Poligon • Elementi scene • Koordinatni sustav • Gledište • Svijetla • Statična i dinamička geometrija • Kompozicija scene

  3. VidLjudsko oko Pretvara svjetlost u živćane impulse Percepcija slike, tj. slika koju vidimo je stvar mozga i živćanog sustava Statični kontrast 100 : 1 Dinamički kontrast 1 000 000 : 1 Boja vidljiva od 400 do 700 nm

  4. VidKonstrast Kontrast je razlika u osvjetljenosti i/ili boji koju možemo razlikovati u vidnom polju Ljudsko oko je osjetljivije na promjene konstrasta nego promjene osvjetljenja Statički kontrast Dinamički kontrast (Dynamic range) je maksimalna vrijednost kontrasta

  5. VidOsvjetljenost Atribut vizualne percepcije u kojem izvor emitira ili reflektira svjetlost Ovisi o kontekstu i individualnoj percepciji Koordinata u HSL i HSV kolor sustavu (cilindrični koordinatni sustavi reprezentativni pomoću točaka RGB kolor modela) HSL - hue, saturation and lite HSV (HSB) – hue, saturation, value (brightness)

  6. VidRBG RGB – red, green, blue aditivan model ili model zbrajanja, jer zbrajanjem vrijednosti osnovnih boja dobivamo ostale model nastao za elektroničke uređaje zbog lakoće rada Prošireni model: RBGA (red, blue, green, alpha) Još jedan korišten model boja je CMYK (cyan, magenta, yellow, K crna) je subrtaktivan model jer se ostale boje dobivaju oduzimanjem od osnovnih

  7. VidVideo • Kvaliteta slike ovisi o kalibraciji, tj. namještanju kontrasta, osvjetljenja i boja • Kvaliteta videa ovisi o kvaliteti slike i o brzini izmjene slika • FPS (frames per second) • PAL (25), NTSC (30), SECAM analogni prijenos, danas se koristi PAL 60 • CRT, LCD, Plazma, LED • Osvježavanje (danas min standard 60Hz) • Odaziv slike (15, 12, 8, 5, 2 ms)

  8. Procesor CPU = central processing unit AMD, Intel, ARM, IBM,... Karakteristike koje pratimo: Arhitektura Brzina Broj jezgri

  9. Grafička kartica Generira slike koje se šalju na izlaz za prikaz na izlaznom uređaju (monitor, projektor, itd) AMD, Nvidia, intel?, PoverVR, Qualcom,... Sastoji se od: GPU (Stream processor, CUDA, EU) VRAM (DDR, DDR2, DDR3, GDDR5) Karakteristike koje pratimo: Arhitektura (DX, OpenGL,SM,...) Brzina GPU i RAM Output ... Akustika i hlađenje

  10. Grafički sustavgrafički cjevovod Geometrijski sustav radi operacije na vrhovima Prije rađeno na CPU, danas Vertex Shader na GPU Rasterski sustav računa sve potrebne boje, teksture, dubinu, efekte, AA, AF, itd Pixel Shader danas obavlja ovu fazu Prikazni sustav prijenosi sliku iz prikazne memorije na izlaznu jedinicu Prije pojave programibilnih Shader-a i općenito GPU programa dok se sve izvršavalo na CPU-u, ovo je jedino bilo važno i mjerilo se kao Fill Rate

  11. Hardware CPU GPU • Velika brzina (~4 GHz) • malo jezgri, 1 do 16 • mala paralelizacija • linearni pristup • Core 2 Quad Extreme ~0.04 TFLOPS ‘08 • i7-3960X ~0.13 TFLOPS • Manja brzina (~1 GHz) • Mnogo jezgri, 80 do <4k • velika paralelizacija • Vektorski pristup • HD 2900 ~0.4 TFLOPS ‘08 • HD 7970 ~4 TFLOPS ‘13

  12. Programiranje • Standardne aplikacije – CPU • Igrice, video – GPU • GPGPU (general processing graphics processing unit) • Zbog svoje velike mogućnosti paralelizacije GPU preuzima računanje na sebe • Pogodno za velike skupove paralelnih podataka i instrukcija • OpenCL, DirectCompute

  13. Program u GPU-u

  14. Osnovni grafički elementi • Točka, Pravac, ravnina, krivulje, koordinatni sustav • Transformacije • translatacija • skaliranje • rotacija • Vertex (vrh) • Poligon • Tekstura

  15. Geometrija • Točka (x,y,z) • Pravac • Definiran pomoću dvije točke • f(T1,T2) • Ravnina • Definira se pomoću 3 točke • normala + Točka • Transformacije = linearni operatori • Translacija = pomicanje • Rotacija = vrtnja oko nekog pravca • Skaliranje = povećavanje ili smanjenje

  16. Precrtavanje geometrije u termine računalne grafike Točka = Vertex Pravac = linija Ravnina = poligon Zašto je poligon u grafici uglavnom trokut? Jer jedino trokut zadan s 3 vrha (točke) je sigurno u ravnini

  17. Tekstura • Najjednostavnije rečeno, obična slika koju priljepimo na poligon ili točku • Način „ljepljenja” tekstura ili boja na poligone i/ili objekte zove se mapiranje

  18. Elementi scene • Scena je skup objekata koji se vizualiziraju • Kompozicija scene • Pravljenje scene i način upravljanja scenom • Koordinatni sustav • Svijetlo • Gledište i kamera • Geometrija • statična • dinamična

  19. Koordinatni sustav Prostorne koordinate X – vodoravno Y – okomito Z – dubina Vrste sustava: Desni Lijevi

  20. Svijetlo • Potrebno je da bi nešto bilo vidljivo • Ovisno o svijetlu i njegovim svojstvima možemo stvoriti razne efekte • Nekoliko vrsta svijetla • Točkasti (gubi intenziter s obzirom na udaljenost) • Paralelni ili direkcijski (negubi intenzitet s udaljenosti) • Reflektor (spotlight) (ovisno o točki fokusa gubi intenzitet) • Svojstva svijetla • Difuzno • Spekularno • Ambientno • Radirajuće ili emisivno

  21. Gledište i kamera Gledište je 2D kvadrat koji definira površinu iscrtavanja na koji se 3D scena projektira Frustrum je 3D prostor iz kojeg se projeciraju objekti i prostora gledanja kamere na projekcijski prostor Gledište se definira pomoću kamere, tj. kamera je definirana parametrima gledišta

  22. Geometrija U ovom kontekstu geometrija su svi objekti koji međusobno interaktiraju i/ili se nalaze u sceni Svi objekti su geomertijski prikazani, na njima odrešujemo njihovo ponašanje, animacije, pokrete, fiziku itd. Glavna podjela: Statična Dinamička neutralan sretan tužan ljut Blendanje animacija je često korišteno za stvaranje komplicirane animacije u

  23. Ogre3D • OGRE = Object Oriented graphics rendering engine, tj. obijektnoi orijentirani grafički sustav za iscrtavanje • Samo sustav za iscrtavanje jer nema direktno implementirane ostale funkcionalnosti poput sustava za mrežnu komunikaciju, zvuka i sl. • Open Source, što znači da je besplatno za korištenje i javno raspoloživ cijeli izvorni kod • C++ glavni jezik (postoje wraperi za C#, Python, Ruby, Java...) • www.ogre3d.org

  24. Ogre, neke značajke • Puna podrška za OpenGL (puni i ES) i DirectX • Nije vezan za jedan OS • Jednostavno integrirat u bilo koju aplikaciju • Moćan skriptni sustav • Podrška za Cg, HLSL i GLSL • Podžan širok niz formata slika i tekstura • Podržani nivoi detalja na razini materijala • Optimiziran binarni mesh format za modele • Exporteri postoje za većinu alata za modeliranje • Skeletalna, pose i vertex animacija • Podrška za sklopovski ili programski ubrzan skining • Napredni čestični sustav • Prozirnosti • I brojne druge značajke...

  25. Korištenje Ogre-a • Inicijalizacija • Incijalizacija root objekta • plugins.cfg • ogre.cfg (postavke iscrtavanja) • definicija kamere i gledišta • frameListener i početak iscrtavanja • Upravljanje scenom • Skripte materijala • Animacije

  26. Graf Scene Graf scene je hijerarhija scene Posebno je optimiziran za iscrtavanje, on se brine da se neradi s objektima koji ne ulaze u frustrum U njega, tj. na njega se dodaju svi objekti Reprezentiran je SceneManager abstraktnim sučeljem Nekoliko vrsta: Generic Interior Exterior Octree .....

  27. ObjektiEntity class Entitet je objekt unutar scene Nasljeđena klasa je MovableObject Sastoji se od mesha materijala kostura Stvara se pomoću SceneManager klase mesh file je optimizirana mreža poligona materijal file je skripta koja sadrži informacije o mapiranju tekstura, boja, efekata itd. skeleton file sadrži definiciju kostura objekta i kako eventualnih animacija

  28. Kod stvaranja scene: void createScene(void) { // Postavljanje ambijentnog svijetla mSceneMgr->setAmbientLight(ColourValue(0.5, 0.5, 0.5)); // Stvarnje točkastog svijetla Light* l = mSceneMgr->createLight("MainLight"); l->setPosition(20,80,50); // Učitavanje mesha Entity *ent = mSceneMgr->createEntity("head", "ogrehead.mesh"); // Postavi materijal učitan iz Example.material ent->setMaterialName("Examples/EnvMappedRustySteel"); // Dodavanje entiteta na čvor mSceneMgr->getRootSceneNode()->createChildSceneNode()->attachObject(ent); }

  29. Skripte • Skriptni jezici su se inicijalno koristili samo za male ponavljajuće zadatke • Skripta nije program!!! • Primjeri JavaScript, Shell Script • Skripte se ne kompajliraju, nego tako kako su napisane se direktno izvode • Interpretni jezici se također mogu smatrati skriptama (Python) jer se kod direktno izvodi bez kompajliranja • Lagano se debugiraju • Da nešta nevalja se može vidjeti tek tokom izvođenja • Kod nekih skriptnih interpretera, kad nešta nevalja zanemaruje se taj dio, a ostatak normalno izvodi • Parametarske i programske

  30. Skripte u Ogre-u • Ovdje govorimo o parametarskim skriptama • Material skripte • Particle skripte • Terrain skripte • Prednosti: • nemoramo rekompajlirati program za svaku izmjenu nekog efekta ili materijala • omogućava jako veliku logičku kategoriazaciju • lagano odvojiti dizajnerski i vizualni posao kodiranja • Nedostaci: • više IO operacija (zanemarivo) • ?

  31. Drugi alati • Koriste se za nadopunjavanje i olakšavanje izrade sadržaja • Služe za prijenos sadržaja iz programa za modeliranje u format koji je čitljiv Ogre-u • Malo službenih alata, ali veliki niz neslužbenih • Alias|Wavefront, oFusion, OgreMax • Alati za stvaranje digitalnog sadržaja • Particle Editor, Mesh Viewer, ATI RenderMonkey • Službeni dodaci • COLADA, Paging Scene Manager, Streaming Video • Biblioteke za izračun fizike • OgreODE, NxOgre, OgreNewt,... • Skriptni jezici u raznim fazama stabilnosti i završenosti • PyOgre, OgreDotNet, Ogre4J,...

  32. Grupe alata • Generatori skripta • Particle editori • Terain editori • Material editori • Shader editori i generatori efekata (ATI Render Monkey, Cg skript editori, ...) • 3D alati (3DStudio Max, Maya, Blender,...) • Modeliranje • Animiranje • 2D alati (Photoshop, Fireworks, Corel Draw,...) • Rad na teksturama • Mapiranja (heightmap, bumpmap,...) • Export-Import • Koriste se za prebacivanje iz jednog formata u drugi • Važnost zbog optimiziranosti formata kako za hardware, tako za softwer

  33. Dodatne biblioteke • Sve može biti implementirano na razini OS-a, ali i u tom slučaju se moraju koristiti određene biblioteke ili API-i • Zvuk • OpenAL • IO • OIS u OgreSDK paketu • STL IOstream • Boost.IO • Mreža • Boost.Asio • ACE

More Related