Einfache 2D Physik um viiiieeeeeeele Rechtecke darzustellen?
Übersicht

![]() |
BobrOOneyBetreff: Einfache 2D Physik um viiiieeeeeeele Rechtecke darzustellen? |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi Leute,
Möchte in Blitzmax ein Haus in sich zusammenstürzen lassen. Das Haus soll aus einzelnen Ziegeln bestehen, dass es bei einer Explosion komplett zerstörbar ist, also setze ich die Anzahl der Objekte auf ca 2000-5000 Rechtecke an. Incl. Physikberechnung und Kollision dürfte das ein riesen Rechenaufwand sein und deshalb bräuchte ich eine Routine, die - auf Rechtecke ausgelegt ist (können einfarbig sein) - sehr schnell ist - bei einer Explosion (etwa AddImpulse o.ä.) dementsprechend reagiert. - die Kollision braucht auch nur auf diese Ziegel reagieren, das würde reichen Hab das bereits mit Pyroplay ppIsaac versucht, ist aber zu langsam. Ich kann alles brauchen. Tutorials, Physikseiten, am besten Codeschnipsel natürlich. Wäre sehr dankbar. |
||
---<< Cool down in Temper City! >>---
http://www.ShadowVision-Soft.com |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
gibt es nicht.
Du willst ein unrealistisches Szenario umsetzen, welches nicht die dafür nötige Rechenleistung voraussetzt, was in etwa so wäre als wenn Da Vinci versucht hätte auf den Mond zu fliegen. |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
stfighter01 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Dreamora hat Folgendes geschrieben: gibt es nicht.
Du willst ein unrealistisches Szenario umsetzen, welches nicht die dafür nötige Rechenleistung voraussetzt, was in etwa so wäre als wenn Da Vinci versucht hätte auf den Mond zu fliegen. warum? 2000-5000 rechtecke zu berechnen sollte aber nicht gerade der megaaufwand sein. speziell wenn das ganze in einem eigenen physiklayer liegt kann man die sache schön optimieren. die meisten engines sind halt auf komplexere objekte ausgelegt und daher zu langsam für diesen zweck. ich kenne aber auch keine aktuelle engine die sowas bietet. am besten selber machen, ist aber ein mords aufwand. vielleicht wärs aber besser du machst grössere ziegelsteine und belässt es bei 500-1000 objekten? |
||
Denken hilft! |
![]() |
Vertex |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich stehe noch bei den Anfängen in Sachen Rigid Body Dynamics. Ich halte das vorhaben auch übertrieben kann mich dabei aber auch nicht auf Erfahrungswerte stützen.
Was du brauchst: - Jedes Rechteck hat eine Masse - daraus ergibt sich eine einwirkende Kraft der Gravitation als 2d Vektor - weiterhin eine Kraft Impuls(ich nehme mal an, dass du die Kraft abhängig von der Distanz einwirken lassen musst) - Kollisionserkennung für gedrehte Rechtecke Krümel hat vor kurzen mal ein Link dazu gepostet: http://chrishecker.com/Rigid_Body_Dynamics Scheint recht ordentlich zu sein. Ich muss vorher aber mal mein Wissen in Sachen Integral/Differentialrechnung auffrischen. mfg olli |
||
vertex.dreamfall.at | GitHub |
![]() |
stfighter01 |
![]() Antworten mit Zitat ![]() |
---|---|---|
ich hab mal vir einiger zeit ein bisschen was punkto physik gemacht.
eine einfache rechteckkollision zu erkennen/berechnen ist simpel, aber so eine engine ist leider viel mehr aufwand, weil du immer probleme bekommst wenn du perfekte physik simulierst und dinge aufeinander stapelst. diese objekte müssen quasi einen "ruhestatus" bekommen solange keine "zusätzliche" kraft auf sie einwirkt. dieses "zusätzlich" will ich mal so umschreiben. wenn du in einer perfekten simulation eine tischtennisball springen lassen würdest, würde er immer weniger hoch hüpfen, aber der ball würde nie aufhören zu springen. das könnte man ja noch recht einfach dämpfen, aber hinzu kommt noch eine konstante gravitation die den ball immer wieder dazu veranlasst bei jeder berechnung mit der geschwindigkeit v=a*t ( wobei t = refreshrate der engine ist ) gegen den tisch zu knallen. vielleicht lässt sich ja für genau dieses problem ein vorhandener rigid body code adaptieren. aber eine mordsarbeit ist und bleibt es. mfg stf |
||
Denken hilft! |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group