of 20 /20
TINR @ FRI, draft v09, Peter Peer ++ 31 Predavanje #3 (premikanje) Aktualne škatlice: arhitektura igre o arhitektura pogona matematika o osnovna linearna algebra scena o graf scene (scene graph) o enostavni grafi 2d fizika o delci o premikanje trki (selektivno samo enostavni pojmi) o vrste teles delci z osmi poravnane ploskve z osmi poravnani pravokotniki (AABB) o detekcija trkov delecdelec delecAABB AABBAABB o odboj po trku vrnitev na najbližje dovoljeno stanje inverzija hitrosti gibalna količina koeficient prožnosti vhodne naprave o stanje naprave o tradicionalni vmesniki

TINR Skripta Predavanj 3

Embed Size (px)

DESCRIPTION

games

Text of TINR Skripta Predavanj 3

  • [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).