400 likes | 500 Views
Direct X9 vs Direct Xx. Seminarvortrag von Dennis Jähnert. Sommersemester 2003 Prof. Dr. Klement, Prof. Dr. Kneisel. Inhalt des Vortrags. Einleitung Die Komponenten von DirectX Installation und De-Installation von DirectX Vertex- und Pixel Shader DirectX 9.0
E N D
Direct X9 vs Direct Xx Seminarvortrag von Dennis Jähnert Sommersemester 2003 Prof. Dr. Klement, Prof. Dr. Kneisel
Inhalt des Vortrags • Einleitung • Die Komponenten von DirectX • Installation und De-Installation von DirectX • Vertex- und Pixel Shader • DirectX 9.0 • Grafikkarten und DirectX 9.0 • 7.Fazit
1. Einleitung Was verbirgt sich hinter dem Namen DirectX ? • Medientechnologie von Microsoft für das Betriebssystem Windows • Zusammenfassung von mehreren Komponenten (Schnittstellen) • Professionelle Entwicklung von interaktiven Anwendungen • Einfaches und direktes Ansprechen der Multimedia-Hardware
1. Einleitung Die Geschichte von DirectX • DirectX wurde 1995 von Mircosoft eingeführt • Sollte die Nachteile von Windows zu DOS beseitigen • Vorteile von Windows voll ausnutzen • Dem Ruf nach Programmierstandarts nachkommen
1. Einleitung Die Geschichte von DirectX MS-DOS: - „Single Task“ Betriebssystem - Betriebssystem und Anwendung haben die gleichen Speicherrechte - Vorteil: direkter Hardwarezugriff hohe Performance - Nachteil: neue Hardwareinstallation (für neue Grafikkarte neuer Treiber für jedes Programm) Windows: - „Multitasking“ Betriebssystem - zentrale Ressourcenverwaltung - einfache Installation von Hard- und Software (nur noch ein Treiber vom Hersteller für alle Anwendungen) - kein direkter Hardwarezugriff möglich hoher Leistungsverlust - Spiele anfangs nur für MS-DOS-32-Bit Modus geschrieben
1. Einleitung Die Geschichte von DirectX Kleines Beispiel für diesen Leistungsverlust: Die Farbe eines Buchstaben soll von blau nach weiß geändert werden. DOS: - im Grafiktreiberprogramm einfach die entsprechenden Bits ändern und direkt in den Bildspeicher schreiben (wenige Maschinenbefehle) Win: - Das Zeichen muss komplett neu ausgegeben werden - Dafür notwendig Font-Manager, Fenster-Manager und verschiedene Zeichenroutinen (mehrere tausend Maschinenbefehle)
1. Einleitung Die Geschichte von DirectX • Ein weiteres Problem kam mit der schnellen Hardwareentwicklung • Vor 5 Jahren trug die CPU noch die ganze Rechenarbeit eines Spiels • Grafikkartenhersteller brachten Karten mit GPU auf den Markt (Bsp.: Matrox Mystique, 3DFX Voodoo I und Elsa Victory) • Für jede Grafikkarte eigene Version des Spieles • Drei Programmierstandarts entwickelten sich: • 1. Open GL • 2. DirectX • 3. DFX Gilde
Inhalt des Vortrags • Einleitung • Die Komponenten von DirectX • Installation und De-Installation von DirectX • Vertex- und Pixel Shader • DirectX 9.0 • Grafikkarten und DirectX 9.0 • Fazit
2. Die Komponenten von DX • Grafikkartenkomponenten - Direct Draw - Direct 3D - Direct Video • Soundkartenkomponenten - Direct Sound - Direct Music • Direct Input • Direct Setup • Direct Media - Direct Show - Direct Play - Direct Animation
2. Die Komponenten von DX Grafikkartenkomponenten: • Direct Draw - Fundament für andere DirectX Komponenten - Flacker- und zerrfreie Grafik durch Seitenumschaltung - Zugriff auf spezielle Grafikprozessoren - Speicherverwaltung für den Bildschirm • Direct 3D - Schnittstellen für dreidimensionales Rendering auf Soft- und Hardwareebene • - Transformation Module sorgt für die Berechnung von 3D-Objekten • - Lightning Module korrekte Beleuchtung von Objekten • - Raster Module belegt Objekte mit Texturen und berechnet das Bild • - 2 verschiedene Programmiermodi: • - Retained Mode (komplette Grafikengine) • - Immediate Mode (nur Funktionen zur Ansteuerung der Grafikhardware) • Direct Video - Einbindung von Videosequenzen in Anwendungen
2. Die Komponenten von DX Soundkartenkomponenten: • Direct Sound - Sorgt für Stereo und 3D-Sound - Sehr geringe Latenz - Speicherverwaltung der Soundkarte - Mehrere Soundquellen mischen - Aufnahme von Sound • Direct Music - Arbeitet unmittelbar mit der Direct Sound Komponente zusammen - Wave-Streams können z.B. aus Midi-Dateien mittels Soft- oder Hardware Synthesizer erzeugt werden
2. Die Komponenten von DX • Direct Input - Vorgesehen für das Programmieren von Eingabegeräten - Ebenfalls kurze Latenzzeiten - Unterstützt auch Eingabegeräte, wie Force Feedback Joysticks • Direct Setup - Automatisiert die Installation und Aktualisierung der anderen DirectX Komponenten
2. Die Komponenten von DX Direct Media • Direct Show - Abspielen von Video-Streams aus Dateien oder dem Internet - die Aufnahme von Videosequenzen über entsprechende Videokarten • Direct Play - Schnittstelle zu Computernetzen - Synchronisation, Organisation, Spielstart • Direct Animation - Animationen, Streams und die Integration verschiedener Medientypen - Anwendung auch bei Web-Animationen und in dynamic HTML
Inhalt des Vortrags • Einleitung • Die Komponenten von DirectX • Installation und De-Installation von DirectX • Vertex- und Pixel Shader • DirectX 9.0 • Grafikkarten und DirectX 9.0 • Fazit
3. Installation & De-Installation • Installation: - Immer die neuste Version benutzen und installieren - Jede DirectX Version ist abwärtskompatibel nicht Downgraden - Tipp: DirectX immer erst am Ende des Einrichten eines PC installieren • De-Installation: - Mircosoft lässt es nicht zu DirectX zu deinstallieren - Nicht ratsam eine ältere Version „drüberzuinstallieren“ Windows GAU - Einige Anbieter bieten Tools zum deinstallieren an • Hier ein paar Tipps zur De-Installation: - Vorher alle wichtigen Dateien sichern - Backup der „Window Registry“ - Die De-Installation von DX nur im abgesicherten Modus von Windows durchführen
Inhalt des Vortrags • Einleitung • Die Komponenten von DirectX • Installation und De-Installation von DirectX • Vertex- und Pixel Shader • DirectX 9.0 • Grafikkarten und DirectX 9.0 • Fazit
4. Vertex und Pixel Shader Vertex Shader • Was ist überhaupt ein Vertex ? - 3D Szene besteht aus vielen verschiedenen Objekten - Objekte bestehen aus Dreiecken und Polygonen - Fachbegriff für einen Eck- bzw. Stützpunkt eines Dreieckes oder Polygons - Eckpunkte sind mit Linien verbunden Drahtgittermodell - Ein Vertex enthält viele Informationen (z.B. seine Koordinaten im dreidimensionalen Raum, Gewicht, Textur, Nebel, Normale, Punktgröße und Farbe) - Vertex ist „Atom“ einer 3D-Szene
4. Vertex und Pixel Shader Vertex Shader • Eckpunkte eines Objektes oder einer kompletten Szene mit speziellen Routinen bearbeiten • CPU wird dadurch kaum belastet • Kein bremsender Datenverkehr zwischen CPU und Grafikkarte • Vertex-Informationen können mit kleinen Programm-Algorithmen verändert werden • Beispiele für Veränderungen: - Gestalt eines Objekts - Bewegungen, Interpolationen, Spiegelungen, Deformationen - Farbwerte, Licht, Texturkoordinaten, Oberflächenerscheinung
4. Vertex und Pixel Shader Pixel Shader • Übernimmt das Rendering der Pixel • Sichtbaren Bildpunkte (Pixel) eine 3D-Szene werden generiert • Hier werden die Farb- und Lichtinformationen mit Texturdaten kombiniert • Überwachen der Z-Koordinaten • Kombination von Vertex und Pixel Shader realistische 3D-Gafiken auf Pixelebene darstellen • Erhöhung des Detailgehalt
Inhalt des Vortrags • Einleitung • Die Komponenten von DirectX • Installation und De-Installation von DirectX • Vertex- und Pixel Shader • DirectX 9.0 • Grafikkarten und DirectX 9.0 • Fazit
5. DirectX 9.0 Die Vorgänger • Game SDK • DirectX 1.0 • DirectX 2.0 • DirectX 3.0 • DirectX 5.x • DirectX 6.x • DirectX 7.x • DirectX 8.x
Die Vorgänger • Game SDK (Software Development Kit) • Einführung 1994 • Funktionalität war recht bescheiden • Beispiel: Vollbildmodus mit Behandlung der Anwendung als Einprozess-System • DirectX 1.0 • Einführung 1995 mit Windows 95 • Vier Schnittstellen (DirectDraw, DirectInput, DirectPlay und DirectSound)
Die Vorgänger • DirectX 2.0 • Veröffentlichung 1996 • Einführung des Moduls Direct3D • DirectX 3.0 • Erstmalige MMX-Unterstützung • DirectSound DirectSound 3D • Steuergerätemodul
Die Vorgänger • DirectX 5.x • Direct3D bekam Vertex Buffer • Eingabegeräte mit der Force Feedback Technologie • In Verbindung mit Win98 Hardware 3D-Audio-Beschleunigung • Verbesserte MMX-Unterstützung • Einführung von DirectSetup • DirectX 6.x • Single- Pass Multitexturing, Bump Mapping, Texture Compression, Stancil Buffers • Verbesserte MMX-Unterstützung • AMD 3D NOW-Unterstützung • DirectMusic ab Version 6.1
Die Vorgänger • DirectX 7.x • TnL (Transformation and Lighting) • Vertex Blending • Pixel Shader • Cubic Environment Mapping • Schnittstelle zu Visual Basic • DirectX 8.x • Zusätzliche 3D-Effekte wie Points Sprites • Vertex Shader • DirectPlay Voice • DirectMusic, DirectSound und DirectSound 3D DirectAudio • DirectInput unterstützt Controller unabhängig vom Spiel
5. DirectX 9.0 • Mai 2002 erste Beta-Version • Veröffentlichung Weihnachten 2002 • Anfangs nur Webinstaller, später Full-Download
Die Neuerungen Direct3D API • High Level Shader Language (HLSL) C-ähnliche Syntax • Pixel Shader verarbeitet jetzt bis zu 96 Befehle • aufwendige Farbberechnungen für Materialien • (Haut, Haare oder rostiges Metall) • Vertex Shader • - Programme mit bis zu 256 Befehlen • - Sprünge • - Schleifen • - Unterprogramme • noch realistischere Figuren mit minimaler CPU-Unterstützung
Die Neuerungen Direct3D API Hochpräzise Gleitkomma-Datenformate • Farbberechnungen vermeiden Farbverfälschungen bis zu • 16-fach überlagerten Texturen • Berechnungen im linearen Farbraum mehr Kontrolle über Effekte • und deren Genauigkeit
Die Neuerungen Displacement Mapping • grobe Umrisse von Objekten bekommen Höhenprofil • individuelle Detailsz.B. für Landschaften oder Gesichter • Umstritten bei den Entwicklern Entzieht einen Teil der Kontrolle über das Endprodukt • Nvidia kündigte Direct X9 Chip GeForceFX ohne Displacement Mapping Einheit an
Die Neuerungen Schnittstellen • Direct-Musik, Direct-Play und Direct-Show sollen • Geschwindigkeitsverbesserungen bringen Werkzeuge und Assistenten - Verwaltung von Patch- und Polygon-Meshes, DirectX-Media- und MIDI-Objekte • Schnittstelle Visual Studio .NET solide Basisumgebung für professionelle Grafikanwendungen
Inhalt des Vortrags • Einleitung • Die Komponenten von DirectX • Installation und De-Installation von DirectX • Vertex- und Pixel Shader • DirectX 9.0 • Grafikkarten und DirectX 9.0 • Fazit
6. Grafikkarten & DirectX 9.0 • ATI hat Nvidia langsam aber sicher überrundet • Ausbau des Vorsprungs durch den Bau von DirectX 9 Chips • ATI 4 Varianten von DirectX 9 Chips (ATI Radeon Chips 9500, 9500 pro, 9700,9700 pro) • Nivdia GeforceFX ließ auf sich warten • CeBIT 2003: • Radeon 9800er • GeforceFX 5800 ultra
6. Grafikkarten & DirectX 9.0 Lohnt sich der Umstieg auf DirectX 9.0 Hardware? • Karten sind noch verhältnismäßig teuer • DirectX 9.0-Anwendungen sind noch nicht auf dem Markt (nur Demos) • 3D-Spiele nutzen noch nicht einmal alle Möglichkeiten von DirectX 8.1 aus • Erste Spiele zum Jahreswechsel 2003/2004 • Nochmals ca. 2 Jahre bis Computerspiele DirectX 9.0 voraussetzen
6. Grafikkarten & DirectX 9.0 Lohnt sich der Umstieg auf DirectX 9.0 Hardware? • Test: DirectX 8.1 gegen DirectX 9.0 • Ernüchternde Ergebnisse • Im Schnitt sind DirectX 9.0-Karten in der Berechnung von DirectX 8.1 Grafiken langsamer • Vorhersehbar, da keine der Benchmarks DirectX 9.0 unterstützt
6. Grafikkarten & DirectX 9.0 DirectX 8.1 gegen DirectX 9.0 Abb. 3 [20] Benchmark Testergebnisse
6. Grafikkarten & DirectX 9.0 DirectX 8.1 gegen DirectX 9.0 Abb. 4 [20] Benchmark Testergebnisse
6. Grafikkarten & DirectX 9.0 DirectX 8.1 gegen DirectX 9.0 Abb. 5 [20] Benchmark Testergebnisse
Inhalt des Vortrags • Einleitung • Die Komponenten von DirectX • Installation und De-Installation von DirectX • Vertex- und Pixel Shader • DirectX 9.0 • Grafikkarten und DirectX 9.0 • Fazit
7. Fazit • DirectX 9.0 solide Entwicklungschnittstelle • Vereinfachte Programmiertechniken (Entwickler) • Neuerungen an Vertex- und Pixel Shader ist viel zu erwarten Noch realistischer Computerspiele • Sicherlich nicht die letzte Version (Anpassung an die Hardware) • Beim Kauf von DirectX 9.0 Hardware ein wenig warten (relativ teuer, keine Anwendungen, Spiele erst zum Jahresende) • Aber morgen sieht alles vielleicht ganz anders aus!