DirectX Großes Seminar von Frank Deseyve. Inhalt Einleitung Grundlagen APIs –DirectDraw &...

72
DirectX Großes Seminar von Frank Deseyve

Transcript of DirectX Großes Seminar von Frank Deseyve. Inhalt Einleitung Grundlagen APIs –DirectDraw &...

Page 1: DirectX Großes Seminar von Frank Deseyve. Inhalt Einleitung Grundlagen APIs –DirectDraw & Direct3D Fazit.

DirectX

Großes Seminarvon

Frank Deseyve

Page 2: DirectX Großes Seminar von Frank Deseyve. Inhalt Einleitung Grundlagen APIs –DirectDraw & Direct3D Fazit.

Inhalt• Einleitung

• Grundlagen

• API‘s– DirectDraw & Direct3D

• Fazit

Page 3: DirectX Großes Seminar von Frank Deseyve. Inhalt Einleitung Grundlagen APIs –DirectDraw & Direct3D Fazit.

Warum DirectX?• PC mit MS-DOS

– Zu viele verschiedene Kombinationen

• Einheitlicher Zugriff auf verschiedene Hardware– Schnell

– Effektiv

– Direkt

• Marktstrategie– Windows forcieren

• Moderne 3D Spiele Software– Maximale Belastung der HW

– Audiovisueller Hochgenuß

Page 4: DirectX Großes Seminar von Frank Deseyve. Inhalt Einleitung Grundlagen APIs –DirectDraw & Direct3D Fazit.

Geschichte• Game SDK (1994)

– Vollbildmodus

– Einprozess-System • DirectX 1.0 (1995)

– DirectDraw– DirectInput– DirectPlay– DirectSound

• DirectX 2.0 (1995)– Direct3D

• DirectX 3.0 (1996)

– DirectSound3D, MMX Device

Page 5: DirectX Großes Seminar von Frank Deseyve. Inhalt Einleitung Grundlagen APIs –DirectDraw & Direct3D Fazit.

Geschichte• DirectX 5.x (1997)

– Vertex Buffer– Force Feedback– 3D Audio Hardware Acceleration– Multimonitor Support

– DirectX Setup • DirectX 6.x (1998)

– Single-Pass Multitexturing– Bump Mapping– Texture Compression– Stencil Buffers– DirectMusic API

Page 6: DirectX Großes Seminar von Frank Deseyve. Inhalt Einleitung Grundlagen APIs –DirectDraw & Direct3D Fazit.

Geschichte• DirectX 7.x (1999)

– Transform and Lightning HAL Device

– Vertex Blending

– Cubic Environment Mapping

– Spezieller Visual Basic Support

• DirectX 8.x (2000)– DIRECT3DX

– Vertex Shader

– Pixel Shader

Page 7: DirectX Großes Seminar von Frank Deseyve. Inhalt Einleitung Grundlagen APIs –DirectDraw & Direct3D Fazit.

Geschichte• Windows 95

– bis DX 8.0a, danach eingestellt

• Windows 98– DX 8.1

• Windows NT/2000– SP6 ~DX3.0a / DX 8.1

• Windows XP– DX 8.1

Page 8: DirectX Großes Seminar von Frank Deseyve. Inhalt Einleitung Grundlagen APIs –DirectDraw & Direct3D Fazit.

Vorbereitungen• DirectX SDK 8.1

– Runtime Version

– Debug Version

• MS Visual C++– Einstellen der Pfadinformationen der DX-SDK Dateien

– Linken von zusätzlichen Bibliotheken (ddraw.lib, dxguid.lib, d3dim.lib)

– Einbinden der Header je nach verwendeter Funktion

Page 9: DirectX Großes Seminar von Frank Deseyve. Inhalt Einleitung Grundlagen APIs –DirectDraw & Direct3D Fazit.

COM• Component Object Model

– Schnittstelle/Implementierung

– Sprachunabhängig

– Wiederverwendbar

Page 10: DirectX Großes Seminar von Frank Deseyve. Inhalt Einleitung Grundlagen APIs –DirectDraw & Direct3D Fazit.

COM• Schnittstelle/Implementierung

• IUknown– QueryInterface()

• Global Unique Identifier– Jedes Schnittstelle bekommt einmalige Nummer

