Stacjonarne wykład3


PROGRAMOWANIE SYMULACJI
FIZYKI W RZECZYWISTYM CZASIE
PRZYKAADY SIA ZEWNTRZNYCH:
óðSiÅ‚a ciężkoÅ›ci
5ØmÜ = -5ØŽÜ5؈Ü5Ø›Ü
óðSiÅ‚a oporu
5ØmÜ = -5ØÅšÜ5ØÜ
óðSiÅ‚a Coulomba
5ØmÜ = 5ØÅ‚Ü5ØlÜ
óðSiÅ‚a magnetyczna
5ØmÜ = 5ØÅ‚Ü5ØÜ × 5ØiÜ
SIAY KONTAKTOWE
óðReakcja na kontakt jednego obiektu z drugim
óðIII Zasada Dynamiki Newtona
Wektor normalny
do powierzchni
Jego zwrot określa
kierunek
5ØŹÜ
powierzchni
 przód  tył
RÓWNANIE PAASZCZYZNY
5ØÅ¹Ü " 5Ø“Ü - 5Ø“Ü5ØÎß = 5ØÎß
5ØÅ¹Ü - wektor normalny do powierzchni
5Ø“Ü5ØÎß - dowolny punkt leżący na powierzchni
Punkty leżące przed płaszczyzną:
5ØÅ¹Ü " 5Ø“Ü - 5Ø“Ü5ØÎß < 5ØÎß
W programie sprawdzamy z pewnym marginesem 5Ø:ß:
5ØÅ¹Ü " 5Ø“Ü - 5Ø“Ü5ØÎß + 5Ø:ß < 5ØÎß
Punkty leżące za płaszczyzną:
5ØÅ¹Ü " 5Ø“Ü - 5Ø“Ü5ØÎß > 5ØÎß
RÓWNANIE SFERY
5Ø“Ü - 5Ø“Ü5ØzÜ = 5ØyÜ
5Ø“Ü5ØzÜ - Å›rodek sfery
R - promień sfery
wektor normalny w punkcie 5Ø“Ü5ØÎß na sferze :
5Ø“Ü5ØÎß-5Ø“Ü5ØzÜ
5ØÅ¹Ü =
5Ø“Ü5ØÎß-5Ø“Ü5ØzÜ
Punkty leżące wewnątrz sfery:
5Ø“Ü - 5Ø“Ü5ØzÜ < 5ØyÜ
Punkty leżące na zewnątrz sfery:
5Ø“Ü - 5Ø“Ü5ØzÜ > 5ØyÜ
KONTAKT PUNKTU MATERIALNEGO Z
NIERUCHOM POWIERZCHNI
5Ø[Ü - wektor normalny do powierzchni w punkcie
penetracji
5ØmÜ = 5ØmÜ%" + 5ØmÜÄ„"
5Ø9Ü%" Ä„" 5Ø[Ü , 5Ø9ÜÄ„" %" 5Ø[Ü
5Ø9ÜÄ„" = 5Ø9Ü " 5Ø[Ü 5Ø[Ü jest zrównoważone przez
siÅ‚Ä™ reakcji powierzchni 5ØEÜ = -5Ø9ÜÄ„"
5Ø9Ü%" = 5Ø9Ü - (5Ø9Ü " 5Ø[Ü)5Ø[Ü jest zmniejszane przez
siłę tarcia
5ØcÜ
5ØGÜ = -5Øß 5Ø9Ü " 5Ø[Ü
5ØcÜ
TRYBOLOGIA
KLASYCZNE PRAWA TARCIA SUCHEGO
óðwspółczynnik tarcia nie zależy od powierzchni styku -
Leonardo da Vinci badał tarcie liny zwiniętej w zwój,
a następnie rozciąganej po przyłożeniu siły
óðKoniec XVII wieku: Amontos podaÅ‚ prawo tarcia
suchego: T = źN
óðKoniec XVIII wieku: Coulomb stwierdziÅ‚, że tarcie
kinetyczne nie zależy od prędkości ślizgania się;
T = źN + A (człon adhezyjny)
óðPózniejsze teorie tarcia (adhezyjne) sÄ… bardziej
złożone niż klasyczne (chropowatościowe)
1939 r. Bowden i Tabor  tarcie pochodzi od
ścinania połączeń adhezyjnych
óðWspółczesne modele tarcia to symulacje
komputerowe metodami dynamiki molekularnej
ODBICIE OD POWIERZCHNI
Przed zderzeniem:
5ØcÜ = 5ØcÜ%" + 5ØcÜÄ„"
5ØcÜ%" Ä„" 5Ø[Ü , 5ØcÜÄ„" %" 5Ø[Ü
Po zderzeniu:
5ØcÜ = 5ØcÜ%" - 5Øß5ØcÜÄ„"
0 d" 5Øß d" 1
5Øß = 1  zderzenie elastyczne
5Øß = 0  zderzenie doskonale nieelastyczne
IMPLEMENTACJA NIERUCHOMYCH
POWIERZCHNI OGRANICZAJCYCH RUCH
óðDetekcja kolizji z powierzchniÄ…, tzn. czy punkt
zbliżył się do powierzchni na odległość mniejszą
niż  promień punktu
óðWyznaczenie punktu zderzenia z powierzchniÄ…
(punkt penetracji)
óðWyznaczenie wektora normalnego do powierzchni
w punkcie penetracji
óðRealizacja kolizji
KLASA OBSZAR ZABRONIONY
(J.MATULEWSKI I INNI)
template class TObszarZabroniony
{
private:
T wspolczynnikOdbicia;
T wspolczynnikTarcia;
public:
TObszarZabroniony(T wspolczynnikOdbicia,T
wspolczynnikTarcia);
T PobierzWspolczynnikOdbicia();
T PobierzWspolczynnikTarcia();
virtual bool CzyWObszarzeZabronionym(
TWektor polozenie,
TWektor poprzedniePolozenie,
T margines,
TWektor* normalna) = 0;
};
PODAOGA
bool CzyWObszarzeZabronionym(Wektor polozenie,
Wektor poprzedniePolozenie,
double margines,Wektor* normalna)
{
bool wynik=(polozenie.Y if(wynik && normalna!=NULL) *normalna=Wektor(0,1,0);
return wynik;
}
KULA
bool CzyWObszarzeZabronionym(Wektor polozenie,
Wektor poprzedniePolozenie,
double margines,Wektor* normalna)
{
Wektor wektorPromienia=polozenie-srodek;
bool wynik=wektorPromienia.Dlugosc() if(wynik && normalna!=NULL)
{
*normalna=wektorPromienia;
normalna->Normuj();
}
return wynik;
}
UKAADY
DWUWYMIAROWE
óðOddziaÅ‚ywanie z najbliższymi sÄ…siadami nie
wystarcza, aby nadać sztywność płachcie
óðNależy używać modelu dwuwymiarowego
z ośmioma najbliższymi sąsiadami
óðMożna też robić modele trójwymiarowe ( bryÅ‚ki
żelowe ), ale w symulacjach czasu rzeczywistego mało
praktyczne
CONTROL POINT
DEFORMATIONS
KRZYWE BEZIERA
óðOpracowane w latach 60 niezależnie przez Pierre'a
Béziera (inżyniera firmy Renault) oraz Paula de
Casteljau (Citroën). Przez dÅ‚ugi okres objÄ™te Å›cisÅ‚Ä…
tajemnicą służbową,  wyciekły w roku 1971.
5Ø[Ü 5Ø[Ü
5ØeÜ 5Ø`Ü = 5ØeÜ5ØVÜ5Ø5Ü5ØVÜ (5Ø`Ü)
5ØVÜ=0
5Ø`Ü " 0,1 5ØeÜ0, 5ØeÜ1, & , 5ØeÜ5Ø[Ü - ustalone punkty
5Ø[Ü
5Ø5Ü5ØVÜ (5Ø`Ü)  wielomiany Bernsteina ( punkty kontrolne )
óðn  okreÅ›la stopieÅ„ krzywej Beziera
óðKażdy punkt na krzywej może być obliczony jako
suma ważona punktów kontrolnych
óðWagi (blending functions) okreÅ›lajÄ… krzywÄ…, która leży
w otoczce wypukłej wyznaczonej przez wielokąt
zbudowany z punktów kontrolnych
KRZYWE SKLEJANE (B-SPLINE)
óðKrzywe które sÄ… kawaÅ‚kami krzywych Beziera
sklejonymi za pomocą jednoznacznych przepisów
zapewniających gładkość krzywych w punktach
sklejenia
óðPunkty kontrolne
óðPrzedziaÅ‚ [0,1] jest podzielony na kawaÅ‚ki,
punkty separacji nazywamy węzłami
KRZYWE NURBS
óðNon Uniform Rational B-Spline
óðWÄ™zÅ‚y nie sÄ… równomiernie rozmieszczone
óðAby zdefiniować konkretnÄ… krzywÄ… NURBS
trzeba podać stopień sklejanych wielomianów,
punkty kontrolne oraz węzły i ich wagi
(określająca jak blisko krzywa leży punktów
kontrolnych).
óðRaczej Hollywood Physics&
KOLIZJE Z UDZIAAEM
PUNKTÓW MATERIALNYCH
DWA PODSTAWOWE PROBLEMY KOLIZJI:
óðDETEKCJA KOLIZJI (collision detection) 
problem geometryczny, który prowadzi do
ustalenia wszystkich zderzeń obiektów
óðODPOWIEDy KOLIZJI (collision response) 
problem fizyczny, który wymaga wyliczenia
parametrów ruchu obiektów po zderzeniu
óðObydwa problemy sÄ… ze sobÄ… Å›ciÅ›le powiÄ…zane
óðRozwiÄ…zanie problemu geometrycznego bywa
często trudniejsze niż fizycznego (głównie ze
względu na skwantowany czas)
ALGORYTMY DETEKCJI KOLIZJI
óða posteriori (dyskretne)
Robimy krok czasowy i sprawdzamy, czy obiekty
zachodzą na siebie. Tworzymy listę przekrywań.
Potem poprawiamy scenÄ™ (fixing). Zwykle nie
potrzebujemy pełnej fizyki.
óða priori (ciÄ…gÅ‚e)
Obliczamy czas zderzenia i przewidujemy
trajektoriÄ™ zderzeniowÄ…. Wymaga to modelowania
pełnej fizyki problemy. Obiekty nigdy nie przykryją
siÄ™.
OPTYMALIZACJA DETEKCJI KOLIZJI
óðSprawdzanie potencjalnych kolizji każdego obiektu z
każdym innym jest czasochłonne, zwłaszcza dla
obiektów o złożonych kształtach
óðMetody optymalizacji:
ð Badanie zwiÄ…zków czasowych (temporal coherence)
obiektów
ð Przycinanie parami (pairwise pruning)
ð ÅšcisÅ‚a detekcja kolizji parami
ð Przycinanie z wyprzedzeniem (a priori pruning)
ð Przestrzenne partycjonowanie (spatial partitioning)
BADANIE ZWIZKÓW CZASOWYCH
OBIEKTÓW
óðKonfiguracja obiektów zmienia siÄ™ w ciÄ…gu
jednego kroku czasowego w niewielkim stopniu,
niektóre obiekty w ogóle nie poruszają się
óðObliczenia dla poprzedniego kroku czasowego
mogą być wykorzystane w następnym kroku
óðWyznaczamy pary obiektów, które majÄ… szansÄ™
zderzyć się w najbliższym czasie
ALGORYTM NAJBLIŻSZYCH ELEMENTÓW
(CLOSEST FEATURES ALGORITHM)
óðMing Lin, John Canny, Berkeley 1996
óðUstala parÄ™ najbliższych elementów
(wierzchołków, krawędzi lub ścian) pomiędzy
dwoma ruchomymi wypukłymi wielościanami
óðSkupia siÄ™ tylko na tej parze i wyznacza moment
kolizji, gdy elementy pary zbliża się do siebie na
odległość bliższą od pewnego założonego
marginesu
ALGORYTM  ZAMIATAJ I PRZYCINAJ
(SWEEP & PRUNE)
óðWyznaczamy ograniczajÄ…ce pudeÅ‚ka wokół
obiektów
óðKiedy pudeÅ‚ka przecinajÄ… siÄ™, przeprowadzamy
dokładniejszą detekcję kolizji
óð Przecinania pudeÅ‚ek sÄ… wyznaczane poprzez
sortowanie punktów startowych i punktów
końcowych pudełek wzdłuż każdej osi
óðMożemy wyznaczyć, które pudeÅ‚ka majÄ… szansÄ™
przeciąć się w najbliższym czasie
PRZYCINANIE PARAMI
óðReprezentujemy obiekt za pomocÄ… zbioru
prymitywów (np. trójkątów albo splajnów)
óðSprawdzamy kolizje trójkÄ…tów parami, ale
wcześniej poprzez pudełka ograniczające (sfery)
typujemy pary, które mają szanse na kolizje
ÅšCISAA DETEKCJA KOLIZJI PARAMI
óðNajszybciej dziaÅ‚ajÄ… algorytmy detekcji dla
zbiorów wypukłych:
DETEKCJA KOLIZJI DWÓCH TRÓJKTÓW
óðSprawdzamy dwadzieÅ›cia pÅ‚aszczyzn
utworzonych z wierzchołków dwóch trójkątów
óðJeżeli którakolwiek z tych pÅ‚aszczyzn jest
płaszczyzną separacji, to trójkąty nie zderzą się
óðNieprawdziwe dla trójkÄ…tów, które leżą na
wspólnej płaszczyznie
GILBERT JOHNSON KEERTHI DISTANCE
ALGORITHM
óðSuma Minkowskiego
óðWarunek przÄ™ciÄ™cia:
A-B  CSO (Configuration Space Obstacle)
óð Najbardziej oddalony punkt zbioru wypukÅ‚ego A w
kierunku v (support mapping):
óðPÅ‚aszczyzna/oÅ› rozdzielajÄ…ca (separating plane/axix)
óðPÅ‚aszczyzna sÅ‚abo rozdzielajÄ…ca (weakly sep. p./a.)
ALGORYTM GJK
óðZnalezć CSO dla dwóch obiektów A i B oraz
sprawdzić, czy zawiera początek układu
współrzędnych
óðKażdy z wektorów CSO ma reprezentacjÄ™:
óðAlgorytm nie operuje konstrukcjami
geometrycznymi, tylko support mappings
PRZYCINANIE Z WYPRZEDZENIEM
óðÅšledzimy 20 pÅ‚aszczyzn dla dwóch trójkÄ…tów
w czasie
óðMetodami analitycznymi wyznaczamy momenty
oraz punkty kolizji
PARTYCJONOWANIE PRZESTRZENNE
óðDzielimy przestrzeÅ„ na proste komórki (cells)
óðJeżeli obiekty nie sÄ… w tej samej komórce, to nie
prawdopodobnie nie zderzą się w następnym
kroku czasowym
óðAlgorytmy mogÄ… używać drzewek do
przeszukiwania
SZTUCZKI W GRACH WIDEO DOTYCZCE
DETEKCJI KOLIZJI
óðSprites
óðOgraniczenia i oszustwa dotyczÄ…ce kolizji
óð CzuÅ‚ki (GSA)


Wyszukiwarka

Podobne podstrony:
Stacjonarne wykład5
BO II stacjonarne wykład nr 10
BO II stacjonarne wykład nr 01
BO II stacjonarne wykład nr 02
BO II stacjonarne wykład nr 11
BO II stacjonarne wykład nr 09
BO II stacjonarne wykład nr 04
BO II stacjonarne wykład nr 07
Psychologia marketingu 11 stacjonarne wyklad 1 Uzytecznosc
BO II stacjonarne wykład nr 03
BO II stacjonarne wykład nr 08
BO II stacjonarne wykład nr 08
wykład 13 i 14 stacjonarne
Psychologia ekonomiczna stacjonarne 10 wyklad Posiadanie i szczescie
wykład 2 stacjonarne
wykład 6 stacjonarne
MiBM wykłady stacjonarne
PPA wykład 1 stacjonarne

więcej podobnych podstron