Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
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
Ähnliche Präsentationen
© 2024 SlidePlayer.org Inc.
All rights reserved.