– egal wie oft aufgerufen

– egal aus wieviel verschiedenen Prozessen

• Referenzzähler– AddRef()

– Release()

Page 11: DirectX Großes Seminar von Frank Deseyve. Inhalt Einleitung Grundlagen APIs –DirectDraw & Direct3D Fazit.

COM• Sprachunabhängig

• Zeigersystem von COM

Page 12: DirectX Großes Seminar von Frank Deseyve. Inhalt Einleitung Grundlagen APIs –DirectDraw & Direct3D Fazit.

COM• Wiederverwendbar

– Schnittstellen dürfen nicht verändert werden

– Alte Schnittstellen müssen Weitergeführt werden

• Abwärtskompatibel– IDirectDrawSurface3

– IDirectDrawSurface7

Page 13: DirectX Großes Seminar von Frank Deseyve. Inhalt Einleitung Grundlagen APIs –DirectDraw & Direct3D Fazit.

Architektur• HAL - Hardware Abstraction Layer

• HEL - Hardware Emulation Layer

Page 14: DirectX Großes Seminar von Frank Deseyve. Inhalt Einleitung Grundlagen APIs –DirectDraw & Direct3D Fazit.

Architektur• HAL - Hardware Abstraction Layer

– Schnittstelle zwischen Hardwaretreiber und Applikation

– Kapselt die Funktionalität der HW

– Enthält Tabelle der unterstützten Funktionen

• TnLHAL– Muß von Hardware unterstützt werden

– Erstmalig Geometrie Berechnungen in HW

Page 15: DirectX Großes Seminar von Frank Deseyve. Inhalt Einleitung Grundlagen APIs –DirectDraw & Direct3D Fazit.

Architektur• HEL - Hardware Emulation Layer

– Die meisten Funktionen können emuliert werden– Signifikant langsamer als HAL

• RGB– Softwarerendering – Vereinfachtes Modell– Schnelleres testen der Programme

• Reference Device– Exaktes abbilden der HW in Software– Zum überprüfen der programmierten Effekte auch ohne vorhandene HW

• Praxis: HEL wird nicht ausgeführt, sondern übersprungen

Page 16: DirectX Großes Seminar von Frank Deseyve. Inhalt Einleitung Grundlagen APIs –DirectDraw & Direct3D Fazit.

Performance• Problem: Windows Multitasking BS

• Einzelne Ressourcen verteilt auf mehrere Prozesse• Konservatives Scheduling dieser Ressourcen

– Gegenseitiges unterbrechen der Prozesse

• Träger Overhead von Windows – Anmeldung, Prüfen, Verarbeitung, Weiterleiten, Ausführen

Page 17: DirectX Großes Seminar von Frank Deseyve. Inhalt Einleitung Grundlagen APIs –DirectDraw & Direct3D Fazit.

Performance• Lösung: Pseudo Single Process System

– Ressourcen "bis auf weiteres" anfordern

– Zustände sichern

– In der Regel wird der aktive Prozeß durchgesetzt

– Im Unterbrechungsfall wird vor Wiederaufnahme der alte Zustand hergestellt oder ein Fehler gemeldet

Page 18: DirectX Großes Seminar von Frank Deseyve. Inhalt Einleitung Grundlagen APIs –DirectDraw & Direct3D Fazit.

Komponenten• Funktionalität zum Programmieren

• Schneller Zugriff auf MM-Fähigkeiten von Windows

Page 19: DirectX Großes Seminar von Frank Deseyve. Inhalt Einleitung Grundlagen APIs –DirectDraw & Direct3D Fazit.

Komponenten• DirectX Foundation

– DirectDraw

– Direct3D Immediate Mode

– DirectSound

– DirectMusic

– DirectInput

– DirectPlay

Page 20: DirectX Großes Seminar von Frank Deseyve. Inhalt Einleitung Grundlagen APIs –DirectDraw & Direct3D Fazit.

Komponenten• DirectX Media Layer

– DirectX Transform

– DirectAnimation

– DirectShow

– Direct3D Retained Mode

Page 21: DirectX Großes Seminar von Frank Deseyve. Inhalt Einleitung Grundlagen APIs –DirectDraw & Direct3D Fazit.

DirectDraw

