Author
luka-kozuh
View
22
Download
3
Embed Size (px)
DESCRIPTION
games
[email protected],draftv09,PeterPeer++ 31
Predavanje#3(premikanje)
Aktualnekatlice:
arhitekturaigreo arhitekturapogona
matematikao osnovnalinearnaalgebra
scenao grafscene(scenegraph)o enostavnigrafi
2dfizikao delcio premikanje
trki(selektivnosamoenostavnipojmi)o vrsteteles
delci zosmiporavnaneploskve zosmiporavnanipravokotniki(AABB)
o detekcijatrkov delecdelec delecAABB AABBAABB
o odbojpotrku vrnitevnanajblijedovoljenostanje inverzijahitrosti gibalnakoliina koeficientpronosti
vhodnenapraveo stanjenapraveo tradicionalnivmesniki
[email protected],draftv09,PeterPeer++ 32
o dotikovnivmesnik
1.Arhitekturapogona
Razlinipogoni:pogonigre,grafinipogon,fizikalnipogonipd.Pogonigredejanskozaobjemavseostaleinjeneodvisenodigre(notgamespecific).Edenizmedbistvenihciljevpogonajeizolacijasameigreodstrojneopremenakateritee.Dejanskoustvariabstraktennivomedigroinstrojnoopremo.Natanainsevsamiigrinitrebaposveatiplatform,ampakselahkoosredotoimonasamologikoigre.Primeriabstrakcije:branjevhodaskontrolerja,izrisgrafikenaekran,predvajanjezvoka;podporaserializaciji(branjeinzapisovanjestanjaobjektov),mrenakomunikacija,sinhronizacijavigrahveihigralcev,preiskovanjeprostora(UI),detekcijatrkov.
XNI+ArtificialI???
XNI:
Ogrodje
host(okno,stanja)
glavnazankaigre(gameloop)
komponente,servisi
Grafika
grafinanaprava(device)
stanjeupodabljanja(renderstate)
stanjeteksture(texturestate)
lui
izrisprimitivov
izrisindeksiranihprimitivov
optimizacijaizrisa(spritebatch)
3Dmodeli
senilniki(vdelu)
Vhod
mika
dotiki
pospekomer
kompas
[email protected],draftv09,PeterPeer++ 33
Matematika
vektor
matrika
kvaternion
Cevovod
uvoztekstur
uvoz3Dmodelov
Zvok(vdelu)
XNIvbistvusluikotnekamedplatformskaplast(crossplatformlayer),kiodpravirazlikomedDirectXinOpenGLtervsemiostalimipovezanimizadevami(input,zvok).Nadtemprideelepravigrafinipogon,kjerjenotrikamera,grafscene,izbiranje(culling),grafiniuporabnikivmesnikipd.
Primerarhitekturepogonaigre:
2.Linearnaalgebra
Zvidikalinearnealgebramoramopoznativseokolitirihglavnihpojmov:toka,vektor,matrika,kvaternion.
Dotaknimosebistvenihpovezanihpojmov.Vektor:setevanje,odtevanje,skalarji,komponente,dolina,normalizacija,zapisovanjezmatrikami,ortogonalnost,transformacija,normala,tangentnost,skalarniproduct,vektorskiproduct,nekomutativnaoperacija,pravilodesnega.Matrike:elementi,mnoenje,transponiranje,simetrija,singularnost,identiteta,ortogonalnost,inverzija.
???emrazloitimatematikozadaj?!
3.Scena
[email protected],draftv09,PeterPeer++ 34
Grafscene:
Teorijagrafascene(scenegraph)predlaga,dapostavimovsenascenivensamzedinjen,poenotengraf(lahkodrevo,kijeleenaoblikagrafa).Takovanjpostavimoodmre,verteksov,senilnikovdotekstur.eztakengrafsenatoobizrisusprehodimoinzaradiposebneorganiziranostisamihvozlidoseemooptimalnouinkovitostupodabljanja.epravvteorijikonceptzvenizelolepo,praksanitakoronata,sajpotrebujemoobilicoasa,dela,dataknoogromnopodatkovnostrukturourejujemogledenaaktualnedogodkevigri.Kompleksnovzdrevanjeteorijotorejpostavinarealnatlainzabrieprednosti,kijihteorijaobljublja.eve,vpraksijetrebavekratgrafzgraditinanovo,karizniivelikoteoretinihprednosti.
Sevedapasodrevesaingrafizelouporabnipriupodabljanju,vendarjevpraksipotrebnihverazlinihgrafovindreveszarazlinenamene.Torejmogoeidejapoenotenjalenitakouporabna.
Dajeupodabljanjeuinkovitosevedavednoneizrisujemonaegaceleganavideznegasveta.Prvaidejajeseveda,daneizrisujemo,upodabljamotistihobjektovnaegasveta,kinisovidniizzornegakotanavideznekamere,kidejanskoizrisujeslikonanaekran.Vosnovitakonceptimenujemostoastoizbiranje(frustumculling)(razlaga:http://www.youtube.com/watch?v=kvVHp9wMAO8,primer:http://www.youtube.com/watch?v=lJsMk6nxOs).Samoizbiranje(culling)(kivosnovipomeni,daneizrisujemodoloenihobjektov)lahkosevedaedodatnozakompliciramotako,datudivvidnempoljukameredoloenihobjektovneizrisujemo;naprimerobjektovzagoronevidimoinjihzatoneizrisujemo,epravsovvidnempoljukamere,podobnoneizrisujemoobjektovzazaprtimivrati.
Zakajdoloenihstvarineizrisujemo?Jasno,dahitrejeupodobimoinizriemoaktualnosceno.Vendarprikonceptuizbiranjazauinkovitost,hitrostizrisa,prirecimomiljonihinmiljonihobjektovvnaemnavideznemsvetu,nidovolj,dasevpraamoAlijeobjektviden?vvsakisliici(frame)naegaizrisanaekran.Potrebujemonain,davpraamoKateriobjektisovidni?Ingrafjeodgovor!Objektiivijovvozliihtehgrafov,sprehodskozigrafpavednozanemovvozliu,kjersenahajakamera,natopapotujemoponjemudoklernenaletimonanekomejovidnostiobjektov.Natanainvozligrafa,kinisovidnavnekemtrenutku,splohneobravnavamo,pravtakoneobravnavamoobjektovznotrajnjih.Grafi,kipridejovpotevso:portali,BSP(binaryspacepartitioning),quaddrevesa,oktdrevesa,PVS(potentiallyvisibleset),ABT(adaptivebinarytree)ipd.Lahkojihsevedatudikombiniramo,recimo,kersolahkovozliazazunanjesceneogromna,uporabimooktdrevoznotrajvsakegaportalavportalnemsistemu.Lahkojihuporabimotudivzporedno,recimoPVSsistemjeuporabenzatestvidnosti,oktdrevopajelahkoboljuporabnozapropagiranjezvoka.
Opisanouporabografovnavadnosskupnimimenompoimenujemorazdeljevanjevolumnaupodabljanja(rendervolumepartitioning).
PrimerABTdrevesajezgorajdesno:
[email protected],draftv09,PeterPeer++ 35
(SceneCamera/RealCamera!?)
Zakajjevsetoedobro?Sicersmonatovpraanjeeodgovorilizgoraj,vendardajmoponovno,zzornegakotaasovnekompleksnostiO()terdejanskegaasa.Nascenizgornjeslikeimamorecimo200objektov.ZuporaboABTdrevesaopazimoskrajanjeizrisazapolovico(stoastoizbiranje(frustumculling)jebilouporabljenoeprejinjekarza6kratpospeiloizvajanje),naokoli23msnaizris.eboljbibilarazlikaoitnapriscenizvejimtevilomobjektov.OsnovnipristopspreverjanjemobsegajoekroglealikvadrazavsakobjektposebejimavelikostniredO(n),priemerjenteviloobjektovvsceni.Zuporabodvojikegadrevesa,algoritmadeliinvladajinmalofleksibilnostiprideljenjuinumeanjuvbinarnodrevopridemodoABTdrevesaternaredimoiskanjetistih10ali20objektovvnaemvidnempoljuzoperacijovelikostnegaredaO(logn).ebi400objektovpovealina10.000objektovnasceni,bipriO(n)pristopupotrebovali10.000/400=25kratveasa.PrireduO(logn)bienakopoveanjepotrebovalosamolog(10.000)/log(400)=1,5kratveasa.Vpraksiseza
[email protected]RI,draftv09,PeterPeer++ 36
primersslikeizkae,daenamesto200objektovustvarimosvets50.000objekti,brezABTdrevesatevilosliicnasekundo(framespersecond)padenaokoli6sliicnasekundo,zABTdrevesompajetoteviloevednovijeod200.Vsekakordovoljprepriljivnapredek,dasmozelopraktinoprikazaliuporabnostsnovi,kisemarsikateremutudenturaunalnitvazdibrezprevelikeuporabnevrednostivpraksi.
Enostavnigrafi:
Portali:
Vsistemuportalovjescenarazdeljenanavozlia,vsakoobsegadoloenproctorscene,kijenavadnoopisanokarzgeometrijoobsega,vsebine.Recimotemvozliemsektorji.Portaltesektorjepovezujemedsabo.Kako?Portalvsplonemdefiniraprehodvnekdrugsvet.Predstavljajmosivelikosobo.Nasreditesobenajnekalebdeastvar,kioddaleizgledakotogledalo,kopapridemoblizulahkovidimo,dadejanskoprikazujepovsemdrugosceno.Jepovezavadodrugelokacije,oknovprostoru.Oziroma,esmoboljegzaktni,predstavljageometrijskonezveznost.TojerecimoopisdejanskegaportalavigriUnreal,vendarjevresniciportaliripojem,sajlahkorecimopovezujetudidvesobinapovsemnaravennain,skozivrata.Torejvsekarmoramonareditije,danaoscenorazdelimonavozliainjihpoveemosportali.Portaljenavadnovigripredstavljenkotplanarenkonveksenpoligon,najvekratkarspravokotnikom(recimovrata,okna).Vsekarvidimoskoziportalenostavnoobreemo(clipped),hkratipanazeloenostavennainvgrafuoznaimovozlia,kisovidnaskoziposamezneportalezzornegakotakamere.
Plus:
+ Sistemportalovjeenostaven,fleksibilen,intuitiven,pocenigledenaprocesorskeinpomnilnikezahteve.Zanotranje(indoor)scenejesistemekstremnouinkovit.
Minusi:
Funkcijaupodabljanjamorevedeti,vkateremvozliusenahajakamera.Doteinformacijepridemotako,dasledimoigriinustreznopreskakujemoizvozliavvozlievgrafu.Posebniprimerisledenjavkljuujejotudiprehodeskozistenealiteleportiranje,kjerportalinisodefinirani.
Kersistemtemeljinageometrijiscene,samodejnigeneratorjigrafovnisonajboljuinkoviti(enajdejopremaloportalov,bopotrebnoizrisativelikostvari,epajihnajdejopreveliko,jihmoramosprocesirati(troimoprocesorskias),izrispazatonebonidetalneji).Takosenajveratzgodi,dajetrebagrafesestavitirono,karnajvekratnaredioblikovalecstopnje.
Vzunanjih(outdoor)scenah,npr.mestazvelikozgradbami,nebotiniki,jetekodoloitirazmeromamaloteviloportalovtako,daseskozinjihnevidipraktinovsega,sajtakopaneomejujemoizrisa.Imetiogromnoportalovpa,kotomenjenoezgoraj,tudinimapravegasmisla.
Binarnorazdeljevanjeprostora(BSPbinaryspacepartitioning):
BSPjeposploenaoblikahierarhinegarazdeljevanjaprostora(HSP).MedposebnetipeBSPtejemomeddrugimtudikddrevesa,quadinoktdrevesa,epravimajoposebnelastnosti,zaradikaterihjihobravnavamoloeno.TudiBSPjedrevo.Todrevopredstavlja,opisujecelotenprostorigre,celotno
[email protected],draftv09,PeterPeer++ 37
sceno.Vsakovozliepredstavljadelprostora,kisenesekassvojimibrati,vsakegapalahkonadaljerazdelimovotroke.Vozlia,kinimajootrok,imenujemolistidrevesa.Slednjipredstavljajonedeljivdelprostora,kotvozliavsistemuportalov.Sicerlahkoimavsakovozliedvaotroka,kijuloimozravninonadvepolovici.Oznaevanjevidnihvozliizenegavozliajenekolikotejekotpriportalih,temeljipanaoznaevanjulistovkotvotel(hollow)alitrden(solid),kjervotlilistioznaujejoprostorzobjektivnjih,kizahtevajoupodabljanjevprimeruvidnostitegalista.
Plusa:
+ ZBSPdrevesomjeklasificirancelotenprostor.Enostavnoizberemotoko(recimolokacijonaekamere)vprostoru,natozanemovglavnemvozliu,pogledamonakateristranidelilneravninesenahajanaatoka,sledimovdrevesutemuotrokuinponavljamopostopekdeljenjainsledenjaotrokuvsedoklernepridemonalista,kjersenaatokanahaja.Tapostopekjehiter,zanesljivinvednoizrauna,podapravilenodgovor,karjevelikoboljekotpriportalih.
+ BSPdrevesajevelikolajeustvarjatisamodejnoinnipotrebeporonigradnjileteh.
KerstasistemportalovinBSPdrevopodobnapostrukturi,vendardobrazarazlinestvari,velikoigerdejanskouporabljanekakenhibridobeh,vsakpristopvrazlinihsituacijah.
Quaddrevesainoktdrevesa:
Priobehdrevesihgrezapraktinoenakopodatkovnostrukturo,storazliko,dasoquaddrevesa2D,oktdrevesapa3D.Nadgradnjavdodatnodimenzijojedokajenostavna,zatoseposvetimoquaddrevesu.Vsakovozliepredstavljakvadratvprostoru,kijeporavnanzxinyosjoinimaalinobenegaotroka(listdrevesa)alitirienakovelikeotroke,kirazdelijoprostornaetrtine.Navadnokorenskovozlieporavnamozizhodiem;izhodiepostavimolevozgorajgledenacelotenprostor.Telastnostinamomogoajo,danazeloenostavennainnajdemolokacijotokezanimanjavdrevesu.Vzamemoxinykoordinati(zanemoz0,koordinatizaokroimonacelotevilo)tokeinzanemovkorenskemvozliu.Koordinatizapiemobinarnotervvsakemvozliuvzamemoprvibitobehkoordinat.tevilostopenjdelitvecelotnegaprostorapove,kolikomestimabinarnotevilo.Natoobabitazdruimoindobimotevilomed0in3,kipove,vkateropodvozliemoramoiti.Potemzamaknemo(shift)obebinarnozapisanikoordinativlevozaenbitinpostopekponavljamodoklernepridemodolista.Sprehodskozidrevo,iskanjenaetokejetakozelohitro.
Recimo,danaszanimatokaskoordinatami(3,6)(naspodnjislikijesprehodoznaenspolnimirtami).Zapiimokoordinatibinarno,priemernajmanjiprostorpove,dajebilcelotenprostor
razdeljenvtirihstopnjah,torejimamopredsabotirimestnibinarnitevili:(3,6)(0011,0110).Sledimozgorajzapisanemualgoritmu:
1. Vzamemoprvadvabita:00,kibinarnodefiniratavozlie0(delprostoralevozgoraj),vkateregasesprehodimoizkorenskegavozlia.Zamikbitovvlevopripeljedonaslednjihvrednosti:(0110,1100).
2. Spetponovimopostopek,vzamemoprvadvabita:01=1(levospodaj)(1100,1000).3. 11=3(desnospodaj)(1000,0000)4. 10=2(desnozgoraj)Tojelistintorejtokaiskanja.
[email protected],draftv09,PeterPeer++ 38
Slikaprikazujesprehodskoziquaddrevo:
Quaddrevesanavadnouporabljamozadetekcijotrkovinhitrostoastoizbiranje(frustumculling)vzunanjih(outdoor)scenah.
epravsezdi,dajeveinaiger3Dinbitakomoraliuporabitioktdrevesa,jeresnicanekjevmes.Velikoigerjedejanskole2,5D,njihovsvetpajepoveiniraven.Tipienprimersorealnoasovnestrategijeepravpokrajinalahkogregorindolinjeviinapomembnainformacijazastrategijo,jeteviloprimerovvkaterihstadvaupodobljenaobjektavprostoruedennaddrugimizrednomajhno.Polegtegapavtemprimerudodatnakompleksnostoktdrevesaneprinesenobenebistveneprednostizvidikastoastegaizbiranjavprimerjavisquaddrevesom.Takostaobedrevesienakopogostivigrah.
Blinjasorodnikaobemadrevesomastatudinjuniohlapni(loose)razliici.Imataenakouporabnostpriupodabljanju,astavelikoboljpraktinipridetekcijitrkovkotstandardnoquaddrevo.
Potencialnovidnamnoica(PVSpotentiallyvisibleset):
TudisistemPVStemeljinavozliihingalahkovpeljemokotnadgradnjapoljubnegadrugeganagrafutemeljeegasistema.Osnovnaidejaje,daimavsakovozliespisekvozli,kisopotencialnovidniiztegavozlia.Nekateravozliaizspiskasicernisonujnovidnaiztrenutnelokacijekamere,vendarzagotovodri,davsaostalavozlianikolinisovidnaiztegavozlia.epravjekonceptenostavenpaustvarjanjetehspiskovnienostavno.PVSsistemsetudinespopadadobrosspreminjajoosegeometrijo,naprimer,eselahkovratavigriodpirajo,potemmoramovtemsistemupredvideti,dasovednoodprta.PVSsistemjetorejstatienseznam,kisenespreminjagledenatrenutnolokacijokamerealitrenutnostanjescene,zatorejjekonzervativen.RavnozatosePVSsistemnajvekratkombiniraskaknimdinaminimsistemomzadoloanjevidnosti(recimokarstandardnimstoastimizbiranjem),dalajeizloamonadaljnavozlia.NajlepastransistemaPVSjezagotavljanjeekstremnohitreganainazavraanjavozli,kinisovidna.Teinformacijevtemprimerunedobimossprehajanjempografu,ampakjeenostavnodanavoblikispiska.
Prilagodljivobinarnodrevo(ABTadaptivebinarytree):
[email protected],draftv09,PeterPeer++ 39
Oglejmosie,kakobioptimiziraliizriszABTdrevesi.Zanemoizstandardnegadvojikegadrevesa,sseznamomobjektovvlistih.ehoemoizrisatisceno,zgoljrekurzivno,poprincipudeliinvladaj,pogledamoalistavidniobepolovice,levaindesna,in,zatistokije,sproimopregledovanjeotrokov.Kopridemodolistovizriemovseobjekte,kisenahajajovnjem.Problemje,dasmopridelitvizvrhanavzdolscenovsakirazdeliliznekoravninonadvepolovici.Prejalislejsepojavikakenobjekt,kileiravnonasrediniintorejspadatakovlevokotdesnopolovico.Danamnitrebaobjektapodvajativobestrani,ustvarimoprilagodljivodvojikodrevo.Pritempristopuobjektpostavimovsamoenoodpolovicinnjenobseg(boundingbox)poveamotoliko,davsebujetudinovobjekt.Sevedaseobsegaobehpolovicpritemprekrivata,vendarstemnininarobe.Levsaki,kovscenododamonovobjektmoramoobsegustreznoprilagoditi,esluajnosegaezrob.
Mimogrede,tudizvokjelahkoobjekt,kipagasevedaneizrisujemo,gaproimo.Vsisistemilahkopridejopravtudipriiskanjuurejenihseznamovobjektovgledenaglobinonasceni,eposebejsoaktualniizrisiprosojnih(translucent)(izrisodzadajnaprej)inneprozornih(opaque)(izrisodspredajnazaj)objektov.Rezultatiskanjajepravzapravsortiranseznampoglobini.
Zgornjiprimeripristopov,sistemov(zizjemoABT)sonatetitako,dazniujejocenosprehodaizvozliavvozlie.Vvelikoprimerihpaveljapravilo,dajeboljpomembnozakajuporabljamodoloenoshemo,sistemrazdeljevanja,kotpakakouinkovita,hitrajetashema.Takosenavadno,zagotovopavelikokrat,uporabljajoportalizapregledvidnostiinquad/oktdrevozadetekcijotrkovznotrajisteigre.Vveiniprimerovpavelja,dajeuporabakaterekolishemepomembnejaodloitevkotkateratonojeuporabljena.eizrabaCPEinporabapomnilnikapoprviuporabljenishemikaataeljenerezultate,potemnimasmislaiskati,implementiratikompleksnejihshem.
4.Fizika
Fizikajedelnaeivljenskeizkunje,breznjenegre,tudivigrahne.Naimoganisonaueni,dagibanje,kitemeljinapravilihfizike,kijihsreujemovvsakodnevnemivljenju,razpoznajokottistopravo,priakovanogibanje.Poznamovsajtriglavnepristope,kakoprikazatirealistinogibanjevigri:
spomojoanimacije,kijosestavimosliicozasliico(keyframeanimation), spomojotehnologjezajemanjagibanjarecimodejanskihljudi(motioncapturetechnology)
in ssimulacijofizikalnihzakonov.
Slednjijezagotovonajceneji(zarazvijalceinzalonike)inomogoatudisimulacijogibanjavasuizvajanja(runtime),torejjetanainboljfleksibileninzanasvtemtrenutkunajboljzanimiv.
Delciingibanje:
Osnovnielementivsakeigresodelci,tistinajmanjisamostojnigradnikivigrinakaterelahkoapliciramozakonefizike.Lastnostigibanjadelcevpoznamopodimenomkinematikadelcev.Fizikadefiniradeleckotobjektbrezvolumna,recimozgoenamasavneskonnomajhnikrogli.Zanaepotrebedefiniramodelecmalcedrugae:delecjepovsemgladkakroglaskonnimradijeminbreztrenja.Zakajkroglastemilastnostmi?Danamnitrebaupotevatirotacijskegagibanja,torejzaradipoenostavitve.
[email protected],draftv09,PeterPeer++ 40
Osnovnipojmikinematikedelcevso:ast,lokacijap=,lokacijagibajoegadelcajefunkcija
asap(t),p(t+t),povprenahitrostmeddvemaasomaV,pospeeka.asovnoodvisnalokacijagibajoegasedelcapopoti:
lim
SevedamimoNewtonovihzakonovgibanjanemoremo,vsajprvihdvehne.Prvipravi,daseboobjektgibalskonstantnohitrostjovsedoklergavspremembohitrostinebodoprimoralezunanjesile.Drugipapravi,dajespremembahitrostiobjektaproporcionalnanaobjektdelujoisili.
Newtonovizakonigibanjaso:
1. Telomirujealisegibljepremoenakomerno,enanjnedelujenobenasilaalipajevsotavsehsil,kidelujejonanjenakani.
2. Pospeekjesorazmerensiliinimasmersile( ).3. edelujeprvotelonadrugozdanosilo,delujetonaprvoznasprotnoenakosilo.
Odtukajsenatolahkopogovarjamoogibanjudelcanakateregadelujekonstantnasila(
,
),gibanjuprojektila
(
)ipd.,natolahkonaredimopreskoknagibanjedelcevinnatonadrugeoblikeobjektov,
epravjihvigrahmarsikdajaproksimiramoravnoskroglo.
Gibanjeprojektilanazemlji:
[email protected],draftv09,PeterPeer++ 41
5.Trki
Objekti,nadkaterimineizvajamodetekcijetrkov(collisiondetection)insenaleteneodzivamo(collisionresponse/resolution),prehajajoedenezdrugegakotduhoviezstene.Torejjimmanjkalastnosttrdnosti,kijozagotovimopravzustreznoobravnavotrkov.Postopekdetekcijetrkovposkrbizaodgovornavpraanje:einkdajsebostadvaobjektazaletela?Postopekodzivanatrkpaboodgovorilnavpraanje:kjesemoraposamezneobjektpotrkunahajati?Izraun,kakoseobjektigibajopotrkujestvarfizikevigri.
Vrsteteles:
Detekcijatrkovjelahkoenostavnazaobjektekotsokrog,pravokotnik,vendarstvarzagotovopostanekompleksneja,koimamoopravkaspoligoni.Vsplonemveljapravilo,damoramopoligoneaproksimiratizenostavnimigeometrijskimioblikami,eelimodoseidelovanjevrealnemasu.
Primeraproksimacijenazobanegaobjektazelipsoninujno,daaproksimacijaobsegacelotenobjekt:
Delcekotosnovnovrstotelessmoobdelaliezgoraj.Dejanskolahkopoljubenobjektopiemokotkrog(alikrogla),kitakenobjektaproksimira.Povrinakrogaoz.volumenkrogletakovsebujetacelotenobjektinpravkrog/kroglajenajenostavnejipribliekobjekta.Temupriblikupravimovsplonemomejujoapovrina/volumen(boundingsurface/volume).
Naslednjavelikokratuporabljenapovrina/volumenjepravokotnik/katla.Poznamodvanainaaproksimacije:zosmiporavnanipravokotniki(AABBaxisalignedboundingbox)inssmerjoporavnanipravokotniki(OBBorientedboundingbox).AABBaproksimacijaogradiobjektv3Dtako,dastranicekatleporavnazosmikoordinatnegasistemaigre.Tonavadnopovzroimalceslabiopisobjekta,vendarjedetekcijatrkovtakoeboljpoenostavljenainceneja.OBBpaogradiobjekttako,dasekatlakarnajboljeprilegaobjektu,karpomeni,dajekatlaporavnanazvodilnoosjoobjekta.
PrimerograditvezAABBinOBBaproksimacijo:
[email protected],draftv09,PeterPeer++ 42
ejenaobjektkompleksen,galahkoopiemotudizveimiomejujoimipovrinami/volumni.Recimolovekabilahkoopisalitako,daglavoopiemoskroglo,posameznookoninointruppazOBB.Pravtakolahkoobjekteopiemotudinaverazlinihnivojih.Navijemnivojubitakolahkocelegalovekaopisalileskroglo.Takojelahkotuditestdetekcijetrkavenivojski,kjerpreverjanjenanijemnivojunaredimole,ejenavijemnivojutrkbilustreznodetektiran.
Detekcijatrkov:
Ugotavljanjeeinkdajsebostadvaobjektazaletelanitakoenostavna,kotsezdinaprvipogled.Nekateriobjektisolahkozelohitri(metek),lahkojihjeogromno(rafal),lahkoimajokompleksnogeometrijo(ljudje).Dejanskogretudizadragooperacijo,sajmoramovosnovipreverititrkvsakegaobjektazvsakimdrugim,karpomeni,daimamoopravkasasovnokompleksnostjoO(n2).Nasreolahkokompleksnostdetekcijetrkovublaimospoenostavljenogeometrijo,omejujoimipovrinami/volumniinrazdeljevanjemprostora.Zadetekcijotrkovpoznamodvetehniki:testiranjeprekrivanja(overlaptesting)intestiranjepreseka(intersectiontesting).Bistvenarazlikamednjimajeta,daprvadetektira,alijedotrkaeprilo,drugapanapoveduje,alibodotrkaprilovprihodnosti.
Testiranjeprekrivanja:
Ciljtestajedognati,alijekaterikolidelprvegaobjektaznotrajkateregakolideladrugegaobjekta.Recimo,daimamodvadelca,kismojuopisaliskroglama.Detekcijatrkavtemprimerujezeloenostavna,sajjejasno,dajedotrkaprilo,ejerazdaljamedsrediemaobehkrogelmanjaodvsoteobehradijev.VprimerudvehAABBobjektovgledamolerazdaljostranic,enkratpohorizontali,drugipovertikali.(Doposploitvetegaepridemonasamemkoncuopisadetekcijetrkov.)
ejetrkdetektiran,potrebujemodvarezultatazapravilenodzivnatrk:astrkainvektornormaletrka.astrkaizraunamotako,davzamemoaszadnjesimulacije,koobjektaenistabilavtrkuterasdetekcijeprekrivanjainnatospomojobisekcijenajdemovmesniasdejanskegatrka.Vpraksiskonvergiramokeljenemuasuvpetihiteracijah.Zdoloitvijotegaasatikpredtrkom,poznamotono,neprekrivajooselokacijoobjektov,kamorjupostavimopredkorakomodzivanatrk.
Primerdoloitveasadejanskegatrkapometodibisekcije:
[email protected],draftv09,PeterPeer++ 43
Pristopzvenienostaven,aimatudigroznopomanjkljivost:detekcijatrkajeneuspenapriobjektihzzelovelikohitrostjo.
Maloverjetnoje,dasebohitermetekkadarkolivsimulacijiprekrilstankimsteklomokna:
Takomoramovzakupvzetipravilo,dabotestiranjeprekrivanjadelovalo,ebohitrostnajhitrejegaobjektavigri,kateropomnoimoznaimasovnimkorakomvigri,manjaodvelikostinajmanjegaobjekta,kijelahkovpletenvtrk.
Kakospoenostavljenogeometrijouinkovitotestiratiprekrivanje(alipresek)znamenomdetekcijetrkovsstatinimiobjekti?ZgeometrijskooperacijoimenovanovsotaMinkowskega(Minkowskisum).Operacijaizdvehkonveksnihobjektovustvarinovobjekt,kiomogoadetekcijotrkatako,datestiramovsebovanostzgoljenetokeobjektavtemnovemobjektu.
VsotoMinkowskegadvehobjektov,torejnovobjekt,ustvarjenzanamendetekcijetrkov,dobimotako,daizhodieenegaobjektapostavimovvsetokedrugegaobjekta:
Sedaj,koimamotanovobjekt,lahkoprekrivanjeenostavnotestiramotako,davzamemoizhodie(sredie)krogainpogledamo,alijeletoznotrajteganovegaobjekta.eje,starealnaobjektavtrku.
Testiranjepreseka:
[email protected],draftv09,PeterPeer++ 44
Tatehnikanapovedujetrke,epredensezgodijo.ebilahkoprejnjitehnikirekli,dareujeproblemvsebovanja,lahkotejreemo,dareujeproblemvidnosti.Kertrkepredvidimo,lahkosimulacijoustreznopostavimovastrkainnadaljujemoodtam.Pritestiranjupresekaobjektraztegnemovsmeripotovanjameddvemaasoma.Takonaprimerkrogdobioblikokapsule.Enakonaredimotudizvsemiostalimiobjekti,kisolahkoudeleenivtrku.Natopogledamo,alisetiraztegnjeniobjektikjesekajoinese,potemlahkoizraunamoastrka.
Krog,kipredstavljanaobjekt,raztegnemovsmeripotovanjameddvemaasoma:
Takolahkorecimodokajilustrativnoprikaemoprihodnost.
Napovedovanjetrkameddvemakrogoma:
Zaizraunbopotrebneganekajmatematinegaznanja,zaimplementacijopakakenalgoritemiznumerinematematike[2].
SevedapalahkotuditukajzadetekcijotrkovsstatinimiobjektiuporabimooperacijovsotaMinkowskega.Vtemprimeruprej(pritestiranjuprekrivanja)omenjenatokaizhodiapostanedaljica,kipovezujeizhodiiobjektavasut1int2.Natolepogledamo,alisetadaljicasekaznovimobjektom,kismogadobilizvsotoMinkowskegaese,boprilodotrka:
Naprvipogledizgleda,datapristop,torejtestiranjepresekavsplonem,nimaproblemov.Vendarkogovorimoomrenihigrahlahkozaradizamujanjapaketkovprikomunikacijioperiramossvetom
[email protected],draftv09,PeterPeer++ 45
igre,kineodraadejanskostanje.Hkratipatapristoppredvideva,daseobjektgibljeskonstantnohitrostjo,brezpospeka,skozisimulacijskikorak.Tajenaelomareskratek,akljubtemujelahkotapredpostavkavnasprotjusfizikalnimmodelomigre.
KakodoseiasovnokompleksnostO(n)?
Enodgovorsmopodaliepridebatiografuscene,torejvsplonemzuporaborazdeljevanjaprostora.eimamorecimo15objektov,nasvetparazdelimozenostavnomreo,potemmoramozatrktestirativsakobjektvisticelicistrenutnoaktualnimobjektomtervseobjektevsosednjihcelicah:
Dadobimovpovprejuenobjektnacelico,karvosnovipodpiralinearnoasovnokompleksnost,se
moramoprizasnovimreedratipravila,dazaNobjektovna2Dscenipotrebujemovsaj
celicinvsaj celicna3Dsceni.
Alternativnametodazadoseganje(skoraj)linealneasovnekompleksnostitemeljinazrcaljenjunaosi(planesweep).Osnovnaidejazahteva,daobjekteprezrcalimonavsakoodosinaegasveta:
Natopodrobneje(?!)pogledamoleprimere,kjersepreslikaveistihobjektovsekajonavsehosehnaegasveta.
Iskanjepresekasetukajprevedenaproblemuinkovitegasortiranjapreslikavintakodoseemoskorajlinearenasdetekcijetrkov:preslikavenavsakiosisortiramoleenkrat,natopazaradikoherentnostiizokvirjavokvir(frame)(objektiostajajomeddvemaokvirjemanaskorajenakilokaciji)uporabimosortiranjezmehurki(bubblesort)nadvsemipreslikavami,kisovzadnjemokvirjupokvarileurejenozaporedje.
[email protected],draftv09,PeterPeer++ 46
Zzrcaljenjemnaosijepovezanteoremloitveneosi(separatingaxis),kipravi,daevprimeru,koimamoopravkazdvemakonveksnimaobjektoma,najdemoosnakateriseprojekcijitehdvehobjektovneprekrivata,potemsetudiobjektaneprekrivata.
(http://www.metanetsoftware.com/technique/tutorialA.html
NTutorialACollisionDetectionandResponse:
[Demo0:uinekrazlinegatrenjainkoeficientapronosti]
Slika1:definicijapotencialnihloitvenihosi
Demo2:projekcijapravokotnikanapoljubnoos
Demo3:uporabateoremazdvemaAABBkatlama(enakokotnazgornjisliki)
Demo5:uporabateoremapridetekcijitrkovAABBkatleinpravokotnegatrikotnika
Demo6:kajpavprimeruuporabeAABBkatleinkronegaobjekta?(dodatnaosjedefiniranakotvzporednicaosi,kipovezujesrediiobehobjektov)
Demo8:inkakovprimeruuporabeAABBkatleinpolnegakroga?(uporabimotudivseosi,kijihdefinirasrediekrogainogljiekatle,zaizraunjevanaleos,kipovezujesredieznajblijimogljiem)
Vendar,kakouinkovitonajtinajblijega?UporabimoVoronojeveregije(slika9,demo10),kisoregijeokolipoligona,objekta,kivsebujevsetokenajblijenekiznailki(robualiogliu,verteksu).
Opomba:majhni(tokasti)inizrednohitriobjektilahkopredstavljajoproblempriuporabiteorema!)
Odzivnatrk:
Grezakorak,kiveljazatejegaoddetekcijetrka.Vprimerudetekcijetrkastestiranjemprekrivanjemsmopokazali,kakosevrnemonanajblijedovoljenostanje,pritestiranjupresekapategaproblemanismoimeli.
Naosnoviizraunanegaasatrkainvektorjanormaletrka(onjembomodetalnejegovorilispodaj)lahkosedajizraunamopotrebenodziv,kisevedasledifizikalnemumodelusvetavigri.Vosnovitopomeni,damoramopoznatifizikalnepojmeinverzijahitrosti,gibalnakoliinaintudikoeficientpronosti.
Postopekzaodziv,kimoraustrezatirazlinimzahtevam,imatridele:prolog,trkinepilog.Dasozahtevelahkoresninozelorazline,zapiimotriilustrativneprimere:trkdvehkrogelbilijarda,raketazadaneskalo,liklahkoprehajaskoziposebnosteno.
Prolog:Natemmestuvemo,dajedotrkaprilo,vendarmogoebigabilotrebaignorirati(kotvzadnjemprimeruzgoraj),karpreverjamoravnovtemkoraku.Vprologulahkoproimotudidodatnedogodke,kotrecimozvoniefekt,enostavnospoiljanjemobvestilaodogodkuustreznemuobjektu.Znotrajpravegaobjektnousmerjenegastila,arhitektureigre,selahkonatotakenobjektodzovenasporoilo,kotmupae.
[email protected],draftv09,PeterPeer++ 47
Trk:Vtemkorakupostavimoobjektenatokotrka(izraunanovkorakudetekcijetrka)inizraunamonovehitrostinapodlagifizikevigri.Podkorakisoodvisnioduporabljenetehnikedetekcijetrkov:
Odzivobuporabitestiranjaprekrivanjajesestavljeniztirihpodkorakov:
1. Najdivektornormaletrka.2. Izraunajglobinopenetracije(prodiranjeobjektovenegavdrugega).3. Prestaviobjektanaglobinopenetracijeni,torejnatokostika.4. Izraunajnovehitrosti.
Vektornormalelahkouinkovitoizraunamotako,danajdemolokacijiobjektovtikpredsamimtrkom.Navadnopritemuporabimokarpostopekbisekcije.Sedajlahkozanormalouporabimokarpovezavomeddvemanajblijimatokamanaobehobjektih.Razultatitaknegapristopakiskanjunormalebododobri,elahkodobrolociramoobjektetikpredsamimtrkom,hkratipanobenobjektnimavelikegakotnegamomenta.
Ilustracijaizraunavektorjanormale:
Sevedajelahkoizraundvehnajblijihtokproblematien,kompleksen.InkrementalnialgoritemLinCanny[3]lahkonajdetaknitokizasploen,konveksenvolumen,sestavljenizpoligonov.Zakroge/kroglepalahkonormaloizraunamoenostavnokotrazlikomedsrediemaobehobjektovvtokitrka:
Vnaslednjempodkorakuizraunamoglobinopenetracije,dalahkoobjektaloimo,postavimonatokosamegatrka.Kotereeno,lahkotonaredimospostopkombisekcije,alternativenpostopekpajeGilbertJohnsonKeerthi(GJK)[4],kijeeposebejdoberobuporabikonveksnihobjektov.
SedajlahkopostavimoobjektanalokacijisamegatrkaterizraunamonovehitrostizuporaboNewtonovefizikeoziromapraviligre.
Odzivobuporabitestiranjapresekajevelikoenostavneji,sajvtemprimeruobjektadejanskonikolinepenetrirata.Takoizzgornjihpodkorakovizloimokoraka2in3terizraunamozgoljvektornormaleinnovihitrosti.
[email protected],draftv09,PeterPeer++ 48
Epilog:Vtemkorakumoramopropagirati,razposlativplivetrka,udejanitiposledicetrka.Tolahkovkljuujeunienjeenegaaliobehobjektov,predvajanjezvoka,prikazkodeipd.Kotvprologulahkotuditukajuporabimokonceptrapoiljanjasporoilustreznimobjektom.Kdajuporabitidoloenefekt,udejanitiposledicotrka,alivprologualivepilogu,jeodvisnoodokoliin,samezasnoveigre.
...???emnadaljerazloititudiizraunhitrostipotrku?!JA!
Odzivnatrk(breztrenja)dvehdelcev:
Linearenmomentdefiniramokotzmnoekskalarjamaseinvektorjahitrosti.Njegovodvodpoasujeenaksilinaobjekt(grezazapisdrugegaNewtonovegazakona):
(Zaveinoobjektovjemasakonstanta,zatolahkoletozapiemozunajodvodaintakodobimostandardenzapisdrugegaNewtonovegazakona: ).ezgornjoenabointegriramopoasu,doloigibanjeobjekta.OdtodimeenabiNewtonovaenabagibanja.Kointegriramosilonaobjektpoasu,torejdobimospremembovlinearnemmomentu(inhitrosti)vtemasu.
Velike,praktinotakojnjespremembevhitrostiselahkozgodijole,esosiletrkavelike.Siletrkasonavadnotakovelike,dadominirajonadvsemidrugimisilamimedtrkom.Vtaknihprimerihjesprejemljivo,daostalesileignoriramozakratekastrka.
Zintegracijozgornjeenabepoasutrajanjatrka,dobimoenabolinearnegaimpulznegamomenta:
Indeks1oznaujeprvidelec,kijeudeleenvtrku.Zoznaimovelikostipredtrkom,s+papotrku.Vektorimenujemolinearniimpulz,kijedejanskointegralsiletrkaezastrajanjatrka.Impulzpodakoliinolinearnegamomenta,kigaobjektpridobialiizgubimedtrkom.
KerNewtonovtretjizakonpravi,dajezavsakoakcijoenaka,anasprotnareakcija,lahkodirektnozapiemopodobnoenabozadrugidelec,kijeudeleenvtrku(skupnaspremembamomentovobehobjektovjeni,skupenlinearnimomentimatorejlastnost,daseohranja):
Naciljjesevedanajtihitrostiobehobjektovpotrku.Obezgornjienabilahkoreimo,elahkoizraunamoimpulz.Kerpredpostavljamotrkbreztrenja,lahkoimpulzzapiemopoenostavljenokotzmnoekskalarjainvektorjanormaletrka(slednjegasmoizraunalimalovijezgoraj):
[email protected],draftv09,PeterPeer++ 49
etoenabovstavimovzgornjidve,dobimodveenabiintrinaznanke(,
, ).Torejpotrebujemozaizraunetretjoenabo,kijodobimozopazovanjemfizinegaobnaanjarealnihobjektovpritrkupozornismonaperiododeformacijeinperiodoobnovitve:
Naatretjaenababoaproksimacijaodzivamaterialarealnihobjektovmedtrkom.Splonejiprimertrka(kjerobjektanepotujetadirektnoedenprotidrugemu):
Vzgornjemprimeru(obtrkubreztrenja)tudi,eobjektazakratekasostanetavkontaktu(kernepotujetadirektnoedenprotidrugemu),bostaenostavnozdrsnilaedenmimodrugegabrezzmanjanehitrosti.Naatretjaenabatoupotevaindefinirarelacijomedkomponentaminormalehitrostiobjektovpredinpotrku:
Skalarimenujemokoeficientpronosti,kijepovezanzohranjanjemaliizgubokinetineenergijemedtrkom.Spomnimose,dajeskupnaenergijaenakavsotikinetineinpotencialneenergije,kisepravtakoohranja(kotlineranimoment).eje=1,potemjetrkpovsemelastien,karpomeni,dajevsotakinetinihenergijobehdelcevenakapredinpotrku.eje=0,potemjetrkpovsemplastien,torejobjektnimaperiodeobnovitve,izgubakinetineenergijepajemaksimalna.Vrealnostijefunkcijalastnostimaterialov,izkaterihsoobjektinarejeni.Takojerecimotakoeficientpriblino0,85vprimerutrkatenisloparjainogice,vprimerutrkapovsemmehkekoarkakeogezigriempaskorajni.
Sedajlahkonapodlagizapisanihtrehenabstremineznankamiizraunamolinearniimpulz:
[email protected],draftv09,PeterPeer++ 50
Koslednjegaizraunamo,damotovrednostvdrugointretjoenabo,delimozmasoobjektainkonnodobimohitrostipotrku.
6.Vhodnenaprave
Tradicionalnivmesnikizainterakcijozigroso:tipkovnica,mika,igralniploek(gamepad),igralnapalica(joystick),igralnivolan.Vednoboljpasevigrahuporabljajotudidrugivmesniki,recimo:kamera,pespekometri,dotikovnivmesnikipd.Predvsemnaslednjegabomomidalivelikpoudarek.
Dazagotavljamokonsistentenvhodinstemdajemouporabnikuboljiobutekodzivnostiinnadzora,moramoprebrativhodenkratnavsakoupodobljenosliico(frame)inshranititevrednostizatrajanjecelotnegapostopkazatosliico.Vnasprotnemprimeru,ebispraevalipostanjunapraveprepogostoalipremalopogosto,bilahkoprilidozelonekonsistentnihrezultatovznotrajigre.Kotsmoseenauili,navadnopreberemovhodnazaetkuglavnezanke,predkorakomsimulacije.Takominimiziramoreakcijskiasmedsamimzajetjemvhodainreakcijonazahtevo.
Dodatniviri:
[1]http://www.flipcode.com/archives/Building_a_3D_Portal_EngineIssue_09_2D_Portal_Rendering.shtml[2]NumericalRecipesinC:http://www.fizyka.umk.pl/nrbook/bookcpdf.html,http://www.nr.com/[3]LinCanny...???(VanDerBergen03)[4]GilbertJohnsonKeerthi...???(VanDerBergen03)
Naloganavajah:
izrisvsehelementovprvegazaslona(ebrezinterakcije,postavitevelementovshranjenadirektnovkodi)
loitevpogonaigre,animacija(neobveznanaloga) narediinteraktivnosceno:spreminjanjesceneprekodotikovinpremikanjestvarinascenis
pomojofizikalnegapogona(recimopremikanjepoenabizahitrost)
integracijatrkov(neobveznanaloga).