Dynamika ciała miękkiego
Dynamika ciał miękkich to dziedzina grafiki komputerowej , która koncentruje się na wizualnie realistycznych symulacjach fizycznych ruchu i właściwości odkształcalnych obiektów (lub ciał miękkich ). Aplikacje są głównie w grach wideo i filmach. W przeciwieństwie do symulacji ciał sztywnych , kształt ciał miękkich może się zmieniać, co oznacza, że względna odległość dwóch punktów na obiekcie nie jest stała. Chociaż względne odległości punktów nie są ustalone, oczekuje się, że ciało do pewnego stopnia zachowa swój kształt (w przeciwieństwie do płynu ). Zakres dynamiki ciał miękkich jest dość szeroki i obejmuje symulację miękkich materiałów organicznych, takich jak mięśnie, tłuszcz, włosy i roślinność, a także innych materiałów odkształcalnych, takich jak odzież i tkaniny. Ogólnie rzecz biorąc, metody te zapewniają jedynie wizualnie wiarygodne emulacje, a nie dokładne symulacje naukowe/inżynieryjne, chociaż istnieje pewne skrzyżowanie z metodami naukowymi, szczególnie w przypadku symulacji metodą elementów skończonych. Kilka silników fizycznych dostarcza obecnie oprogramowanie do symulacji ciał miękkich.
Odkształcalne ciała stałe
Symulacja objętościowych ciał stałych miękkich może być realizowana przy użyciu różnych podejść.
Modele sprężynowe/masowe
W tym podejściu ciało jest modelowane jako zbiór punktowych mas (węzłów) połączonych idealnymi nieważkimi sprężystymi sprężynami spełniającymi pewien wariant prawa Hooke'a . Węzły mogą pochodzić albo z krawędzi dwuwymiarowej siatki wielokątnej reprezentującej powierzchnię obiektu, albo z trójwymiarowej sieci węzłów i krawędzi modelujących wewnętrzną strukturę obiektu (lub nawet z jednowymiarowego systemu linki, jeśli symulowana jest na przykład lina lub kosmyk włosów). Można dodać dodatkowe sprężyny między węzłami lub zmodyfikować zasadę działania sprężyn, aby uzyskać pożądane efekty. Stosowanie Drugie prawo Newtona do mas punktowych, w tym siły przyłożone przez sprężyny i wszelkie siły zewnętrzne (spowodowane kontaktem, grawitacją, oporem powietrza, wiatrem itd.) Daje układ równań różniczkowych dla ruchu węzłów, który jest rozwiązany za pomocą standardowych schematów numerycznych do rozwiązywania ODE . Renderowanie trójwymiarowej sieci masy-sprężyny jest często wykonywane przy użyciu deformacji swobodnej , w której renderowana siatka jest osadzona w sieci i zniekształcona, aby dostosować się do kształtu sieci w miarę jej ewolucji. Zakładając, że wszystkie masy punktów są równe zero, można otrzymać Metoda rozciągniętej siatki miała na celu rozwiązanie kilku problemów inżynierskich związanych z zachowaniem elastycznej siatki. Są one czasami nazywane modelami masowo-sprężynowo-tłumiącymi . W ciałach miękkich pod ciśnieniem model sprężyna-masa jest połączony z siłą nacisku opartą na prawie gazu doskonałego .
Symulacja elementów skończonych
Jest to bardziej dokładne fizycznie podejście, które wykorzystuje szeroko stosowaną metodę elementów skończonych do rozwiązywania równań różniczkowych cząstkowych , które rządzą dynamiką elastycznego materiału . Ciało jest modelowane jako trójwymiarowe elastyczne kontinuum poprzez rozbicie go na dużą liczbę elementów bryłowych, które pasują do siebie, oraz rozwiązywanie naprężeń i odkształceń w każdym elemencie za pomocą modelu materiału. Elementy są zazwyczaj czworościenne, a węzły są wierzchołkami czworościanów (istnieją stosunkowo proste metody tetraedryzować trójwymiarowy region ograniczony siatką wielokątów w czworościany , podobnie jak dwuwymiarowy wielokąt można triangulować w trójkąty). Odkształcenie (które mierzy lokalne odkształcenie punktów materiału od ich stanu spoczynku) jest określane ilościowo przez tensor odkształcenia . Naprężenie (które mierzy siły lokalne na jednostkę powierzchni we wszystkich kierunkach działających na materiał) jest określane ilościowo za pomocą tensora naprężenia Cauchy'ego . Biorąc pod uwagę bieżące lokalne odkształcenie, lokalne naprężenie można obliczyć za pomocą uogólnionej postaci prawa Hooke'a : gdzie jest tensorem sprężystości , koduje właściwości materiału (sparametryzowane w elastyczności liniowej dla materiału izotropowego przez Poissona i moduł Younga ).
Równanie ruchu węzłów elementu uzyskuje się przez całkowanie pola naprężeń nad każdym elementem i odniesienie go, za pomocą drugiego prawa Newtona , do przyspieszeń węzłów.
Pixelux (twórcy systemu Digital Molecular Matter ) stosują podejście oparte na elementach skończonych do swoich miękkich ciał, używając czworościennej siatki i przekształcając tensor naprężenia bezpośrednio w siły węzłowe. Renderowanie odbywa się za pomocą formy swobodnej deformacji .
Metody minimalizacji energii
Podejście to jest motywowane zasadami wariacyjnymi i fizyką powierzchni, które nakazują, aby ograniczona powierzchnia przybrała kształt, który minimalizuje całkowitą energię odkształcenia (analogicznie do bańki mydlanej ). Wyrażając energię powierzchni w kategoriach jej lokalnego odkształcenia (energia wynika z połączenia rozciągania i zginania), lokalna siła działająca na powierzchnię jest podawana przez różniczkowanie energii względem położenia, dając równanie ruchu, które może rozwiązać w standardowy sposób.
Dopasowanie kształtu
W tym schemacie do modelu przykładane są siły karne lub wiązania, aby doprowadzić go do pierwotnego kształtu (tj. materiał zachowuje się tak, jakby miał pamięć kształtu ). Aby zachować pęd, należy odpowiednio oszacować obrót ciała, na przykład za pomocą rozkładu biegunowego . Aby przybliżyć symulację elementów skończonych, dopasowanie kształtu można zastosować do sieci trójwymiarowych i połączyć wiele ograniczeń dopasowania kształtu.
Deformacja oparta na sztywnym ciele
silnik fizyki ciała sztywnego , modelujący ruch ciała miękkiego za pomocą sieci wielu sztywnych ciał połączonych więzami i wykorzystujący (na przykład) skórowanie matrycowo-paletowe do generowania siatki powierzchniowej do renderowania. Jest to podejście stosowane do deformowalnych obiektów w Havok Destruction .
Symulacja tkaniny
W kontekście grafiki komputerowej symulacja tkaniny odnosi się do symulacji miękkich ciał w postaci dwuwymiarowych elastycznych membran continuum, to znaczy w tym celu rzeczywistą strukturę rzeczywistej tkaniny na poziomie przędzy można zignorować (chociaż modelowanie tkaniny na poziomie przędzy została wypróbowana). Dzięki renderowania może to stworzyć wizualnie wiarygodną emulację tekstyliów i odzieży , używane w różnych kontekstach w grach wideo, animacjach i filmach. Może być również używany do symulacji dwuwymiarowych arkuszy materiałów innych niż tekstylia, takich jak odkształcalne panele metalowe lub roślinność. W grach wideo jest często używany do zwiększenia realizmu animowanych postaci w ubraniach .
Symulatory tkaniny są generalnie oparte na modelach masa-sprężyna , ale należy dokonać rozróżnienia między solwerami opartymi na sile i pozycji.
Tkanina oparta na sile
Model masa-sprężyna (uzyskany z wielokątnej reprezentacji siatki tkaniny) określa wewnętrzne siły sprężystości działające na węzły w każdym kroku czasowym (w połączeniu z grawitacją i przyłożonymi siłami). Drugie prawo Newtona podaje równania ruchu, które można rozwiązać za pomocą standardowych solwerów ODE . Stworzenie materiału o wysokiej rozdzielczości z realistyczną sztywnością nie jest jednak możliwe przy użyciu prostych solwerów jawnych (takich jak całkowanie Eulera w przód ), chyba że krok czasowy jest zbyt mały dla aplikacji interaktywnych (ponieważ jak dobrze wiadomo [ potrzebne źródło ] , jawne integratory są numerycznie niestabilne dla wystarczająco sztywnych systemów). W związku z tym solwery niejawne , wymagające rozwiązania dużego rzadkiego systemu macierzowego (poprzez np. metodę gradientu sprzężonego ), co samo w sobie może być również trudne do osiągnięcia przy interaktywnych szybkościach klatek. Alternatywą jest użycie jawnej metody o niskiej sztywności, z ad hoc w celu uniknięcia niestabilności i nadmiernego rozciągania (np. korekty ograniczające odkształcenia).
Dynamika oparta na pozycji
Aby uniknąć konieczności stosowania drogiego, niejawnego rozwiązania systemu ODE , wiele symulatorów tkanin działających w czasie rzeczywistym (zwłaszcza PhysX , Havok Cloth i Maya nCloth ) wykorzystuje dynamikę opartą na pozycji (PBD), podejście oparte na relaksacji ograniczeń. Model masa-sprężyna jest przekształcany w układ więzów, który wymaga, aby odległość między połączonymi węzłami była równa odległości początkowej. Ten system jest rozwiązywany sekwencyjnie i iteracyjnie, poprzez bezpośrednie przesuwanie węzłów w celu spełnienia każdego ograniczenia, aż do uzyskania wystarczająco sztywnej tkaniny. To jest podobne do A Gaussa-Seidela niejawnego systemu macierzowego dla modelu masa-sprężyna. Należy jednak uważać, aby rozwiązać ograniczenia w tej samej kolejności w każdym kroku czasowym, aby uniknąć fałszywych oscylacji i upewnić się, że ograniczenia nie naruszają zasady liniowego i kątowego . Można zastosować dodatkowe ograniczenia pozycji, na przykład, aby utrzymać węzły w pożądanych obszarach przestrzeni (na przykład wystarczająco blisko animowanego modelu) lub aby zachować ogólny kształt ciała poprzez dopasowanie kształtu.
Wykrywanie kolizji obiektów odkształcalnych
Realistyczna interakcja symulowanych miękkich obiektów z ich otoczeniem może być ważna dla uzyskania wizualnie realistycznych wyników. Samoprzecinanie się tkaniny jest ważne w niektórych zastosowaniach dla akceptowalnie realistycznej symulowanej odzieży. Jest to trudne do osiągnięcia przy interaktywnych szybkościach klatek, szczególnie w przypadku wykrywania i rozwiązywania kolizji własnych i wzajemnych kolizji między dwoma lub większą liczbą odkształcalnych obiektów.
Wykrywanie kolizji może być dyskretne/a posteriori (co oznacza, że obiekty są przesuwane w czasie przez określony z góry przedział, a następnie wszelkie penetracje są wykrywane i rozwiązywane) lub ciągłe/a priori (obiekty są przesuwane tylko do momentu wystąpienia kolizji, a kolizja jest obsługiwane przed kontynuowaniem). Pierwsza jest łatwiejsza do wdrożenia i szybsza, ale prowadzi do niewykrycia kolizji (lub wykrycia fałszywych kolizji), jeśli obiekty poruszają się wystarczająco szybko. Systemy czasu rzeczywistego na ogół muszą wykorzystywać dyskretne wykrywanie kolizji, z innymi ad hoc, aby uniknąć niewykrywania kolizji.
Wykrywanie kolizji między tkaniną a obiektami środowiskowymi z dobrze zdefiniowanym „wnętrzem” jest proste, ponieważ system może jednoznacznie wykryć, czy wierzchołki i powierzchnie siatki tkaniny przecinają ciało i odpowiednio je rozwiązać. Jeśli dobrze zdefiniowane „wnętrze” nie istnieje (np. w przypadku kolizji z siatką, która nie tworzy zamkniętej granicy), „wnętrze” można skonstruować poprzez wyciągnięcie. Wzajemne lub samozderzenia ciał miękkich zdefiniowanych przez czworościany są proste, ponieważ sprowadzają się do wykrywania kolizji między bryłowymi czworościanami.
Jednak wykrywanie kolizji między dwoma wielokątnymi tkaninami (lub kolizji tkaniny z samą sobą) poprzez dyskretne wykrywanie kolizji jest znacznie trudniejsze, ponieważ nie ma jednoznacznego sposobu lokalnego wykrycia po pewnym czasie, czy węzeł tkaniny, który przeniknął, znajduje się na „ złą" stronę czy nie. Rozwiązania obejmują albo wykorzystanie historii ruchu tkaniny w celu ustalenia, czy wystąpiło zdarzenie przecięcia, albo wykonanie globalnej analizy stanu tkaniny w celu wykrycia i rozwiązania samoprzecięć. Pixara przedstawił metodę wykorzystującą globalną analizę topologiczną przecięć siatek w przestrzeni konfiguracyjnej do wykrywania i rozwiązywania samoprzenikania się tkaniny. Obecnie jest to generalnie zbyt kosztowne obliczeniowo dla systemów tkaniny czasu rzeczywistego.
Aby skutecznie wykrywać kolizje, prymitywy, które z pewnością nie kolidują, muszą zostać zidentyfikowane tak szybko, jak to możliwe i odrzucone, aby uniknąć marnowania czasu. Aby jakaś forma schematu przestrzennego , aby uniknąć testu brutalnej siły kolizji. Stosowane podejścia obejmują:
- Ograniczające hierarchie objętości ( drzewa AABB , drzewa OBB , drzewa sferyczne)
- Siatki, albo jednolite (wykorzystujące mieszanie dla wydajności pamięci) albo hierarchiczne (np. Octree , kd-tree )
- Schematy wykorzystujące spójność, takie jak przemiatanie i przycinanie z sortowaniem przez wstawianie lub kolizje drzewo-drzewo ze śledzeniem przednim.
- Metody hybrydowe obejmujące kombinację różnych z tych schematów, np. grube drzewo AABB oraz zamiatanie i przycinanie z koherencją między kolidującymi ze sobą liśćmi.
Inne aplikacje
Inne efekty, które można symulować metodami dynamiki ciała miękkiego to:
- Zniszczalne materiały: pękanie kruchych ciał stałych, cięcie miękkich ciał i rozdzieranie materiału. Metoda elementów skończonych jest szczególnie odpowiednia do modelowania pęknięć, ponieważ obejmuje realistyczny model rozkładu naprężeń wewnętrznych w materiale, który fizycznie określa moment wystąpienia pęknięcia, zgodnie z mechaniką pękania .
- Plastyczność (odkształcenie trwałe) i topienie
- Symulowane włosy, futro i pióra
- Symulowane narządy do zastosowań biomedycznych
Symulacja płynów w kontekście grafiki komputerowej normalnie nie byłaby uważana za dynamikę ciała miękkiego, która zwykle ogranicza się do średniej symulacji materiałów, które mają tendencję do zachowywania swojego kształtu i formy. W przeciwieństwie do tego, płyn przyjmuje kształt dowolnego naczynia, które go zawiera, ponieważ cząstki są związane ze sobą stosunkowo słabymi siłami.
Oprogramowanie wspierające fizykę ciał miękkich
Silniki symulacyjne
Gry
Gra | Strona internetowa | Licencja | Opis |
---|---|---|---|
BeamNG.drive | http://beamng.com | Niewolne | Komercyjna gra w stylu piaskownicy oparta na fizyce pojazdów miękkich. Symuluje konstrukcję pojazdu, a nie jego działanie. |
Crash Effects Inc. | https://www.crasheffects.com/ | Niewolne | Konstruowanie pojazdów / symulator testów zderzeniowych z perspektywy pierwszej osoby. Fizyka miękkiego ciała jest zaimplementowana w nadbudówkach, niektóre komponenty pojazdów wykorzystują proste modelowanie uszkodzeń. |
Zestawy prętów | https://rigsofrods.github.io | Powszechna Licencja Publiczna GNU v3 | Darmowy i otwarty symulator pojazdu. |
Wrak | http://nextcargame.com | Niewolne | Gra wyścigowa Derby. Fizyka ciał miękkich jest stosowana w nadbudówkach, ale części i komponenty (np. silnik) wykorzystują proste modelowanie uszkodzeń. |