Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

BlazeX

Alter Hase

  • »BlazeX« ist der Autor dieses Themas

Beiträge: 478

Wohnort: DD

Beruf: Maschinenbau-Student

  • Private Nachricht senden

1

15.12.2009, 20:41

Physik-Engine gesucht

Hi Leute!
Ich suche eine Physik-Engine.
Die Anforderungen wären:
:arrow: Sollte auf Windows Vista laufen
:arrow: Muss kostenlos sein, ohne Einschränkung in der Veröffentlichung meiner Projekte, die sie benutzen
:arrow: Es sollte gute Tutorials geben
:arrow: Sie sollte schnell sein
:arrow: Sie sollte mit linkshändigen kartesischen Koordinatensystemen zurechtkommen (Das ist theoretisch kein Problem) da ich Direct3D benutze
:arrow: Sie sollte ohne extra Treiber und Zusatzprogrammen funktionieren
:arrow: Ich muss ihr eine Liste von Objekten (mit Physik-Eigenschaften) geben können und die Engine macht den Rest allein was Kollision und Updaten angeht. Jeden Frame würde ich dann einmal die aktuellen Eigenschaften abfragen (meine Liste wieder holen) und mit diesen rendern.


:!: Ich dachte da an PhysX von nVidia. Aber da bin ich nicht schlau geworden, wie weit ich die überhaupt nutzen darf. Schnell sollte sie jedenfalls bei mir sein. Da sie Unterstützung von einer 9800GX² hätte.

:!: Dann wären noch Tokamak und Bullet. Die sehen nicht schlecht aus. Allerdings hab ich über die beiden wenig an Tutorials gefunden.

:!: Oder selbst eine Programmieren. Aber ich denke nicht, dass 11. Klasse Physik-Unterricht und Mathe-Unterricht (obwohl es bei mir LKs sind) dazu reicht. Weiterhin ist da noch die Zeit, sich in die Materie einzuarbeiten das Ding zu programmieren.


Was sollte ich tun :?:

2

15.12.2009, 21:46

Es gäbe dann noch Newton oder was ich selbst gern benutze und als gut erachte: ODE

BlazeX

Alter Hase

  • »BlazeX« ist der Autor dieses Themas

Beiträge: 478

Wohnort: DD

Beruf: Maschinenbau-Student

  • Private Nachricht senden

3

15.12.2009, 22:44

Ich hab mir beide mal angesehen. Sie sehen beide toll aus.
Ich habe aber noch nicht die Erfahrung im Umgang mit Physik-Engines, dass ich beurteilen kann, welche gut ist und welche nicht.

Also stehen jetzt zur Auswahl:
:arrow: Newton
:arrow: Bullet
:arrow: Tokamak
:arrow: ODE
:arrow: PhysX

Soweit ich sehe erfüllen sie alle Bedingungen von mir.
Dann muss ich mich langsam mal entscheiden.

Wichtig wäre weiterhin:
:arrow: Performance (sollte man schon haben)
:arrow: Logisches Design (ich muss es ja begreifen)
:arrow: Einfache Integration in Projekte (anders gehts nicht)
:arrow: Einfache Veröffentlichung (auf anderen PCs ausführen)

Derzeit liegt umstritten bei mir PhysX vorn. Negativ ist, dass erst ab G80 GPUs die Leistung voll entfaltet werden kann. Dafür hat man dann aber auch Leistung!
Die Entwicklung ist auch grad im vollem Gange.

Ich werde die nächsten Tage mal alle 5 durchprobieren und mich dann wieder melden.

4

15.12.2009, 23:02

Hm, ist PhysX nicht nVidia only? Sollte nvidia dadurch noch mehr Marktanteile bekommen ist der Wettbewerb gefährdet was letztendlich ein Nachteil für alle Kunden ist, schon alleine aus solchen Überlegungen würde ich davon absehen PhysX zu benutzen.
Die Frage ist auch, was genau du machen willst. Ob man jetzt ein paar hundert Partikel animieren will oder doch nur ein paar Objekte die so in der Gegend rumliegen, für letzteres sollte so ziemlich jede Engine schnell genug sein.
Lieber dumm fragen, als dumm bleiben!

5

15.12.2009, 23:18

PhysX ist nicht nVidia-only. Es läuft nur GPU-beschleunigt auf nVidia-Karten, aber normal auch über die CPU.
Soweit ich weis bastelt AMD gerade selbst bei der Bullet-Engine daran das sie auf ATI Grakas läuft wenn ich mich gerade nicht falsch erinnere.

Kommt natürlich ganz drauf an WAS du machen willst BlazeX, wie Jonathan_Klein schon schrieb.

Thoran

