Cześć, więc niedawno poznałem bibliotekę graficzną SFML i chciałbym używać lub tworzyć system fizyki 2D niesztywnego ciała. Mam trzy pytania:
Definicja sztywnego ciała w Box2d to
Kawałek materii, który jest tak silny, że odległość między dowolnymi dwoma kawałkami materii na bryle jest całkowicie stała.
I właśnie tego nie chcę, ponieważ chciałbym tworzyć elastyczne, odkształcalne, kruche i ponownie łączące ciała. 1. Czy są jakieś proste silniki fizyki 2D, ale z takimi cechami? najlepiej darmowy czy opensource?
2. Jeśli nie, mogę użyć box2d i przerobić go, aby go utworzyć, nawet jeśli jest oparty na sztywnych ciałach?
3. Na koniec, jeśli istnieje taki prosty silnik fizyki, czy powinienem przejść proces tworzenia nowego, po prostu w celu zdobycia doświadczenia i poszerzenia wiedzy z matematyki? Wydaje mi się, że pomogłoby to, gdybym kiedykolwiek chciał zmodyfikować kod istniejącego silnika lub stworzyć grę z naprawdę wyjątkową fizyką.
Dzięki!
Odpowiedzi:
Możesz użyć systemów sztywnego korpusu, aby stworzyć miękkie ciało i dynamikę płynów. Fizyczny powód tego? Zasadniczo atomy to małe sztywne ciała. Nie jest to oczywiście do końca prawda, ale dla uproszczenia można je postrzegać jako takie. A miękkie ciała są oczywiście zbudowane z atomów.
Jak więc stworzyć „miękkie ciała” za pomocą silnika o sztywnym nadwoziu, takiego jak Box2D?
Podstawową techniką jest łączenie punktów w ciele za pomocą stawów. Na przykład, jeśli łączysz końce listy linii za pomocą połączeń dystansowych (co oznacza, że odległość między dwoma połączeniami musi być stała), będzie on z grubsza zachowywać się jak kawałek materiału.
Ale to tylko przybliżony opis. Ewjordan, jeden z twórców portu Java Box2D, wykonał wiele „elementarnych prac polowych” w Box2D. Oto dobry punkt wyjścia: http://www.box2d.org/forum/viewtopic.php?f=8&t=1978
źródło
Pojęcie, którego szukasz, to fizyka ciała miękkiego.
Wikipedia ma ładną listę. Wszystkie są 3D AFAICS, ale powinny być dobre.
Sprawdź także to SO pytanie.
Świetną książką (sztywne ciało, ale wszystkie matematyki i fizyki są tam; to także 3D, ale przeniesienie do 2D jest banalne) to Game Physics Engine Development . Implementuje system oparty na cząsteczkach przed przejściem na sztywne ciała i zderzeniem.
źródło
Jednym prostym sposobem symulacji miękkich ciał jest połączenie ze sobą małych sztywnych ciał za pomocą elastycznych połączeń. Następnie trudną częścią jest dostrojenie parametrów modelu i odwzorowanie tekstury na model leżący u podstaw.
Poniższy post na blogu przedstawia implementację odkształcalnej piłki z silnikiem cocos2d: http://2sa-studio.blogspot.com/2014/05/soft-bodies-with-cocos2d-v3.html
źródło