ZFX
ZFX Neu
Home
Community
Neueste Posts
Chat
FAQ
IOTW
Tutorials
Bücher
zfxCON
ZFXCE
Mathlib
ASSIMP
NES
Wir über uns
Impressum
Regeln
Suchen
Mitgliederliste
Membername:
Passwort:
Besucher:
4441188
Jetzt (Chat):
14 (0)
Mitglieder:
5239
Themen:
24223
Nachrichten:
234554
Neuestes Mitglied:
-insane-

ZFX
Coding-Foren
Algorithmen und Datenstrukturen
Farseer Physics Problem
Normal
AutorThema
NeoInferno Offline
ZFX'ler


Registriert seit:
10.09.2002

Deutschland
Farseer Physics ProblemNach oben.
Hi,

ich spiele gerade ein wenig mit der Farseer Physikengine in Silverlight 2 herum. Die Engine ist an sich wirklich gut und arbeitet größtenteils sauber, nur habe ich das folgende Problem:

Wenn ich einfache Quadrate (alles in 2D!) aufeinander liegen lasse, scheinen sie zu "zittern" bzw. bewegen sie sich nervös, obwohl sie in einer stabilen Position liegen, sodass sie sich nicht bewegen dürften.

Ich vermute, es könnte mit einem der vielen Koeffizienten zu tun haben, da es nirgends eine detailierte Beschreibung der API gibt, konnte ich nur durch Herumprobieren auf relativ funktionierende Werte kommen.

Hier die aktuellen Einstellungen:
- 32x32 Pixel große Rechteck-Bodies und -Geoms mit Masse 1
- Schwerkraft ist (0,1000) nach unten
- FrictionCoefficient der Rechtecke ist 0.8f, der RestitutionCoefficient ist 0.1f
- Bei der Update-Methode des PhysicsSimulators übergebe ich die vergangenen Sekunden seit dem letzten Update, d.h. sehr kleine float Werte
- Was die Eigenschaften AllowedPenetration und BiasFactor tun weiß ich mangels Doku nicht, also habe ich sie erstmal nicht verwendet

Hoffentlich hat jemand Erfahrung mit dieser API und kann mir helfen

Neo

1 Mal gendert, zuletzt am 04.01.2009, 20:11:05 Uhr von NeoInferno.
04.01.2009, 20:00:43 Uhr
Neochat
exploid Bin Kaffee holen
ZFX'ler


Registriert seit:
21.08.2005

Deutschland
Re: Farseer Physics ProblemNach oben.
hallo

Setz doch einfach die Masse und/oder den FrictionCoefficent gegen unendlich dann bewegt sich nix mehr.

mfg
07.01.2009, 12:58:45 Uhr
NeoInferno Offline
ZFX'ler


Registriert seit:
10.09.2002

Deutschland
Re: Farseer Physics ProblemNach oben.
Wenn ich die Masse zu hoch setze, verhalten sich die Objekte nicht mehr wie ich will bzw. lassen sich gar nicht mehr bewegen

Der FrictionCoefficent muss zwischen 0 und 1 liegen, alle Werte probiert, hat leider nichts gebracht. 0 ist rutschig wie Eis, bei 1 *sollte* sich nichts bewegen, tut es aber trotzdem.

Da kann ich wohl nur auf ein neues Release warten..
07.01.2009, 21:13:20 Uhr
Neochat
Sylence Offline
ZFX'ler


Registriert seit:
06.08.2008

Nordrhein-Westfalen
257334616
Re: Farseer Physics ProblemNach oben.
Also ich weiß ja nicht, aber wenn die Schwerkraft 1000 ist und die Masse von dem Ding 1, dann müssten da doch enorme Kräfte wirken. Hast du es mal mit geringerer Schwerkraft versucht ?
07.01.2009, 22:03:43 Uhr
Behind the Brain
joeydee Offline
ZFX'ler


Registriert seit:
23.04.2003

Hessen
Re: Farseer Physics ProblemNach oben.
Ich kenne zwar die Engine nicht, aber versuch doch mal mit der "Allowed Penetration" zu spielen. Denn es hört sich an, als würde die Engine mit der Penetration-Depth-Methode arbeiten.
Das Zittern könnte evtl. daher kommen (in der Regel auf mehrere Frames verteilt): Blöcke liegen exakt aufeinander, auf oberen wird Schwerkraft angewendet, bewegt sich in den unteren Block, Penetration wird festgestellt, entsprechende entgegengesetzte Kraft wird angewendet, Block bewegt sich entsprechend nach oben, ist nun leicht über dem unteren Block, wodurch wieder Schwerkraft nach unten angewendet wird...
Zumindest habe ich mal diesen Effekt gehabt, als ich mit der Methode experimentiert habe.
Allowed Penetration könnte also die zulässige Überlappung sein, Bias Factor beeinflusst vielleicht die zu berechnende Gegenkraft? Ist aber nur geraten.
08.01.2009, 10:34:19 Uhr
dfactor.de
NeoInferno Offline
ZFX'ler


Registriert seit:
10.09.2002

Deutschland
Re: Farseer Physics ProblemNach oben.
Ich habe die Macher der Engine um eine ausführliche Dokumentationen insbesondere der Klassen und der public Member gebeten, diese soll wohl in einer der nächsten Versionen kommen. Das sollte ne Menge Probleme minimieren

Die Schwerkraft und die Masse haben anscheinend nichts mit dem Problem zu tun. Hab mit beidem experimentiert, das Problem bleibt dasselbe, auch wenn es natürlich durch geringere Schwerkraft weniger auffällt.

Hier ist übrigens eine kleine Demo des Problems, leider ist sie etwas älter und ich kenne die Parameter nicht mehr, die ich dort verwendet hatte:
http://home.arcor.de/neoinferno/Silverlight/Physics/
Durch Klicks kann man die Objekte erzeugen. Versucht zB mal aus den Steinen eine Pyramide zu bauen, dort erkennt man das Problem am besten.

@joeydee:
Deine Idee klingt sehr einleuchtend, nur scheint AllowedPenetration leider nicht das zu sein, das du meinst. Eine Veränderung der Werte scheint keine Auswirkungen zu haben.

Naja, ich experimentiere einfach mal weiter, vielleicht mache ich noch eine interaktive Demo wo man alle Parameter on the fly verändern kann.
Danke jedenfalls für eure Hilfe

1 Mal gendert, zuletzt am 08.01.2009, 21:01:38 Uhr von NeoInferno.
08.01.2009, 21:00:39 Uhr
Neochat
Normal


ZFX Community Software, Version 0.9.1
Copyright 2002-2003 by Steffen Engel