Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Großes Seminar von Frank Deseyve

Ähnliche Präsentationen


Präsentation zum Thema: "Großes Seminar von Frank Deseyve"—  Präsentation transkript:

1 Großes Seminar von Frank Deseyve
DirectX Großes Seminar von Frank Deseyve

2 Inhalt Einleitung Grundlagen API‘s DirectDraw & Direct3D Fazit

3 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ß

4 Geschichte Game SDK (1994) DirectX 1.0 (1995) DirectX 2.0 (1995)
Vollbildmodus Einprozess-System DirectX 1.0 (1995) DirectDraw DirectInput DirectPlay DirectSound DirectX 2.0 (1995) Direct3D DirectX 3.0 (1996) DirectSound3D, MMX Device

5 Geschichte DirectX 5.x (1997) DirectX 6.x (1998) 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

6 Geschichte DirectX 7.x (1999) DirectX 8.x (2000)
Transform and Lightning HAL Device Vertex Blending Cubic Environment Mapping Spezieller Visual Basic Support DirectX 8.x (2000) DIRECT3DX Vertex Shader Pixel Shader

7 Geschichte Windows 95 Windows 98 Windows NT/2000 Windows XP
bis DX 8.0a, danach eingestellt Windows 98 DX 8.1 Windows NT/2000 SP6 ~DX3.0a / DX 8.1 Windows XP

8 Vorbereitungen DirectX SDK 8.1 MS Visual C++ 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

9 COM Component Object Model Schnittstelle/Implementierung
Sprachunabhängig Wiederverwendbar

10 COM Schnittstelle/Implementierung IUknown Global Unique Identifier
QueryInterface() Global Unique Identifier Jedes Schnittstelle bekommt einmalige Nummer egal wie oft aufgerufen egal aus wieviel verschiedenen Prozessen Referenzzähler AddRef() Release()

11 COM Sprachunabhängig Zeigersystem von COM

12 COM Wiederverwendbar Abwärtskompatibel
Schnittstellen dürfen nicht verändert werden Alte Schnittstellen müssen Weitergeführt werden Abwärtskompatibel IDirectDrawSurface3 IDirectDrawSurface7

13 Architektur HAL - Hardware Abstraction Layer
HEL - Hardware Emulation Layer

14 Architektur HAL - Hardware Abstraction Layer TnLHAL
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

15 Architektur HEL - Hardware Emulation Layer RGB Reference Device
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

16 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

17 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

18 Komponenten Funktionalität zum Programmieren
Schneller Zugriff auf MM-Fähigkeiten von Windows

19 Komponenten DirectX Foundation DirectDraw Direct3D Immediate Mode
DirectSound DirectMusic DirectInput DirectPlay

20 Komponenten DirectX Media Layer DirectX Transform DirectAnimation
DirectShow Direct3D Retained Mode

21 DirectDraw

22 DirectDraw IDirectDraw7 IDirectDrawClipper IDirectDrawSurface7
Generischer zugriff auf DD Objecte IDirectDrawClipper Fensterliste rechteckiger Bereiche IDirectDrawSurface7 Video- oder Systemspeicherbereich IDirectDrawPalette indizierte Farblisten IDirectDrawVideoPort spezielle Videofunktionen der HW

23 DirectDraw lpGUID lplpDD iid NULL := Standardtreiber
DDCREATE_EMULATIONONLY := keine HW-Beschleunigung DDCREATE_HARDWAREONLY := keine Emulation lplpDD Platzhalter für DD-Schnittstelle iid Typ der Schnittstelle

24 DirectDraw hWnd dwFlags Handle des Obersten Fenster der Anwendung
DDSCL_Normal := Verhalten wie Windows-Anwendung DDSCL_EXCLUSIVE := Alleiniger Grafik HW Zugriff DDSCL_FULLSCREEN := Vollbildmodus DDSCL_ALLOWREBOOT := Erlaubt Neustart

25 DirectDraw lpDDSurfaceDesc2 lplpDDSurface
Zeiger auf Beschreibung der Oberfläche lplpDDSurface Platzhalter für Zeiger auf den Speicherbereich ZeroMemory(PVOID Destination, DWORD Length);

26 DirectDraw Arten von Oberflächen Offscreen OF Primäre 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

27 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)

28 DirectDraw Nach festlegen der SCL Vor erstellen der Primären OF
Schneidet nicht sichtbare Bereiche ab

29 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

30 Direct3D Die 3D-Pipeline Transformation Clipping Translierung
Skalierung Rotation Clipping Im Sichtfeld liegende Objekte Abschneiden Weglassen

31 Direct3D Beleuchtung Texturierung Entfernen verborgener Oberflächen
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

32 Direct3D 3D-Objekte erzeugen Vektoren fester Länge und Richtung

