torsdag, oktober 11, 2007

4 timers fysik mere....

Hvis man skal lære noget af hvad vi har lavet, så er det at man skal stole på og lytte til dem som faktisk har implementeret det som virker! Sorry, jesper ;-) Men det må du da give os ret i.

Nå, for at gøre en lang historie kort, så efter at vi havde fået noget hjælp fra instruktorene på at løse kollisions detection så skulle vi lige bruge et hint mere, men kunne vi ikke finde OE gutterne. Derfor gik vi til Jesper og det var så her.. hehe .. det hele begyndte at blive underligt.

Den model som vi skulle have implementeret var at tjekke hver constraint og finde alle de faces som sådan en constraint den intersecter og så efterfølgende flytte punkterne hvis et af punkterne lå bag efter noget geometry.

Det som vi først fik implementeret efter at have snakket med jesper var at kun kigge på partiklerne og så finde det face som ligger tættest på denne partikel og så se om vi ligger bagved. Dette virkede ikke specielt godt og vi fik brugt det meste af en dag på dette... Men til gengæld fik vi lavet 2 metoder på OE frameworked som var til stor hjælp. Det var IsInsode på en Box og ProjectToPlane og DistanceToPoint på et Face givet et punkt. Man kan håbe af det kommer med i en patch senere :)

Nå, 2 version af vores kollisions test var så at bruge både oldpos og pos af vores partikler til at se om vi var kommet igennem et face. Derved kunne vi jo se om vi var kommet igennem noget siden vores sidste position... Dette skulle jo gerne virke, der er dog det special case når oldpos og pos ligger under geometrien, så vil de bare falde og derved trække resten af modellen med ned.

Denne anden version var så her vi var nået og stadig havde en underlig opførsel. Men fordi vi tjekkede om linien mellem oldpos og pos intersectede med et stykke geometry brugte den allerede lavede metode Intersection på face som ikke kunne give noget svar hvis vi var tættere på end EPSILON... så havde vi ofte ikke nogen intersection selvom vi lå lige på geometrien... Denne fejl tog heller ikke særlig lang tid at finde....

Vi lavede rigtig mange test med om vi kunne constrain os selv på et plan med en normal der pegede lige om og ganske rigtigt så kunne vi sagtens det. Der lå vi rigtig pænt og kunne navigere. Men det kunne vi ikke på geometri faces.... pga ovenstående regnefejl med EPSILON. :-/

Nedenfor ses 2 screenshots af at vores model er constraint af den level nedenunder. Det viser også at vores collision detection virker... men der er huller... det ville kunne ses hvis vi havde en video af det.... det må vi få lavet...



Ingen kommentarer: