Physik und X-Files???
-
Hi,
ich bin gerade dabei, eine erste einfache Engine mit Direct3D zu basteln. Jetzt will ich auch allen möglichen physikalischen Kram ermöglichen, so dass ich Kräfte auf die Objekte wirken lassen kann und diese sich dann realistisch drehen, bewegen usw.
Zu meiner Frage: Ich lade meine Objekte als X-Files (*.x). Allerdings hab ich dann keine Information über die Geometrie der Objekte. Ich muss aber Dinge wie Masse, Masse-Schwerpunkt, Inertia-Tensor usw. berechnen. Wie macht ihr das???
Geht das mit den X-Files oder benutzt ihr noch mal eine extra Datei für sowas??Danke für die Hilfe schon mal im Voraus,
euer smasher1985
-
Hi!
Ja das kannst du. Entweder du schreibst dir einen eigenen X-File Loader oder verwendest die DirectX Funktionen zum Laden der X-Files ( nicht die D3DXLoadMesh funktionen )Bye.
-
hmmm...das Laden der X-Files ist ja kein Problem - das mach ich mit den Funktionen, die im SDK dabei sind. Mein Problem ist, wie ich jetzt an die Informationen für meine Physik-Engine drankomme - also Gesamtmasse, Schwerpunkt, usw.
-
Hi!
Ich glaube du läst dein Mesh mit der standard D3DX Funktion. Mit der kannst du nur ein Mesh Render. Mehr aber auch nicht. Um den Schwerpunkt zb. ausrechnen zu können brauchst du Informatioenen über die Koordinaten die du bei diesem Laden NICHT hast. Es gibt noch einen anderen Weg um X-Files zu Laden, aber auf einen Umsdänlicheren Weg der in Zerbies Buch, Band 2 beschrieben ist.( www.google.de findest du sicher etwas ). Eine anderer Weg wäre es einen eigenen Loaden für X-Files zu schreiben. Könnte ich dir bei bedarf ein Bsp Code schicken, der dir die Daten in ein paar Strukturen läd ). Oder wenn du lust hast ein eigenes Format inc. Exporterer für dein Format zu schreiben. Aber das ist für den Anfang viel zu Komplex und würde deine Engine nur unnötig aufhalten.Bye
-
Achja, schau dir im SDK das Interface IDirectXFile an. Damit wird das dann geladen.
-
Danke für die Hilfe...ich schau mal im 2. Buch von Stefan Zerbst nach...es wär aber nett, wenn du mir den Beispielcode trotzdem zusenden könntest - wenn es dir keine Umstände macht (follenius-jan-philipp@web.de)
-
Scheissegal, welche Ladefunktion oder Modellformat benutzt werden. Schwerpunkt oder Masse kann man damit nicht berechnen, da über so etwas keine Informationen in eine Modell gespeichert werden. Am sinnvolsten wäre wirklich eine zweite Datie mit Infos darüber.
-
@TGGC: aber wenn ich genauere Informationen über die Geometrie des Objektes hätte (und davon ausgehe, dass das Objekt aus einem einheitlichen Material besteht) könnte ich doch Schwerpunkt und Masse ausrechnen, oder??? Das ist ja auch eine Frage des Anspruchs - ich will ja keine wissenschaftliche Simulation, sondern eine einfache, realistisch aussehende Annäherung für einfache Spiele...
-
Original erstellt von smasher1985:
@TGGC: aber wenn ich genauere Informationen über die Geometrie des Objektes hätte (und davon ausgehe, dass das Objekt aus einem einheitlichen Material besteht) könnte ich doch Schwerpunkt und Masse ausrechnen, oder???Schwerpunkt könnte man dann errechnen, aber es gibt wenige Objekte (z.B. organische Körper) die auch eine nur annährend homogene Dichte haben. Masse kann man auch dann nicht berechnen, da weder Dichte noch spätere Skalierung bekannt sind. Die "genauere Informationen über die Geometrie des Objektes" kann man auch bekommen, wenn man die D3DX Funktion nimmt, man kann sich genauere IIRC den VB eines Meshes "geben" lassen.
-
Ein 3D Objekt im Speicher eines Computers hat keinen Schwerpunkt oder Masse.
Alle ist nur so schwer/leicht wie du es willst.
-
@TGGC:
Diese Definitionen von denen du Redest ist hoffentlich allen Klar, dass du definierst welche Eigenschaften ds "Ding" hat. Und den Schwerpunkt kannst du über die Koordinaten dann Festlegen. Und die Einflüsse der Eigenschaft natürlich noch einberechnen.Bye