Page 22: DirectX Großes Seminar von Frank Deseyve. Inhalt Einleitung Grundlagen APIs –DirectDraw & Direct3D Fazit.

DirectDraw• IDirectDraw7

– Generischer zugriff auf DD Objecte

• IDirectDrawClipper– Fensterliste rechteckiger Bereiche

• IDirectDrawSurface7– Video- oder Systemspeicherbereich

• IDirectDrawPalette– indizierte Farblisten

• IDirectDrawVideoPort– spezielle Videofunktionen der HW

Page 23: DirectX Großes Seminar von Frank Deseyve. Inhalt Einleitung Grundlagen APIs –DirectDraw & Direct3D Fazit.

DirectDraw

• lpGUID– NULL := Standardtreiber

– DDCREATE_EMULATIONONLY := keine HW-Beschleunigung

– DDCREATE_HARDWAREONLY := keine Emulation

• lplpDD– Platzhalter für DD-Schnittstelle

• iid– Typ der Schnittstelle

Page 24: DirectX Großes Seminar von Frank Deseyve. Inhalt Einleitung Grundlagen APIs –DirectDraw & Direct3D Fazit.

DirectDraw

• hWnd– Handle des Obersten Fenster der Anwendung

• dwFlags– DDSCL_Normal := Verhalten wie Windows-Anwendung

– DDSCL_EXCLUSIVE := Alleiniger Grafik HW Zugriff

– DDSCL_FULLSCREEN := Vollbildmodus

– DDSCL_ALLOWREBOOT := Erlaubt Neustart

Page 25: DirectX Großes Seminar von Frank Deseyve. Inhalt Einleitung Grundlagen APIs –DirectDraw & Direct3D Fazit.

DirectDraw

• lpDDSurfaceDesc2– Zeiger auf Beschreibung der Oberfläche

• lplpDDSurface– Platzhalter für Zeiger auf den Speicherbereich

• ZeroMemory(PVOID Destination, DWORD Length);

Page 26: DirectX Großes Seminar von Frank Deseyve. Inhalt Einleitung Grundlagen APIs –DirectDraw & Direct3D Fazit.

DirectDraw• Arten von Oberflächen

• Offscreen OF– Zum Ablegen andere Bitmapobjecte

• Primäre OF– Zur Darstellung auf dem Bildschirm

• Hintergrundbuffer– Zum schnellen wechseln mit der POF (Flippen)

• Z-Buffer– Tiefeninformationen, Sichtbarkeit von Objekten

Page 27: DirectX Großes Seminar von Frank Deseyve. Inhalt Einleitung Grundlagen APIs –DirectDraw & Direct3D Fazit.

DirectDraw

• Schnelles Wechsel der Oberflächen während des Strahlrücklaufs

• Erstellen einer Umschaltungskette

• DDSurfaceDescription

• Animationen kleiner Objekte (Sprites)

• Animationen des ganzen Bildschirms (Parallax Scrolling)

Page 28: DirectX Großes Seminar von Frank Deseyve. Inhalt Einleitung Grundlagen APIs –DirectDraw & Direct3D Fazit.

DirectDraw

• Nach festlegen der SCL

• Vor erstellen der Primären OF

• Schneidet nicht sichtbare Bereiche ab

Page 29: DirectX Großes Seminar von Frank Deseyve. Inhalt Einleitung Grundlagen APIs –DirectDraw & Direct3D Fazit.

DirectDraw• Zeichnen auf Oberflächen

• Zugriff über DirectDraw

• BitBlt(); oder BltFast();– Direkter Zugriff auf den Speicherbereich mittels Lock();

– Skalierungen

– Binäre Masken

• Zugriff über das GDI für komplexere Zeichentools

• GetDC();– Text

– Kurven

– Geometrische Figuren

Page 30: DirectX Großes Seminar von Frank Deseyve. Inhalt Einleitung Grundlagen APIs –DirectDraw & Direct3D Fazit.

Direct3D• Die 3D-Pipeline

• Transformation– Translierung

– Skalierung

– Rotation

• Clipping– Im Sichtfeld liegende Objekte

– Abschneiden

– Weglassen

Page 31: DirectX Großes Seminar von Frank Deseyve. Inhalt Einleitung Grundlagen APIs –DirectDraw & Direct3D Fazit.

Direct3D• Beleuchtung