33 Direct3D Positionsvektoren sind Vertices mit Beleuchtung mit Farbe
mit Texturen mit Normalenvektor sind Vertices

34 Direct3D Erstellen der 3D-Objektdaten - Grundfiguren Dreieckslisten

35 Direct3D Erstellen der 3D-Objektdaten - Grundfiguren Dreiecksstreifen

36 Direct3D Erstellen der 3D-Objektdaten - Grundfiguren Dreiecksfächer

37 Direct3D Erstellen der 3D-Objektdaten - Zeichnen dptPrimitiveType
D3DPT_TRIANGLELIST D3DPT_TRIANGLESTRIP D3DPT_TRIANGLEFAN dwVertexTypeDesc Typ der Vertices (unbeleuchtet, vorbeleuchtet, aut.beleuchtet)

38 Direct3D Besser indizierte 3D-Objektdaten - Zeichnen lpwIndices
Zeiger auf Array mit den Werten der Indizes dwIndexCount Anzahl der Indizes

39 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

40 Direct3D Objekttransformation Matrizen ermöglichen einfache Berechnung
Klasse D3DMath

41 Direct3D Translation Skalierung Rotation um X,Y,Z Achse

42 Direct3D Komplexe Transformationen: Animationen Templates
FloatKey TimedFloatKey AnimationKey AnimationOptions Animation AnimationSet Auf hierarchierte Objekte Frames

43 Direct3D Oberfläche der Objekte Texture Mapping Bitmaps in Surfaces
Max 8 Stufen für Effekt Überblenden, mischen usw.

44 Direct3D 4 Arten der Adressierung (u,v) Wrap Mirror
Periodische Wiederholung Mirror Exkates Spiegel an einer Achse

45 Direct3D Clamp Border Color
Außerhalb liegende Texel werden auf die nächste Kante gemapt Border Color Außerhalb liegende Texel werden eingefärbt

46 Direct3D Mip-Mapping Gleiche Texturen in verschieden Qualitäten
Je nach Entfernung

47 Direct3D Point-Sampling Bilineare Filterung Trilineare Filterung
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

48 Direct3D Beleuchtung der Objekte Umgebungslicht
Punktlichter Scheinwerfer Gerichtetes Licht

49 Direct3D dltType dcvDiffuse, dcvSpecular, dcvAmbient
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

50 Direct3D IDirect3Ddevice7:SetMaterial() Ambient Diffuse Specular
Material der Objektoberfläche Ambient Umgebungsreflektion Diffuse Diffuse Reflektionen Specular Glanzlichter

51 Direct3D Darstellung auf dem Bildschirm Welttransformation
Für jedes Objekt

52 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

53 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

54 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

55 Direct3D Fortgeschrittenen Funktionen Z-Buffer Tiefeninformationen

56 Direct3D Stencil-Buffer Indizierte Schablone im Pixelbereich 1-bit
Maskierung von Bildinhalten Überblendeffekte 8-bit Echtzeit Volumennebel Reflexionen

57 Direct3D Bump-Mapping Emboss Environment
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

58 Direct3D Environment-Mapping
Simulation von reflektierenden Oberflächen Statisch oder Dynamisch

59 DirectSound Flexibler Audiomixer Nutzt AudioHW wenn möglich, sonst SW
Schnell, geringe Latenz

60 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

61 DirectMusic Klangerzeugung über Softwaresynthesizer
Ansteuerung externer Synthesizer MIDI-Schnittstelle DirectMusic Producer Noten, Akkorde, Phrasierung

62 DirectMusic IDirectMusicPerformance Objekt DLS - Downloadable Sounds
Dynamische Steuerung zur Laufzeit Musikstücke mit Eigenschaften belegen DLS - Downloadable Sounds Tabelle von Instrumentklänge Egal welche HW, immer gleicher Sound

63 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)

64 DirectInput Datenmodus Datenzugriff Datenabfrage
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)

65 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

66 DirectPlay Aufbau einer Spielsitzung (Session) Mit oder ohne Host
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

67 DirectPlay Custom Messages System Messages Datensicherheit
Selbstdefinierte Nachrichten System Messages Automatisch generierte Nachrichten Datensicherheit Verschlüsselung Signierung Garantie (Zertifizierung)

68 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

69 DirectShow Streaming Media Architecture
Wiedergabe und Aufnahme von Datenströmen Formatkonvertierung WAV, MP3, MPEG, AVI Komprimierung von Audio-/Videodaten WDM-Treiber Legacy-Treiber

70 Aussichten Neue Hardware Funktionen DirectX 9.0
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"

71 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

72 AUS


Herunterladen ppt "Großes Seminar von Frank Deseyve"

Ähnliche Präsentationen


Google-Anzeigen