220 likes | 593 Views
Fachhochschule Amberg-Weiden Fachbereich Elektro- und Informationstechnik. Präsentation der Diplomarbeit:. „Erstellung eines 3D-Funktions- zeichenprogramms in der Programmiersprache C++ unter Verwendung von Direct3D“. von Stefan Bartmann Studiengang Elektrotechnik,
E N D
Fachhochschule Amberg-WeidenFachbereich Elektro- und Informationstechnik Präsentation der Diplomarbeit: „Erstellung eines 3D-Funktions- zeichenprogramms in der Programmiersprache C++ unter Verwendung von Direct3D“ von Stefan Bartmann Studiengang Elektrotechnik, Studienschwerpunkt Multimediatechnik Datum: 27. 01.2003
Vortragsinhalt • Klärung der Aufgabenstellung Funktionsweise von Direct3D Bestandteile des Funktionszeichenprogrammes Demonstration des Funktionszeichenprogrammes Zusammenfassung
Klärung der Aufgabenstellung • Welche Art von Funktionszeichenprogramm ist zu erstellen? • Wieso eignet sich Direct3D für die Umsetzung eines 3D-Funktionszeichenprogramms? • Warum soll die Programmiersprache C++ verwendet werden?
Welche Art von Funktionszeichenprogramm ist zu erstellen? • Funktionen der Form z = f(x,y) als Fläche im Raumdarstellen • Angabe eines Zeitparameters in der Funktionsgleichung möglich • Interaktivität in Echtzeit während der Darstellung möglich • Skalierbarkeit =>Motivation: „Erfahren“ von Funktionen soll interaktiv möglich sein, um ein Verständnis für die Funktionsgleichung zu entwickeln Klärung der Aufgabenstellung
Wieso eignet sich Direct3D für die Umsetzung eines 3D-Funktionszeichenprogramms? • DirectX kapselt den direkten Zugriff auf Computerhardware • Direct3D ist Teil von DirectX und bietet Schnittstellen für die Ausgabe von 3D-Grafik an • flexibel zu handhaben • Ausnutzung der Rechenkapazität von Grafikbeschleunigungskarten => Ausführungsgeschwindigkeit Voraussetzung: Es muss eine Grafikkarte vorhanden sein, welche Hardwareunterstützung beim Zeichnen bietet! Klärung der Aufgabenstellung
Warum soll die Programmiersprache C++ verwendet werden? • schnell • flexibel Klärung der Aufgabenstellung
Vortragsinhalt Klärung der Aufgabenstellung • Funktionsweise von Direct3D Bestandteile des Funktionszeichenprogrammes Demonstration des Funktionszeichenprogrammes Zusammenfassung
Funktionsweise von Direct3D Auf folgende Aspekte soll im Anschluss eingegangen werden: • Im Gesamtzusammenhang auftretende Vorgänge beim Zeichnen mit Direct3D • Zusammenspiel von Direct3D mit einem Win32-Programm • Die Organisation der zu zeichnenden Daten • Umrechnung des 3D-Modelles in 2D-Bildschirmkoordinaten
Im Gesamtzusammenhang auftretende Vorgänge beim Zeichnen mit Direct3D Hardware Abstractive Layer Funktionsweise von Direct3D
Zusammenspiel von Direct3D mit einem Win32-Programm • Verständigung zwischen einer Win32-Anwendung und DirectX wird über die COM-Schnittstelle abgewickelt Schritte, welche in einem Win32-Programm durchgeführt werden müssen, um mittels Direct3D zu zeichnen: • Erzeugen eines Fensters für die Ausgabe • Direct3D mitteilen, welches Fenster für die Ausgabe verwendet werden soll • Auswählen eines Adapters, über welchen die Grafikausgabe stattfinden soll • Direct3D mitteilen, welcher Adapter für die Grafikausgabe gewählt wurde • Zeichenbefehle an Direct3D übermitteln Funktionsweise von Direct3D
Die Organisation der zu zeichnenden Daten • Direct3D mittels des FVF (Flexible Vertex Format) mitteilen, welche Komponenten die zu zeichnenden Vertices enthalten sollen Beispielsweise: • Position • Normalenvektor • Farbkomponenten • … • Erzeugen von „Vertexpuffern“ für die Ablage der Vertices Funktionsweise von Direct3D
Die Organisation der zu zeichnenden Daten • Beispiel: Jeweils drei im Vertexpuffer abgelegte Vertices werden für das Zeichnen eines Dreieckes herangezogen Funktionsweise von Direct3D
Umrechnung des 3D-Modelles in 2D-Bildschirmkoordinaten • Vertices liegen als dreidimensionale Punkte im Vertexpuffer vor, die Ausgabeoberfläche ist aber zweidimensional • Die Betrachtungsrichtung und die Position der Kamera sollen beliebig sein =>es sind Transformationen erforderlich, welche durch Matrizen repräsentiert werden • Matrix für Kameratransformation enthält Translation und Rotation • Matrix für Projektionstransformation, welche perspektivische Abbildung von 3D nach 2D leistet • Transformierungen werden von D3D berechnet, wenn dies die Grafikkarte nicht beherrscht Funktionsweise von Direct3D
Vortragsinhalt Klärung der Aufgabenstellung Funktionsweise von Direct3D →Bestandteile des Funktionszeichenprogrammes Demonstration des Funktionszeichenprogrammes Zusammenfassung
Bestandteile des Funktionszeichenprogrammes • Ablaufstruktur • Funktionsparser • Textausgabe in das Zeichenfenster • Koordinatenkreuz • Benutzerinterface beinhaltet Eingaben über • Tastatur während der Darstellung der Funktion • Menü • Dialoge • Logik zur Verwaltung und Berechnung der Funktionsdaten
Ablaufstruktur Bestandteile des Funktionszeichenprogrammes
Funktionsparser • Übernommen und Angepasst an eigene Bedürfnisse • Wiederholtes Berechnen kann beschleunigt ausgeführt werden • Unterstützte Operaden: + - * / ^ • Unterstützte Funktionen: sin asin cos acos tan atan sqrt log log10 Bestandteile des Funktionszeichenprogrammes
Logik zur Verwaltung und Berechnung der Funktionsdaten • Vertices werden in einem Dreiecksraster vorausberechnet: Bestandteile des Funktionszeichenprogrammes
... Logik zur Verwaltung und Berechnung der Funktionsdaten • Zeitparameter: • Für jeden darzustellenden Zeitpunkt muss die Funktion berechnet werden • Der Vertexpuffer muss für jeden Zeitpunkt neu belegt werden Bestandteile des Funktionszeichenprogrammes
Vortragsinhalt Klärung der Aufgabenstellung Funktionsweise von Direct3D Bestandteile des Funktionszeichenprogrammes →Demonstration des Funktionszeichenprogrammes Zusammenfassung
Vortragsinhalt Klärung der Aufgabenstellung Funktionsweise von Direct3D Bestandteile des Funktionszeichenprogrammes Demonstration des Funktionszeichenprogrammes → Zusammenfassung
Zusammenfassung • Nutzen des Funktionsplotters • Hilfe fehlt • Mögliche Verbesserungen des Funktionszeichenprogrammes: • Einsatz von Echtzeitbeleuchtungseffekten • Einbau einer Kollisionsabfrage • Erweiterung der „Autopilot“-Möglichkeiten