– Lichtstärke von Bereichen

– Reflexionen

– Vorbeleuchtet oder Dynamisch berechnet

• Texturierung– Oberflächeneigenschaften

• Entfernen verborgener Oberflächen– Hidden Surface Removal

– Performance

• Rasterisierung– 3D-Welt in 2D-Pixel Darstellung rendern

Page 32: DirectX Großes Seminar von Frank Deseyve. Inhalt Einleitung Grundlagen APIs –DirectDraw & Direct3D Fazit.

Direct3D• 3D-Objekte erzeugen

• Vektoren fester Länge und Richtung

Page 33: DirectX Großes Seminar von Frank Deseyve. Inhalt Einleitung Grundlagen APIs –DirectDraw & Direct3D Fazit.

Direct3D• Positionsvektoren

– mit Beleuchtung

– mit Farbe

– mit Texturen

– mit Normalenvektor

• sind Vertices

Page 34: DirectX Großes Seminar von Frank Deseyve. Inhalt Einleitung Grundlagen APIs –DirectDraw & Direct3D Fazit.

Direct3D• Erstellen der 3D-Objektdaten - Grundfiguren

• Dreieckslisten

Page 35: DirectX Großes Seminar von Frank Deseyve. Inhalt Einleitung Grundlagen APIs –DirectDraw & Direct3D Fazit.

Direct3D• Erstellen der 3D-Objektdaten - Grundfiguren

• Dreiecksstreifen

Page 36: DirectX Großes Seminar von Frank Deseyve. Inhalt Einleitung Grundlagen APIs –DirectDraw & Direct3D Fazit.

Direct3D• Erstellen der 3D-Objektdaten - Grundfiguren

• Dreiecksfächer

Page 37: DirectX Großes Seminar von Frank Deseyve. Inhalt Einleitung Grundlagen APIs –DirectDraw & Direct3D Fazit.

Direct3D• Erstellen der 3D-Objektdaten - Zeichnen

• dptPrimitiveType– D3DPT_TRIANGLELIST– D3DPT_TRIANGLESTRIP– D3DPT_TRIANGLEFAN

• dwVertexTypeDesc

– Typ der Vertices (unbeleuchtet, vorbeleuchtet, aut.beleuchtet)

Page 38: DirectX Großes Seminar von Frank Deseyve. Inhalt Einleitung Grundlagen APIs –DirectDraw & Direct3D Fazit.

Direct3D• Besser indizierte 3D-Objektdaten - Zeichnen

• lpwIndices– Zeiger auf Array mit den Werten der Indizes

• dwIndexCount– Anzahl der Indizes

Page 39: DirectX Großes Seminar von Frank Deseyve. Inhalt Einleitung Grundlagen APIs –DirectDraw & Direct3D Fazit.

Direct3D• Optimal komplexe 3D-Objektdaten

• Einlesen von .X Dateien– Klasse CD3DFile .Load(); .Scale(); .Render();

• Templates– Verticesheader– Normale-Spitzen– Textur-Kanten– Beleuchtung– Frames

• Lightwave, 3DSM

• DX-SDK bietet spezielle Konvertierungstools– CONV3DS.EXE

Page 40: DirectX Großes Seminar von Frank Deseyve. Inhalt Einleitung Grundlagen APIs –DirectDraw & Direct3D Fazit.

Direct3D• Objekttransformation

• Matrizen ermöglichen einfache Berechnung

• Klasse D3DMath

Page 41: DirectX Großes Seminar von Frank Deseyve. Inhalt Einleitung Grundlagen APIs –DirectDraw & Direct3D Fazit.

Direct3D• Translation Skalierung

• Rotation um X,Y,Z Achse

Page 42: DirectX Großes Seminar von Frank Deseyve. Inhalt Einleitung Grundlagen APIs –DirectDraw & Direct3D Fazit.

Direct3D• Komplexe Transformationen: Animationen

• Templates– FloatKey

– TimedFloatKey

– AnimationKey

– AnimationOptions

– Animation

– AnimationSet

• Auf hierarchierte Objekte

• Frames

Page 43: DirectX Großes Seminar von Frank Deseyve. Inhalt Einleitung Grundlagen APIs –DirectDraw & Direct3D Fazit.

Direct3D• Oberfläche der Objekte

