Titel wird wiederholt
Unterpunkte dieser Seite
Unterpunkt Nummer eins
Anker Unterpunkt eins
Tutorial 2.
Dieses zweite Tutorial zeigt das Rendern von Primitives. Das grundlegendste Objekt in der 3D Graphic ist der Vertex ( = Punkt im dreidimensionalen Raum). Um in DirectGraphics einen Vertex zu rendern bedarf es zweier Dinge: erstens einer Custom Vertex Structure/Custom Vertex Type (eine selbstdefinierte structure die den Aufbau eines Vertex definiert) und einem Flexible Vertex Format, das dem Vertex Buffer den Aufbau der selbst kreierten custom Vertex structure offenlegt. Das erzeugen einer eigenen Vertex Structure/eines eigenen Vertex Typs ist in wirklichkeit limitiert, da es von Konstanten aus dem DirectX SDK beschrieben werden können muss. Der Programmierer kann sich also eigentlich nur vorgegebene Eigenschaften zu nutze machen, wenn er sie braucht, oder er lässt sie aus falls sie ihm unnötig erscheinen. Von einer wirklich selbst definierten Vertex structure kann kaum die rede sein. Nachdem die Custom Vertex Structure/Type und das Flexible Vertex Format definiert wurden, kann der VertexBuffer erzeugt werden und anschließend mit Vertices gefüllt werden. Das erzeugen des VertexBuffer geschieht mit der Funktion DIRECT3DDEVICE9::CreateVertexBuffer(). Man erzeugt jetzt z.B. drei Vertices und füllt den VertexBuffer mit diesen drei Vertices. Das füllen des VertexBuffer geschieht mit den drei Funktionen Lock(), memcpy(), und Unlock(). Das rendern des VertexBuffers geschieht mit der Funktion DIRECT3DDEVICE9::DrawPrimitive(). Kurz vor der Programm termination muss der VertexBuffer aufgeräumt werden, was mit der Release() Funktion gemacht wird. Erklärung zum data stream: Das Direct3D Device Object(auch einfach device genannt, gemeint ist die Grafikkarte) empfängt ständig einen DatenStrom (data stream) dessen transportierte Daten sie auf den Bildschirm bringt. Der VertexBuffer ist einer von mehreren Orten von denen der Strom Daten zum Device schwemmen kann. (IndexBuffer, DepthBuffer/ZBuffer oder ColorFront Buffer) Um den Inhalt des Vertex Buffers also auf den Bildschirm zu malen, muss man den data stream des devices mit dem VertexBuffer verbinden und ihn zur Quelle von Daten erklären. Das geschieht mit der Funktion DIRECT3DDEVICE::SetStreamSource(). Nach diesem Aufruf transportiert der data stream daten aus dem VertexBuffer zum Device. Das Device gibt diese Daten nach den durch DIRECT3DDEVICE::DrawPrimitive() festgelegten Regeln auf dem Bildschirm aus.
zum Seitenanfang
zur DirectX Seite
zur Hauptseite
Letzte Änderung: 10.11.2005