|
JLI Spieleprogrammierung
|
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
|
Verfasst am: 22.11.2007, 21:05 Titel: Welche "Art" von Bewegungen in 3D Welten ? |
|
|
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 |
|
|
User_User JLI'ler
Anmeldedatum: 05.08.2004 Beiträge: 137
Medaillen: Keine
|
Verfasst am: 22.11.2007, 22:28 Titel: |
|
|
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 |
|
|
Jonathan_Klein Living Legend
Alter: 37 Anmeldedatum: 17.02.2003 Beiträge: 3433 Wohnort: Siegerland Medaillen: Keine
|
Verfasst am: 23.11.2007, 15:50 Titel: |
|
|
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 _________________ https://jonathank.de/games/ |
|
Nach oben |
|
|
|
|
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
|