• Texture Mapping– Bitmaps in Surfaces

– Max 8 Stufen für Effekt

– Überblenden, mischen usw.

Page 44: DirectX Großes Seminar von Frank Deseyve. Inhalt Einleitung Grundlagen APIs –DirectDraw & Direct3D Fazit.

Direct3D• 4 Arten der Adressierung (u,v)

• Wrap– Periodische Wiederholung

• Mirror– Exkates Spiegel an einer Achse

Page 45: DirectX Großes Seminar von Frank Deseyve. Inhalt Einleitung Grundlagen APIs –DirectDraw & Direct3D Fazit.

Direct3D• Clamp

– Außerhalb liegende Texel werden auf die nächste Kante gemapt

• Border Color– Außerhalb liegende Texel werden eingefärbt

Page 46: DirectX Großes Seminar von Frank Deseyve. Inhalt Einleitung Grundlagen APIs –DirectDraw & Direct3D Fazit.

Direct3D• Mip-Mapping

– Gleiche Texturen in verschieden Qualitäten

– Je nach Entfernung

Page 47: DirectX Großes Seminar von Frank Deseyve. Inhalt Einleitung Grundlagen APIs –DirectDraw & Direct3D Fazit.

Direct3D• Point-Sampling

– Mittelwert aus 2 Texel

• Bilineare Filterung– Gewichteter Mittelwert aus 4 Texel

– Mit Mip-Maps kombinierbar

• Trilineare Filterung– Braucht Mip-Maps

– Mittelwert aus dem Vor- und Nachmipmap

– Weiche Übergänge, gute Qualität

Page 48: DirectX Großes Seminar von Frank Deseyve. Inhalt Einleitung Grundlagen APIs –DirectDraw & Direct3D Fazit.

Direct3D• Beleuchtung der Objekte

• Umgebungslicht

• Punktlichter Scheinwerfer Gerichtetes Licht

Page 49: DirectX Großes Seminar von Frank Deseyve. Inhalt Einleitung Grundlagen APIs –DirectDraw & Direct3D Fazit.

Direct3D• dltType

– Art des Lichts

• dcvDiffuse, dcvSpecular, dcvAmbient– Farbe des Lichts

• dvPosition, dvDirection, dvRange– Positionierung des Lichts

• dvFalloff– Lichtintensität Kegel

• dvAttenuation– Konstante, Lineare, Quadratische Abschwächung

• dvTheta, dvPhi– Kegelwinkel

Page 50: DirectX Großes Seminar von Frank Deseyve. Inhalt Einleitung Grundlagen APIs –DirectDraw & Direct3D Fazit.

Direct3D• IDirect3Ddevice7:SetMaterial()

– Material der Objektoberfläche

• Ambient– Umgebungsreflektion

• Diffuse– Diffuse Reflektionen

• Specular– Glanzlichter

Page 51: DirectX Großes Seminar von Frank Deseyve. Inhalt Einleitung Grundlagen APIs –DirectDraw & Direct3D Fazit.

Direct3D• Darstellung auf dem Bildschirm

• Welttransformation– Für jedes Objekt

Page 52: DirectX Großes Seminar von Frank Deseyve. Inhalt Einleitung Grundlagen APIs –DirectDraw & Direct3D Fazit.

Direct3D• Ansichtstransformation

– Der Blickwinkel des Betrachters/Kamera

• mat: Referenz auf die resultierende Matrix

• vFrom: Position des Betrachters

• vAt: Position auf die geschaut wird

• vWorldUp: Vom Betrachter nach oben gehender Vektor

Page 53: DirectX Großes Seminar von Frank Deseyve. Inhalt Einleitung Grundlagen APIs –DirectDraw & Direct3D Fazit.

Direct3D• Sichtkegel

• mat: Referenz auf eine existierende Matrix • fFov: Sichtfeld in Radian• fNearPlane: Abstand der nahen Clippingebene vom Betrachter• fFarPlane: Abstand der fernen Clippingebene vom Betrachter

Page 54: DirectX Großes Seminar von Frank Deseyve. Inhalt Einleitung Grundlagen APIs –DirectDraw & Direct3D Fazit.

Direct3D• Bildschirmtransformation

• dwX: Pixelkoordinate der linken Seite des Viewports

