Diplomarbeitsvortrag (PPT

Werbung
Fachhochschule Amberg-Weiden
Fachbereich Elektro- und Informationstechnik
Präsentation der Diplomarbeit:
„Erstellung eines 3D-Funktionszeichenprogramms 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
2
Klärung der Aufgabenstellung
1.
2.
3.
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?
3
Welche 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
=>Motivation: „Erfahren“ von Funktionen soll interaktiv
möglich sein, um ein Verständnis für die
Funktionsgleichung zu entwickeln
Klärung der Aufgabenstellung
4
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
5
Warum soll die Programmiersprache C++ verwendet
werden?
• schnell
• flexibel
Klärung der Aufgabenstellung
6
Vortragsinhalt
Klärung der Aufgabenstellung
→ Funktionsweise von Direct3D
Bestandteile des Funktionszeichenprogrammes
Demonstration des Funktionszeichenprogrammes
Zusammenfassung
7
Funktionsweise von Direct3D
Auf folgende Aspekte soll im Anschluss eingegangen
werden:
1.
2.
3.
4.
Im Gesamtzusammenhang auftretende Vorgänge beim
Zeichnen mit Direct3D
Zusammenspiel von Direct3D mit einem Win32Programm
Die Organisation der zu zeichnenden Daten
Umrechnung des 3D-Modelles in 2DBildschirmkoordinaten
8
Im Gesamtzusammenhang auftretende Vorgänge beim
Zeichnen mit Direct3D
Win32-Anwendung
Direct3D
HAL
Hardware Abstractive Layer
Grafikkartentreiber
Grafikkarte
Monitor
Funktionsweise von Direct3D
9
Zusammenspiel von Direct3D mit einem Win32Programm
•
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:
1.
2.
3.
4.
5.
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
10
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
11
Die Organisation der zu zeichnenden Daten
• Beispiel: Jeweils drei im Vertexpuffer abgelegte Vertices
werden für das Zeichnen eines Dreieckes herangezogen
Vertices
Vertexpuffer
Dreieck
Funktionsweise von Direct3D
12
Umrechnung des 3D-Modelles in 2DBildschirmkoordinaten
• 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
13
Vortragsinhalt
Klärung der Aufgabenstellung
Funktionsweise von Direct3D
→Bestandteile des Funktionszeichenprogrammes
Demonstration des Funktionszeichenprogrammes
Zusammenfassung
14
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
15
Ablaufstruktur
Anwendung
herunterfahren
Initialisierung
nein
Anwendung
fortsetzen?
ja
verarbeite
Windows-Meldungen
Synchronisation
verarbeite
Benutzereingaben
Zeichenvorgang
führe
Aktualisierungen der
Objekte durch
Bestandteile des
Funktionszeichenprogrammes
16
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
17
Logik zur Verwaltung und Berechnung der
Funktionsdaten
• Vertices werden in einem Dreiecksraster
vorausberechnet:
Y
X
Bestandteile des
Funktionszeichenprogrammes
18
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
...
Zeitpunkt 1
Zeitpunkt 2
Bestandteile des
Funktionszeichenprogrammes
Zeitpunkt n
19
Vortragsinhalt
Klärung der Aufgabenstellung
Funktionsweise von Direct3D
Bestandteile des Funktionszeichenprogrammes
→ Demonstration des Funktionszeichenprogrammes
Zusammenfassung
20
Vortragsinhalt
Klärung der Aufgabenstellung
Funktionsweise von Direct3D
Bestandteile des Funktionszeichenprogrammes
Demonstration des Funktionszeichenprogrammes
→ Zusammenfassung
21
Zusammenfassung
•
•
•
Nutzen des Funktionsplotters
Hilfe fehlt
Mögliche Verbesserungen des
Funktionszeichenprogrammes:
–
–
–
Einsatz von Echtzeitbeleuchtungseffekten
Einbau einer Kollisionsabfrage
Erweiterung der „Autopilot“-Möglichkeiten
22
Herunterladen