Einzelnen Beitrag anzeigen

Benutzerbild von JasonDX
JasonDX
(CodeLib-Manager)

Registriert seit: 5. Aug 2004
Ort: München
1.062 Beiträge
 
#3

Re: Allgemeine Frage zum Transformieren mit DirectX

  Alt 2. Mai 2008, 17:42
Was passiert ist eine rein mathematischer Prozess, die sich in 3 Stadien unterteilt.
Du kannst 3 Transformationsmatrizzen festlegen, deren Namen sich generell als World-, View- und Projection-Matrix festgelegt haben. Alle 3 haben dabei eine unterschiedliche aufgabe:
Die Projection-Matrix bestimmt die Projektionsparameter. Es gibt verschiedene Arten der Projektion, im 3D-Bereich wird meist die Zentralprojektion verwendet. In der Matrix bestimmst du, welchen Ausschnitt der Szene du in welchem Format auf deine Zeichenfläche rendern willst.
Die View-Matrix bestimmt die Kamera-Position. Mit ihr beschreibst du also, von welchem Punkt aus und in welche Richtung du die Szene betrachtest.
Die World-Matrix bestimmt die Position des derzeit gerenderten Objektes. D.h. wenn du in deiner Szene einen Würfel verschoben oder gedreht zeichnen willst, erledigst du dies über die World-Matrix.

Bei DirectX läuft dies nun so ab, dass die gerenderten Vertices mit den zu dem Zeitpunkt gesetzten Transformationsmatrizzen transformiert und projeziert werden. Willst du bspw. 2 Vertexbuffer unterschiedlich transformieren, musst du - abhängig davon, was sich ändern soll - die entsprechende Matrix vor dem Renderbefehl mit SetTransform umsetzen. Meist gehts dabei darum, unterschiedliche Objekte an unterschiedliche Positionen zu setzen. Die dafür zuständige Matrix ist die Weltmatrix; Die wirst du während einer Szene sehr oft setzen. (Normalerweise für jedes Objekt, das du zeichnen willst, min. einmal).

greetz
Mike
Mike
Passion is no replacement for reason
  Mit Zitat antworten Zitat