• dwY: Pixelkoordinate der rechten Seite des Viewports

• dwWidth: Breite des Viewports in Pixeln

• dwHeight: Höhe des Viewports in Pixeln

• dvMinZ:kleinster transformierter Z-Wert für die nahe Clippingebene, wird üblicherweise auf 0.0 gesetzt

Page 55: DirectX Großes Seminar von Frank Deseyve. Inhalt Einleitung Grundlagen APIs –DirectDraw & Direct3D Fazit.

Direct3D• Fortgeschrittenen Funktionen

• Z-Buffer– Tiefeninformationen

Page 56: DirectX Großes Seminar von Frank Deseyve. Inhalt Einleitung Grundlagen APIs –DirectDraw & Direct3D Fazit.

Direct3D• Stencil-Buffer

• Indizierte Schablone im Pixelbereich

• 1-bit– Maskierung von Bildinhalten

– Überblendeffekte

• 8-bit– Echtzeit Volumennebel

– Reflexionen

Page 57: DirectX Großes Seminar von Frank Deseyve. Inhalt Einleitung Grundlagen APIs –DirectDraw & Direct3D Fazit.

Direct3D• Bump-Mapping

– Strukturierte Objectoberflächen

• Emboss– Monochrome Textur in Lichtrichtung verschoben

– Kummuliert mit Basis

• Environment– Berechnet reflektierende Licht an jedem Texel

– Sehr genaues Abbild

– Inkompatibel mit dynamischen Lichtquellen

Page 58: DirectX Großes Seminar von Frank Deseyve. Inhalt Einleitung Grundlagen APIs –DirectDraw & Direct3D Fazit.

Direct3D• Environment-Mapping

– Simulation von reflektierenden Oberflächen

– Statisch oder Dynamisch

Page 59: DirectX Großes Seminar von Frank Deseyve. Inhalt Einleitung Grundlagen APIs –DirectDraw & Direct3D Fazit.

DirectSound• Flexibler Audiomixer

• Nutzt AudioHW wenn möglich, sonst SW

• Schnell, geringe Latenz

Page 60: DirectX Großes Seminar von Frank Deseyve. Inhalt Einleitung Grundlagen APIs –DirectDraw & Direct3D Fazit.

DirectSound• Sampleraten-/Formatkonvertierung

• 3D-Audiofunktionen

– Position und Richtung von Hörer und Schallquellen

• Doppler-Effekt

– Entfernungsabhängige Dämpfung

• HRTF-Funktionen

– Head-Related-Transfer-Functions – Biologisch-physikalischen Eigenschaften des menschlichen

Gehörsystems

Page 61: DirectX Großes Seminar von Frank Deseyve. Inhalt Einleitung Grundlagen APIs –DirectDraw & Direct3D Fazit.

DirectMusic• Klangerzeugung über Softwaresynthesizer

• Ansteuerung externer Synthesizer

• MIDI-Schnittstelle

• DirectMusic Producer– Noten, Akkorde, Phrasierung

Page 62: DirectX Großes Seminar von Frank Deseyve. Inhalt Einleitung Grundlagen APIs –DirectDraw & Direct3D Fazit.

DirectMusic• IDirectMusicPerformance Objekt

– Dynamische Steuerung zur Laufzeit

– Musikstücke mit Eigenschaften belegen

• DLS - Downloadable Sounds– Tabelle von Instrumentklänge

– Egal welche HW, immer gleicher Sound

Page 63: DirectX Großes Seminar von Frank Deseyve. Inhalt Einleitung Grundlagen APIs –DirectDraw & Direct3D Fazit.

DirectInput• Vier Kategorien von Eingabegeräten

– Standard-System-Tastatur

– Maus-ähnliche Geräte (Maus, Touchpad, Trackball)

– Joysticks

– Force-Feedback-Geräte (Joystick, Gamepad, Lenkrad, VR-Helm,

VR-Anzug)

Page 64: DirectX Großes Seminar von Frank Deseyve. Inhalt Einleitung Grundlagen APIs –DirectDraw & Direct3D Fazit.

DirectInput• Datenmodus

– Absolut (üblicherweise für die Achsen von Joysticks) – Relativ (bei unbeschränkten Absolutwerten wie z. B. einer Maus).

