direct x9 vs direct xx
DESCRIPTION
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 - PowerPoint PPT PresentationTRANSCRIPT
Direct X9 vs Direct Xx
Seminarvortragvon
Dennis Jähnert
Sommersemester 2003Prof. Dr. Klement, Prof. Dr. Kneisel
Inhalt des Vortrags
1.Einleitung2.Die Komponenten von DirectX3.Installation und De-Installation von DirectX4.Vertex- und Pixel Shader5.DirectX 9.06.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 GL2. DirectX3. DFX Gilde
Inhalt des Vortrags
1.Einleitung2.Die Komponenten von DirectX3.Installation und De-Installation von DirectX4.Vertex- und Pixel Shader5.DirectX 9.06.Grafikkarten und DirectX 9.0 7.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
1.Einleitung2.Die Komponenten von DirectX3.Installation und De-Installation von DirectX4.Vertex- und Pixel Shader5.DirectX 9.06.Grafikkarten und DirectX 9.0 7.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
1.Einleitung2.Die Komponenten von DirectX3.Installation und De-Installation von DirectX4.Vertex- und Pixel Shader5.DirectX 9.06.Grafikkarten und DirectX 9.0 7.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
1.Einleitung2.Die Komponenten von DirectX3.Installation und De-Installation von DirectX4.Vertex- und Pixel Shader5.DirectX 9.06.Grafikkarten und DirectX 9.0 7.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 Details z.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
1.Einleitung2.Die Komponenten von DirectX3.Installation und De-Installation von DirectX4.Vertex- und Pixel Shader5.DirectX 9.06.Grafikkarten und DirectX 9.0 7.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
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
Inhalt des Vortrags
1.Einleitung2.Die Komponenten von DirectX3.Installation und De-Installation von DirectX4.Vertex- und Pixel Shader5.DirectX 9.06.Grafikkarten und DirectX 9.0 7.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!