JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.php?sid=a4b32f0014944fbe94ed7933ed41abaaMedaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Welche "Art" von Bewegungen in 3D Welten ?

 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> DirectX, OpenGL
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
cyby
Mini JLI'ler


Alter: 35
Anmeldedatum: 25.08.2004
Beiträge: 12
Wohnort: Tauberischofsheim
Medaillen: Keine

BeitragVerfasst am: 22.11.2007, 21:05    Titel: Welche "Art" von Bewegungen in 3D Welten ? Antworten mit Zitat

hallo,

mit welche der folgenden Arten wird denn heute die Bewegung in einer 3D Welt realisiert ? (bzw. bei einem Rollenspiel xD)

Code:
1.  SetTransform(D3DTS_VIEW,&matrix);
2.  SetTransform(D3DTS_PROJEKTION,&matrix);
3.  SetTransform(D3DTS_WORLD,&matrix);


MfG, cyby
_________________
Wenn jemand Rechtschreibfehler findet oder Fachausdrücke falsch geschrieben sind, mir bitte per PN mitteilen! (Übung macht den Meister xD )
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
User_User
JLI'ler



Anmeldedatum: 05.08.2004
Beiträge: 137

Medaillen: Keine

BeitragVerfasst am: 22.11.2007, 22:28    Titel: Antworten mit Zitat

Zitat:
mit welche der folgenden Arten wird denn heute die Bewegung in einer 3D Welt realisiert ? (bzw. bei einem Rollenspiel xD)
Code:
1. SetTransform(D3DTS_VIEW,&matrix);
2. SetTransform(D3DTS_PROJEKTION,&matrix);
3. SetTransform(D3DTS_WORLD,&matrix);


1) Die View-Matrix wird benötigt, um Kameraeigenschaften anzugeben.
2) Die Projektions-Matrix wird benötigt, um Bildschirmeigenschaften anzugeben.

Genaueres steht im Buch: "jetzt lerne ich DirectX9 und Visual C++" in Kapitel 27

In Kapitel 27.2 Objekte rotieren und verschieben wird das Objekt durch die Funktion D3DXMatrixRotationX() um die x-Achse rotiert.
Durch die Funktion D3DXMatrixTranslation() wird das Objekt verschoben.
Durch die Funktion D3DXMatrixMultiply() wird das Ergebnis der Rotation (RotationMatrix) und dann das Ergebnis der Verschiebung (TranslationMatrix) als neue WorldMatrix gesetzt. Dadurch werden die Rotation und die Verschiebung quasi nacheinander (vor dem Rendern) ausgeführt.

Hat man mehrere Objekte in der 3D-Welt, wird vor dem Rendern der einzelnen Objekte jeweils deren Matrix (welche die Bewegung innerhalb der 3D-Welt enthält) als World-Matrix gesetzt.

In der DirectX-Dokumentation finden sich weitere Informationen unter:
Inhalt -> DirectX Graphics -> Direct3D 9 -> Programming Guide ->
Getting Started -> Transforms

Oder, wenn du mit dem Buch durch bist, könnte man auch weiterführende Bücher kaufen.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Jonathan_Klein
Living Legend


Alter: 37
Anmeldedatum: 17.02.2003
Beiträge: 3433
Wohnort: Siegerland
Medaillen: Keine

BeitragVerfasst am: 23.11.2007, 15:50    Titel: Antworten mit Zitat

Prinzipiell ist das total egal. Du solltest dich mal genau darüber informieren, was eine Matrix ist.
Nur so viel: Multipliziert man einen Vector erst mit einer und dann mit einer anderen Matrix, erhält man das selbe, als wie wenn man erst die Matrizen multipliziert und dann den Vektor mit der neu entstandenen.

Nun gibt es in 3D aber verschiedene Arten, wie man ein Dreieck verändern kann. Man kann es drehen, verschieben, skalieren projizieren und so weiter.

Nun, da die Projektion meistens gleich bleibt, gibt es dafür aber eine extra Matrix, damit man diese nicht immer neu setzen muss. Die Kameramatrix macht im Prinzip nichts anderes, als alles ein wenig zu verschieben und zu rotieren.
Aber man kann es sich halt logischer Vorstellen, wenn man alles getrennt hat. Prinzipiell würde aber auch nur eine einzige Matrix ausreichen (in Ogl gibt es z.b. nur 2 Matrizen, statt 3)

Also, les alles was du finden kannst über Matrizen, dann weißt du alles Very Happy
_________________
https://jonathank.de/games/
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> DirectX, OpenGL Alle Zeiten sind GMT
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de

Impressum