• Datenzugriff– Unmittelbar (es wird eine aktuelle Zustandsbeschreibung des Geräts geliefert)

– Gepuffert (Informationen über Änderungen mit Zeitstempel und einem

Zählerwert werden gespeichert) • Datenabfrage

– Polling (die Anwendung kümmert sich selbst durch wiederholtes Abrufen verfügbarer Daten um den Informationsaustausch)

– Event notification (Benachrichtigung über anstehende Daten mittels des Win32-

API)

Page 65: DirectX Großes Seminar von Frank Deseyve. Inhalt Einleitung Grundlagen APIs –DirectDraw & Direct3D Fazit.

DirectPlay• Zugriff auf Kommunikationsdienste

– Internet– Modem– Nullmodem

– Lokales Netzwerk (LAN)

• Emulation der vom zugrundeliegenden Netzwerk nicht unterstützten Funktionen

• Dynamische Anpassung der Latenzzeiten und Bandbreite

Page 66: DirectX Großes Seminar von Frank Deseyve. Inhalt Einleitung Grundlagen APIs –DirectDraw & Direct3D Fazit.

DirectPlay• Aufbau einer Spielsitzung (Session)

– Erzeugung eines DirectPlay-Objekts

– Ermittlung der Connection Shortcuts

– Auswahl einer bestimmten Verbindung

– Bestimmung der bereits existierenden Communication Sessions – Eintreten in eine bestehende, oder Erzeugung einer neuen Sitzung

• Mit oder ohne Host– Offenen Sitzung

– Password Protected

– Private

Page 67: DirectX Großes Seminar von Frank Deseyve. Inhalt Einleitung Grundlagen APIs –DirectDraw & Direct3D Fazit.

DirectPlay• Custom Messages

– Selbstdefinierte Nachrichten

• System Messages– Automatisch generierte Nachrichten

• Datensicherheit– Verschlüsselung

– Signierung

– Garantie (Zertifizierung)

Page 68: DirectX Großes Seminar von Frank Deseyve. Inhalt Einleitung Grundlagen APIs –DirectDraw & Direct3D Fazit.

DirectXTransform• Dynamische 2D/3D Grafikeffekte auf Bitmapgrafiken

– Alpha-Blending

– Procedural Surfaces

– Morphing

– Digitale Filter

• Umfangreiche Unterstützung Grafikformate

• Anwendungsbasiert– Webinhalte (HTML)

– Plugins für Photoshop

– Skripte, Attribute

Page 69: DirectX Großes Seminar von Frank Deseyve. Inhalt Einleitung Grundlagen APIs –DirectDraw & Direct3D Fazit.

DirectShow• Streaming Media Architecture

• Wiedergabe und Aufnahme von Datenströmen

• Formatkonvertierung– WAV, MP3, MPEG, AVI

• Komprimierung von Audio-/Videodaten

• WDM-Treiber

• Legacy-Treiber

Page 70: DirectX Großes Seminar von Frank Deseyve. Inhalt Einleitung Grundlagen APIs –DirectDraw & Direct3D Fazit.

Aussichten• Neue Hardware Funktionen

– VertexShader 2.0, PixelShader 2.0

– Geometrieberechnungen in HW mit TnL

– Kaum Nutzung in Spielen

• DirectX 9.0– Steht in den Startlöchern

– Vereinfachung der "Shader Programmier-Sprache"

Page 71: DirectX Großes Seminar von Frank Deseyve. Inhalt Einleitung Grundlagen APIs –DirectDraw & Direct3D Fazit.

Fazit• DirectX bietet einmalige Kombination aus multimedialen

API‘s

• Praktisch kein Konkurrenzprodukt– Wenn dann nur auf einzelnen Gebieten (OpenGL)

– Oder im Professionellem Anwendungsbereich (Studiosoftware)

• Am Anfang sehr umständlich und ad hoc Flickwerk

• Mittlerweile ausgreift und teilweise sehr einfach anzuwenden

• Sehr weit verbreitet– Im Profiebereich als auch im Amateurbereich

– Viele Freeware Module

– Bücher, Tutorials und Informationen im Internet

Page 72: DirectX Großes Seminar von Frank Deseyve. Inhalt Einleitung Grundlagen APIs –DirectDraw & Direct3D Fazit.

AUS