Title: Pr
1Präsentation der Diplomarbeit
Fachhochschule Amberg-WeidenFachbereich Elektro-
und Informationstechnik
- Erstellung eines 3D-Funktions- zeichenprogramms
in der Programmiersprache C unter Verwendung
von Direct3D
von Stefan Bartmann Studiengang Elektrotechnik,
Studienschwerpunkt Multimediatechnik
Datum 27. 01.2003
2Vortragsinhalt
- Klärung der Aufgabenstellung
- Funktionsweise von Direct3D
- Bestandteile des Funktionszeichenprogrammes
- Demonstration des Funktionszeichenprogrammes
- Zusammenfassung
3Klä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?
4Welche Art von Funktionszeichenprogramm ist zu
erstellen?
- Funktionen der Form z f(x,y) als Fläche im
Raum darstellen - Angabe eines Zeitparameters in der
Funktionsgleichung möglich - Interaktivität in Echtzeit während der
Darstellung möglich - Skalierbarkeit
- gtMotivation Erfahren von Funktionen soll
interaktiv möglich sein, um ein Verständnis für
die Funktionsgleichung zu entwickeln
5Wieso 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 - gt Ausführungsgeschwindigkeit
- Voraussetzung Es muss eine Grafikkarte vorhanden
sein, welche Hardwareunterstützung beim Zeichnen
bietet!
6Warum soll die Programmiersprache C verwendet
werden?
7Vortragsinhalt
- Klärung der Aufgabenstellung
- Funktionsweise von Direct3D
- Bestandteile des Funktionszeichenprogrammes
- Demonstration des Funktionszeichenprogrammes
- Zusammenfassung
8Funktionsweise 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-Bildschirmkoordin
aten
9Im Gesamtzusammenhang auftretende Vorgänge beim
Zeichnen mit Direct3D
-
- Hardware Abstractive Layer
10Zusammenspiel 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
11Die 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
12Die Organisation der zu zeichnenden Daten
- Beispiel Jeweils drei im Vertexpuffer abgelegte
Vertices werden für das Zeichnen eines Dreieckes
herangezogen
13Umrechnung des 3D-Modelles in 2D-Bildschirmkoordin
aten
- Vertices liegen als dreidimensionale Punkte im
Vertexpuffer vor, die Ausgabeoberfläche ist aber
zweidimensional - Die Betrachtungsrichtung und die Position der
Kamera sollen beliebig sein - gtes 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
14Vortragsinhalt
- Klärung der Aufgabenstellung
- Funktionsweise von Direct3D
- ?Bestandteile des Funktionszeichenprogrammes
- Demonstration des Funktionszeichenprogrammes
- Zusammenfassung
15Bestandteile 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
16Ablaufstruktur
17Funktionsparser
- Ü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
18Logik zur Verwaltung und Berechnung der
Funktionsdaten
- Vertices werden in einem Dreiecksraster
vorausberechnet
19...
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
20Vortragsinhalt
- Klärung der Aufgabenstellung
- Funktionsweise von Direct3D
- Bestandteile des Funktionszeichenprogrammes
- ? Demonstration des Funktionszeichenprogrammes
- Zusammenfassung
21Vortragsinhalt
- Klärung der Aufgabenstellung
- Funktionsweise von Direct3D
- Bestandteile des Funktionszeichenprogrammes
- Demonstration des Funktionszeichenprogrammes
- ? Zusammenfassung
22Zusammenfassung
- Nutzen des Funktionsplotters
- Hilfe fehlt
- Mögliche Verbesserungen des Funktionszeichenprogra
mmes - Einsatz von Echtzeitbeleuchtungseffekten
- Einbau einer Kollisionsabfrage
- Erweiterung der Autopilot-Möglichkeiten