Direct X9 vs Direct Xx

40
Direct X9 vs Direct Xx Seminarvortrag von Dennis Jähnert Sommersemester 2003 Prof. Dr. Klement, Prof. Dr. Kneisel

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 Presentation

Transcript of Direct X9 vs Direct Xx

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

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

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!

Vielen Dank für Ihre Aufmerksamkeit !