Zurück zur Gesamtübersicht "Physik mit Direct3D"
Zunächst hatten wir im Wahlkurs folgendes Problem:
Es gibt unzählige Einstellungsmöglichkeiten
für Direct3D bei der Darstellung von Grafiken.
Das hängt sehr stark von den Fähigkeiten der eingebauten Grafikkarte ab.
Daher haben wir ein Einstellungsfenster für diese Direct3D-Darstellungsoptionen
entwickelt.
Da hier die einzelnen Wahlkursmitglieder verschiedene Lösungen gefunden haben, ist hier nur ein möglicher Programmcode für ein mögliches Einstellungsfenster gezeigt. Das hier gezeigte Einstellungsfenster ermöglicht die Einstellung fast aller Optionen - es fehlen nur zwei Features:
Keine Wahlmöglichkeit: Software- oder Hardware-Vertex-Processing
Das Fenster in der vorliegenden Form wählt immer die hardwaregesteuerte
Darstellung von 3D-Grafiken. Ältere Grafikkarten scheitern dann aber.
Kein Laden & Speichern der gewählten Optionen
Die Optionen müssen jedesmal wieder eingestellt werden.
Hier würde es z.B. die alternative Lösung von Markus Schuster erlauben,
einmal gewählte Optionen dauerhaft zu speichern.
Das Know-How, das hinter der Programmierung des Einstellungsfensters steckt, ist im Teil C des Kurses "Mathematik & Programmierung von 3D-Grafik" recht genau beschrieben.
Wir gehen von einem neuen, frischen Projekt aus.
Um das Einstellungsfenster benutzen zu können, ist es nötig, die Gestaltung und die Programmierung dieses Fensters in das neue Projekt mit einzubinden. Hierzu benötigst Du die Dateien:
UnitDirect3D_1.cpp
UnitDirect3D_1.dfm
UnitDirect3D_1.h
Diese Dateien lassen sich hier herunterladen: info_d3d_einstellung.zip (6,2 KB)
Am besten sollten die oben genannten Dateien im gleichen Verzeichnis liegen wie das neue, aktuelle Projekt.
Wir binden nun die C++-Unit des Fensters (*.cpp, *.h) und die Fenster-Definitionsdatei (*.dfm) des Einstellungsfensters in unser neues Projekt ein.
Wähle im C++Builder den Menüpunkt Projekt -> Dem Projekt hinzufügen.
Füge dort die Datei UnitDirect3D_1.cpp dem Projekt hinzu.
Anschließend sagen wir noch dem C++Builder, dass er auch die Header-Datei *.h dieses Einstellungsfensters ins neue Projekt einbinden soll
Wähle hierzu den Menüpunkt Datei -> Unit-Header einschließen.
Diese Vorgehensweise ergänzt im neuen Projekt den Include-Befehl:
(Diesen Include-Befehl könnte man freilich auch von Hand ins Projekt einfügen.)
Zusätzlich ist es erforderlich, die Direct3D-LIB-Bibliotheken d3d9.lib und d3dx9.lib in das Projekt mit aufzunehmen.
Wähle im C++Builder den Menüpunkt Projekt -> Dem Projekt hinzufügen
Da wir diesmal keine CPP-Datei, sondern LIB-Bibliotheken einbinden wollen, müssen wir unten bei Dateityp die Option Bibliotheksdatei (*.lib) wählen.
Die Dateien d3d9.lib und d3dx9.lib sind im DirectX-SDK-Installationsverzeichnis Libs abgelegt.
Vermutlich ist dieses Verzeichnis unter dem Pfad
zu finden.
Füge jetzt die Dateien d3d9.lib und d3dx9.lib dem Projekt hinzu.
Kopiere die DLL-Bibliothek D3DX9sab.dll in das Verzeichnis, in dem sich Dein Projekt befindet.
Viertens ist es erforderlich, im neuen Projekt den so genannten Pfad für Include-Dateien zu erweitern. Damit der C++Builder die Header-Datei d3d9.h findet, musst Du im Projekt festlegen, wo diese Direct3D-Header-Dateien zu finden sind.
Wähle den Menüpunkt Projekt -> Optionen.
Dort findest Du den Karteikarten-Reiter Verzeichnisse/Bedingungen.
Hier wiederum wählst Du den Button [...] bei den Include-Pfaden.
Die Header-Dateien von DirectX9 sind im Verzeichnis
DXSDK9\Include zu finden.
Der komplette Pfade dorthin könnte zum Beispiel
lauten. Dieser zusätzliche Pfad muss hier bei den Include-Pfaden hinzugefügt werden (siehe Abbildung).
Nun sollte sich das neue, leere Projekt problemlos kompilieren lassen.
Weiter zu "Direct3D starten (II)"
Zurück zur Gesamtübersicht "Physik mit Direct3D"