Detekcija sudara pomoću Unity3d - Tehnička dokumentacija ...
Detekcija sudara pomo?u Unity3dTehni?ka dokumentacijaVerzija 2.0Studentski tim: Teon BanekTomislav LjubejMarko ?omlijaIvan Hak?tokAna Stepi?Niko Mikuli?i?Damir Ciganovi?-Jankovi?Nastavnik: prof. dr. sc. ?eljka Mihajlovi?Sadr?aj TOC \o "1-3" \h \z \u 1.Opis razvijenog proizvoda PAGEREF _Toc408434340 \h 32.Kori?teni alati PAGEREF _Toc408434341 \h 32.1. Blender PAGEREF _Toc408434342 \h 32.2. Unity3d PAGEREF _Toc408434343 \h 33.Tehni?ke zna?ajke PAGEREF _Toc408434344 \h 43.1. Pojednostavljivanje modela PAGEREF _Toc408434345 \h 43.2. Dodavanje sudara?a PAGEREF _Toc408434346 \h 63.3. Performanse PAGEREF _Toc408434347 \h 74.Upute za kori?tenje PAGEREF _Toc408434348 \h 85.Literatura PAGEREF _Toc408434349 \h 9Tehni?ka dokumentacijaOpis razvijenog proizvodaProizvod ovog projekta je program kojim je prikazana mogu?nost Unity3d alata u detekciji kolizije. Cilj je bio istra?iti koliko dobre performanse se mogu dobiti nad jednim slo?enijim 3d modelom. Za potrebu ovoga projekta, kori?ten je detektor ?a?i tvrtke AVL “Microsoot”. Kori?teni alati2.1. BlenderBlender [1] je program za modeliranje, oblikovanje modela, izradu animacija te naposljetku i ra?unalnih igara napravljen od strane tvrtke iz nizozemske, Blender Foundations. Spomenuti program ima odli?nu potporu za modificiranje 3d modela. U ovom se projektu zato Blender koristio prilikom pojednostavljivanja modela detektora ?a?i.2.2. Unity3dUnity3d [2] je program za izradu videoigara (engl. game engine). Prva verzija Unity-a na tr?i?tu je iza?la 2005. godine te je bio namijenjen samo za korisnike OS X operacijskog sustava, no od tada se pro?irio i na druge platforme te ima vi?e od 2 milijuna registriranih korisnika. Osim toga, pogodan je za izvoz i na mobilne operacijske sustave, igra?e konzole (Xbox, PlayStation ) te za web aplikacije. Mogu?e je stvarati igre svih ?anrova te je integrirano radno su?elje za 2D i 3D razvoj igara. Gotovo sve potrebno, pri kori?tenju Unity-a, je na dohvat ruke zbog lakog uvoza, ne samo svojih modela, skripti i materijala, nego i ostalih sredstava (engl. assets) za izgradnju videoigre iz trgovine sredstava kojoj se mo?e pristupiti u svakom trenutku ?ak bez otvaranja Internet pretra?iva?a. Postoji podr?ka za sredstva uvezena iz Blendera, Maye, 3ds Max-a, Adobe Photoshopa te mnoge druge. Osim toga, Unity ima podr?ku za nove tehnologije poput Kinect-a, Occulus Rift-a te Leap Motion-a. Tehni?ke zna?ajke3.1. Pojednostavljivanje modelaU Blenderu postoji vi?e na?ina i alata koji mogu poslu?iti za pojednostavljivanje kori?tenog modela. Za potrebe ovog projekta kori?ten je bio modifikator Decimate [3].Decimate modifikator je modifikator koji smanjuje broj to?aka i lica u nekom objektu uz minimalne promjene strukture. Modifikator koristi vi?e algoritama za pojednostavljivanje modela. Mogu?i algoritmi su uru?avanje (eng. collapse), poni?tavanje podjele (eng. unsubdivide) i poravnavanje (eng. planar). U ovom projektu, zbog specifi?nosti modela kori?teni su samo algoritmi collapse i planar.Collapse algoritam koristi te?inske faktore dodijeljene pojedinim vrhovima. Algoritam kao parametar prima omjer ?eljenog broja lica i ukupnog broja lica unutar jednog objekta. Zatim se ovisno o te?inskom faktoru uklanjaju odre?eni dijelovi geometrije kako bi se smanjio ukupan broj lica. Ovaj algoritam pogodan je za uklanjanje izoliranih vrhova te parova vrhova koji se nalaze na maloj udaljenosti.Planar algoritam kao parametar prima najmanji kut izme?u normala dvaju susjednih lica unutar nekog objekta. Ako su dva lica u istoj ravnini, razlika izme?u njihovih normala ?e biti 0° ili 180° (u slu?aju dvostranih lica). Kroz lica se prolazi dva puta, jer je mogu?e nastajanje kumulativnog efekta pri spajanju. Ovaj algoritam pogodan je za pojednostavljivanje zakrivljenih povr?ina, gdje su neravnine prikazane velikim brojem poligona, te tako?er za objedinjavanje vi?estrukih poligona u istoj ravnini u jedan poligon.Broj lica u modelu se u kona?nici smanjio za otprilike 40 %.Slika 1. Gornje dvije slike prikazuju stanje komponente modela prije kori?tenja decimate modifikatora, a donje dvije prikazuju stanje nakon. Broj lica (engl. faces) se smanjio s 230 lica na 58 lica, no promjene na obliku modela se gotovo i ne vide.3.2. Dodavanje sudara?aGeometrija koja definira izgled objekta je obi?no prekompleksna za kori?tenje u detekciji i simulaciji kolizije te se za te potrebe koristi druga, jednostavnija geometrija koja sadr?i manje vrhova i lica ili se sastoji od nekih primitiva za koje se jednostavno ra?una kolizija, npr sfera ili kocka. Takva geometrija se onda ne iscrtava ve? slu?i samo za detekciju kolizije, nazivamo ju “sudara?”. U razvojnom alatu Unity postoje dvije mogu?nosti za postizanje spomenutoga.Mo?emo za svaki objekt definirati jedan od primitivnih sudara?a, to mo?e biti “box collider”, tj. kvadar, prikladan je za objekte koji otprilike imaju oblik kvadra, “capsule collider”, koji se sastoji od valjka i dvije polukugle na bazama valjka, a prikladan je za ve?inu duguljastih objekata koji nisu kvadratnog oblika. Osim tih, postoji i “Sphere collider”, sfera, prikladan je naravno za sferi?ne objekte. Uz ove sudara?e mo?emo koristiti i geometrijska tijela napravljena u nekom drugom alatu poput Blendera. Takvi likovi moraju biti konveksni i relativno jednostavni ina?e performanse simulacije vrlo brzo padaju. Nekada za neki objekt nije prikladan samo jedan primitivni collider ve? ih treba vi?e. Na primjer, neki objekt koji se sastoji od nekoliko kvadra bi trebao imati nekoliko “box collidera”. To radimo tako da dodamo jo? objekata u scenu koji ?e se sastojati samo od jednog primitivnog sudara?a te ih postavimo kao djecu glavnome objektu te naravno postavimo polo?aj, rotaciju i veli?inu sudara?a da odgovaraju glavnom objektu. Slika 2. Na slici vidimo postupak dodavanja sudara?a na slo?eniji objekt. Prva slika pokazuje objekt bez sudara?a a na zadnjoj vidimo sve sudara?e (sudara?i su iscrtani zelenim linijama). Prva dva sudara?a su ?capsule collideri“ koji su dodani na prednji i stra?ni dio objekta dok tre?i nije dio Unity alata ve? je jednostavno geometrijsko tijelo koje je napravljeno alatom Blender te pretvoreno u sudara?.Za slo?enije modele za koje nije prikladno imati primitivne sudara?e mo?emo koristiti i njihovu geometriju za iscrtavanje. Ovo je jako ra?unski zahtjevno te se treba izbjegavati gdje je god mogu?e.3.3. PerformanseScena se sastoji od 59 stati?nih sudara?a te 324,200 trokuta za iscrtavanje. U sceni je tako?er 800 ?estica koje se kre?u i odbijaju od sudara?a objekta. ?estice nemaju svoje sudara?e ve? se fizika za njih ra?una zasebno od ve? postoje?e fizike u Unityu pomo?u dodatka Unityu ?Particle playground“.Program je testiran na ra?unalu sa intel i7 360QM 2.3 GHz procesorom i Nvidia GeForce GTX 660M grafi?kom karticom te se vrti na stabilnih 30 FPSa ?to je zadovoljavaju? rezultat, no da sudara?i nisu stati?ni performanse bi znatno pale. Ru?no dodavanje primitivnih sudara?a na objekte i pojednostavljivanje objekta je uvelike pomoglo performansi programa. Postoji mogu?nost za daljnju optimizaciju tako da se objekt podijeli na jo? manje dijelove i jo? vi?e pojednostavi.Program je demonstriran ?letom“ (engl. flytrough) kroz model te je pu?ten roj ?estica koje se s njime sudaraju. Unity ima podr?ku za Oculus Rift [4] te je, osim obi?nog na?ina kori?tenja programom, omogu?eno i kori?tenje uz pomo? toga ure?aja.Upute za kori?tenjeAplikacija projekta se pokre?e dvoklikom na izvr?nu datoteku. Otvara se prikaz ure?aja i pokre?e se tok ?estica kroz taj ure?aj. Korisniku su ponu?ene sljede?e kontrole.Escape tipka resetira aplikaciju na po?etno stanje.Enter tipka uklju?uje i isklju?uje prikaz broja sli?ica u sekundi na ekranuTipka za razmak zaustavlja izvo?enje ako je u tijeku, ako je zaustavljeno tada nastavlja s izvo?enjem.Pritisak lijeve strelice usporava brzinu izv?avanja simulacije.Pritisak desne strelice ubrzava brzinu izv?avanja simulacije.Slike u nastavku prikazuju pokrenutu aplikaciju. Slika 3. Ulazak ?estica u ure?aj.Slika 4. Slika zaslona za vrijeme izvo?enja aplikacijeSlika 5. Slika zaslona za vrijeme izvo?enja aplikacijeLiteraturaBlender Foundation, Technologies, Foundation, Luckey, ................
................
In order to avoid copyright disputes, this page is only a partial summary.
To fulfill the demand for quickly locating and searching documents.
It is intelligent file search solution for home and business.