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