Alter Hase

Beiträge: 520

Wohnort: Stuttgart

Beruf: Senior Software Engineer

  • Private Nachricht senden

6

16.12.2009, 13:43

Zitat von »"k|haos"«

...
Soweit ich weis bastelt AMD gerade selbst bei der Bullet-Engine daran das sie auf ATI Grakas läuft wenn ich mich gerade nicht falsch erinnere.
...


Soweit ich weiß wird bei Bullet auch daran gearbeitet das ganze mit OpenCL-Support anzubieten, so daß eine zukünftig eine HW-Beschleunigung unter ATI/AMD und NVIDIA möglich ist.

Thoran
Mein Entwicklertagebuch
Aktuelles Projekt: Universum Espionage
Eingestellt:Spieleengine SilverCore
Organisator "Spieleentwickler Stammtisch Stuttgart"

Black-Panther

Alter Hase

Beiträge: 1 443

Wohnort: Innsbruck

  • Private Nachricht senden

7

16.12.2009, 13:45

havok oder physX
sind atm die besten auf dem "freien" Markt.
stillalive studios
Drone Swarm (32.000 Dronen gleichzeitig steuern!)
facebook, twitter

BlazeX

Alter Hase

  • »BlazeX« ist der Autor dieses Themas

Beiträge: 478

Wohnort: DD

Beruf: Maschinenbau-Student

  • Private Nachricht senden

8

16.12.2009, 17:19

An Havok hatte ich noch garnicht gedacht. In Oblivion war ich damals begeistert, was die Physik angeht, da steckt ja Havok dahinter. Wie geil.

Da sind des jetzt aber schon 6 Engines.
Afaik ist Havok optimiert für intel-Prozessoren (ob das wirklich soviel mehr bringt?).

Zu PhysX hab ich mich mal ein bisschen erkundigt.
Derzeit setzt PhysX auf CUDA - parallele Berechnung per GPU - auf. Das wird nur von nVidia unterstützt. Allerdings arbeitet nVidia auch an OpenCL-Support.
Da wird sicher Druck von den Games-Firmen kommen, PhysX auf OpenCL umzusatteln. Weshalb PhysX eines Tages auch auf ATI-Karten laufen könnten, weil die auch OpenCL unterstützen wollen.
Link

Es wird noch ein Stück dauern, aber wenigstens ist dann der Support da.
Also spricht alles für PhysX.

Was ich will: Geplant ist eine Art futuristischer Unterwasser-Shooter. Als Physik-Features kommen: Wasserströmung, Terrain (Unterwasserlandschaft) und korrekte Kollisionen mit dem Terrain und Dreck-Aufwirbeln (Auf schlammigen/sandigen Stellen) -> Viele Partikel, die realistisch davonschwimmen (Strömung -> Wind?). Weiterhin kann man Gebäude zerballern und Einstürzende Gebäude sollen realistisch fallen. Luftblasen als Parikel kommen auch noch hinzu.

Ich glaube das ist ertmal verwirrend, vieleicht auch zuviel. Jedenfalls ist es mir zu viel Arbeit dafür eine eigene Physik-Engine zu schreiben.

Newton, Bullet, Tokamak und ODE sind gut, aber nicht führend und teilweise schon angestaubt. Dazu hab ich einiges über schlechte Performance gehört. Kann sein, dass es nur Gerüchte sind.

Jedenfalls bin ich mir ziemlich sicher, dass es PhysX sein wird.
Die Gründe sind:
:arrow: mehr Performance durch Berechnung per GPU
:arrow: Bald auch Support für ATI-Karten (sieh Link oben)
:arrow: Aktuell eine der besten Engines

9

16.12.2009, 17:36

Ich würde dir zwar raten erstmal etwas kleiner anzufangen, wie etwa erstmal die Physik einbinden.
Wenn du einen gescheiten Wrapper mit der dir gegebenen Engine machst dann sollte es auch nicht sonderlich das Problem sein später eine anderen Engine zu verwenden.

Dann würde ich erstmal die Kollision ansich einbauen und Partikel, alles andere kannst mit der Zeit immer weiter implementieren, aber so ist das meiner Meinung nach, erstmal totaler overflow für dich als einzelne Person.

BlazeX

Alter Hase

  • »BlazeX« ist der Autor dieses Themas

Beiträge: 478

Wohnort: DD

Beruf: Maschinenbau-Student

  • Private Nachricht senden

10

16.12.2009, 17:59

Schon klar, dass es viel ist. Da muss noch Struktur rein.
Was ich genannt hatte, waren lediglich Features, die rein sollen.
Die gesamte Planung ist auch noch nicht fertig.

Werbeanzeige