Suchen und Finden
Service
Infos und Kontakt
Inhaltsverzeichnis
6
Vorwort
14
An wen richtet sich dieses Buch?
14
Ansprüche an Ihren Computer
15
Website und Buch-CD
15
Über den Autor
16
1 Einführung
18
1.1 Managed DirectX
18
1.1.1 Installation
18
1.1.2 Die DirectX-Komponenten
18
1.2 Kartesische Koordinatensysteme
19
1.2.1 Linkshändiges kartesisches Koordinatensystem
20
1.2.2 Rechtshändiges kartesisches Koordinatensystem
21
1.3 Vektoren
21
1.3.1 Unterschied: Punkt – Vektor
21
1.3.2 Vektor-Darstellung
23
1.3.3 Der Null- Vektor
23
1.3.4 Die Länge eines Vektors
23
1.3.5 Einheitsvektoren
24
1.3.6 Addition und Subtraktion
24
1.3.7 Skalar-Multiplikation
25
1.3.8 Skalar-Produkt (Punkt-Produkt)
26
1.3.9 Kreuz-Produkt (Vektor-Produkt)
26
1.3.10 Der Vector3-Datentyp
27
1.4 Matrizen
27
1.4.1 Diagonal- und Identity-Matrix
28
1.4.2 Vektoren als Matrix dargestellt
28
1.4.3 Transposition
29
1.4.4 Multiplikation mit einem Skalar
29
1.4.5 Matrix-Multiplikation
29
1.4.6 Multiplikation von Matrizen und Vektoren
30
1.5 Vertices und Primitive
31
1.6 Koordinatentypen
31
1.6.1 Objekt-Koordinaten
31
1.6.2 Welt-Koordinaten
31
1.6.3 Sicht-Koordinaten
32
Warum verschiedene Koordinaten verwenden?
32
1.7 Transformationen
32
1.7.1 Skalierungen
33
1.7.2 Translationen (Verschiebungen)
34
1.7.3 Rotationen
34
1.8 Die Rendering Pipeline
36
1.8.1 Tesselation
36
1.8.2 Transformation & Beleuchtung
37
1.8.3 Clipping, Culling und Rasterization
37
1.8.4 Multitexturing-Einheit vs. Pixel- Shader
37
1.8.5 Tiefen- und Alpha- Test
38
1.8.6 Fog Blending
38
1.9 Zusammenfassung
38
2 Direct3D-Grundlagen
40
2.1 Initialisierung eines Direct3D-Device
40
2.1.1 Die PresentParameters-Klasse
42
2.1.2 Die Rahmen- Anwendung
43
2.2 Die Rolle des Back Buffers
46
2.3 Der Vertex Buffer
47
2.3.1 Initialisierung des VertexBuffer-Objekts
49
2.3.2 Transformierte Vertices
50
2.3.3 Zugriff auf die Vertex Buffer-Daten
50
2.3.4 Primitive rendern
52
2.4 Auf in die dritte Dimension!
55
2.4.1 Die Render States
58
2.4.2 Matrizen in der Praxis
61
2.4.3 Wiederherstellen des Device-Objekts
62
2.5 Das Flexible Vertex Format (FVF)
63
2.6 Der Index Buffer
64
2.6.1 Initialisierung
65
2.6.2 Indizes definieren
65
2.6.3 Rendern mit einem Index Buffer
66
2.6.4 Indexed Primitives in Szene gesetzt
68
2.6.5 Zeitsynchronisation
72
2.7 Der Tiefenspeicher (Z-Buffer)
75
2.7.1 Z-Buffer aktivieren
76
2.7.2 Z-Buffer „säubern&ldquo
77
2.8 Ressourcen
77
2.9 Zeig mir was Du kannst! – Hardware-Fähigkeiten prüfen
78
2.9.1 Auswahl der Grafikkarte, der Auflösung und des Formats
80
2.9.2 Anwendungen im Vollbildmodus ausführen
84
2.10 Zusammenfassung
86
3 Texturen und Lichtquellen
88
3.1 Ausgeben von Texten
88
3.1.1 Font-Objekte initialisieren
88
3.1.2 Texte rendern
89
3.1.3 Ein Wort zur Performance
90
3.2 Texturen
91
3.2.1 Texturkoordinaten
91
3.2.2 Texturen laden und anwenden
92
3.2.3 Kompromisse zwischen Optik und Performance
94
3.2.4 Texturadressierung
94
3.2.5 Mipmaps
99
3.2.6 Pixel-Formate
100
3.2.7 Texturfilter
100
3.2.8 Das additive Farbmodell
107
3.2.9 Texture Blending
107
3.2.10 Mehrere Texturkoordinaten pro Vertex
112
3.2.11 Texture Blending mit Alpha- Werten
114
3.2.12 Alpha Blending
115
3.2.13 Alpha- Testing
121
3.2.14 Ein Surface als Renderziel verwenden
122
3.2.15 Speichern von Surface-Inhalten in einer Datei
128
3.3 Sprites
129
3.3.1 Initialisieren und Rendern von Sprites
129
3.3.2 Rotieren von Sprites
130
3.3.3 Animierte Sprites
131
3.3.4 Transparenz
132
3.4 Materialien
133
3.4.1 Ambient
133
3.4.2 Diffuse
134
3.4.3 Specular
134
3.4.4 Emissive
134
3.5 Lichtquellen
134
3.5.1 Konzept des Beleuchtungsmodells
135
3.5.2 Lichttypen
136
3.6 Zusammenfassung
143
4 Mesh-Objekte
144
4.1 Mesh-Objekte laden und rendern
145
4.1.1 Materialen und Texturen des Meshes berücksichtigen
146
4.1.2 Standardkörper
148
4.1.3 Dreidimensionale Texte
148
4.2 Hinter den Kulissen eines Mesh-Objekts
149
4.3 Fehlende Normalen ergänzen
150
4.4 Meshes optimieren
151
4.5 Polygonreduzierung ( Simplification)
153
4.5.1 Polygonreduzierung mit Simplify()
154
4.5.2 Die SimplificationMesh-Klasse
159
4.5.3 Progressive Meshes
160
4.6 Patch Meshes (Tessellation)
162
4.7 Frame Hierarchien
165
4.7.1 Analysierung der Anforderungen
165
4.7.2 Die CustomAllocateHierarchy-Klasse
166
4.7.3 Die CustomFrame-Klasse
167
4.7.4 Die CustomMeshContainer-Klasse
168
4.7.5 Die HierarchicalMesh-Klasse
169
4.7.6 Anwendungsbeispiel: Ein drehender Propeller
175
4.8 Zusammenfassung
180
5 Der Stencil Buffer
182
5.1 Initialisierung des Stencil Buffers
183
5.2 Der Stencil Test
184
5.2.1 Reference Stencil
185
5.2.2 Stencil Mask und Stencil Write Mask
185
5.2.3 Vergleichsoperationen
185
5.2.4 Aktualisieren des Stencil Buffer-Inhalts
186
5.2.5 Der Stencil Buffer in Aktion
186
5.3 Simulation eines Spiegels
189
5.3.1 Überblick
189
5.3.2 Back Buffer und Stencil Buffer beschreiben
190
5.3.3 Berechnung der Reflektionstransformation
191
5.3.4 Reflektion rendern
192
5.4 Zusammenfassung
193
6 Szenen-Elemente
196
6.1 Terrain Rendering
197
6.1.1 Heightmaps
197
6.1.2 Einlesen von Heightmaps
198
6.1.3 Vertex- und Index-Daten berechnen
200
6.1.4 Berechnung der Normalen
201
6.1.5 Die Theorie der Quadtrees
203
6.1.6 Zwischenbilanz
205
6.2 Nebel-Effekte
205
6.2.1 Linearer Nebel
205
6.2.2 Exponentieller Nebel
206
6.2.3 Fog Blending aktivieren
207
6.2.4 Vertex Fog vs. Pixel Fog
207
6.2.5 Range Fog
208
6.2.6 Hardwarefähigkeiten prüfen
208
6.3 Billboards
209
6.3.1 Voraussetzungen
210
6.3.2 Rendern des Billboards
211
6.3.3 Billboard ausrichten
212
6.4 Sky Box und Sky Sphäre
214
6.5 Linsenreflektionen (Lens Flares)
215
6.5.1 Elemente
215
6.5.2 Theorie
216
6.5.3 Die LensFlare-Klasse
217
6.5.4 Die LensFlares-Klasse
218
6.6 Partikelsysteme
222
6.6.1 Point Sprites
223
6.6.2 Vorbereitung
225
6.6.3 Koordinierung der Partikel (ParticleSystem)
226
6.6.4 Dynamische Vertex Buffer
232
6.6.5 Partikelsysteme rendern
232
6.7 Kamera ab!
236
6.7.1 Anforderungsanalyse
236
6.7.2 Kameraverschiebungen
236
6.7.3 Kameradrehungen
238
6.7.4 Berechnung der View Matrix
240
6.7.5 Viewing Frustrum Culling
242
6.7.6 Die Rolle der Bounding Box
245
6.8 Zusammenfassung
247
7 Shader-Programmierung
250
7.1 Grundlagen
250
7.1.1 Vertex Shader
251
7.1.2 Pixel Shader
252
7.2 High Level Shader Language (HLSL)
253
7.2.1 Skalare Datentypen
253
7.2.2 Vektor- Typen
254
7.2.3 Matrizen
255
7.2.4 Typkonvertierung
255
7.2.5 Modifizierer
256
7.2.6 Strukturen
257
7.2.7 Funktionen
257
7.2.8 Programmablaufsteuerung
257
7.2.9 Mathematische Funktionen
258
7.3 Der erste Vertex Shader
259
7.3.1 Der Shader
260
7.3.2 Techniques und Passes
261
7.3.3 Vertex Declaration
262
7.3.4 Die Effect-Klasse
264
7.3.5 Shader einsetzen
266
7.3.6 Meshes mit Shadern rendern
267
7.4 Der erste Pixel Shader
267
7.4.1 Der Shader
267
7.4.2 Sampler und Sampler States
269
7.5 Per-Pixel Directional Lighting
269
7.5.1 Lichtberechnungen
270
7.5.2 Der Vertex Shader
271
7.5.3 Der Pixel Shader
272
7.6 Directional Lighting mit spekulären Lichtanteil
272
7.6.1 Lichtberechnungen
273
7.6.2 Der Vertex Shader
273
7.6.3 Der Pixel Shader
274
7.6.4 Technique
274
7.7 Per-Pixel Point Light
275
7.7.1 Lichtberechnungen
275
7.7.2 Der Vertex Shader
276
7.7.3 Der Pixel Shader
277
7.8 Versions-Chaos
277
7.9 Hardwarefähigkeiten prüfen
278
7.10 Zusammenfassung
278
8 DirectInput
280
8.1 Devices auflisten
280
8.2 Cooperative Level
282
8.3 Ansprechen der Tastatur
282
8.3.1 Device initialisieren
282
8.3.2 Gedrückte Tasten ermitteln
283
8.3.3 Die KeyboardInput-Klasse
283
8.3.4 Keyboard State
286
8.4 Ansprechen der Maus
287
8.5 Zusammenfassung
288
9 DirectSound
290
9.1 Die Grundlagen
290
9.1.1 Devices auflisten
291
9.1.2 Initialisierung des Device-Objekts
291
9.2 WAV-Dateien abspielen
292
9.2.1 Secondary Buffer anlegen und abspielen
292
9.2.2 Lautstärke, Balance & Co.
293
9.3 Effekte
294
9.3.1 Vordefinierte Effekte
295
9.3.2 Effekte manipulieren
295
9.4 Dreidimensionale Akustik
296
9.4.1 Einen 3D-Buffer erstellen
296
9.4.2 Positionierung, Ausrichtung und Geschwindigkeit
297
9.4.3 Entfernungen
298
9.4.4 Den Zuhörer simulieren
298
9.4.5 Doppler- und Rolloff-Effekt
299
9.4.6 Ändern der Einheit
299
9.5 Zusammenfassung
299
Stichwortverzeichnis
302
Mehr eBooks vom gleichen Verlag
Java 6 Programmierhandbuch, von: Dirk Frischalowski, Ulrike Böttcher, Preis: 46,70 EUR
Java Web Services mit Apache Axis2, von: Thilo Frotscher, Marc Teufel, Dapeng Wang, Preis: 38,20 EUR
Online Content professionell, von: Harald Taglinger, Preis: 15,00 EUR
Sichere Webanwendungen schnell + kompakt, von: Andre Wussow, Preis: 8,40 EUR
Windows Forms mit Visual C++ - Professionell einsteigen, von: Dirk Louis, Preis: 29,70 EUR
Add-In Entwicklung für Visual Studio., von: Thomas Müller, Preis: 30,00 EUR
iPhone Anwendungsentwicklung für Einsteiger, von: Michael Kain, Preis: 20,00 EUR
SQL Server 2005 Express Edition, von: Andreas Kosch, Preis: 16,90 EUR
db4o schnell + kompakt, von: Larysa Visengeriyeva, Patrick Römer, Preis: 5,50 EUR
Alle Preise verstehen sich inklusive der gesetzlichen MwSt.; Ersparnis im Vergleich zur Printversion


















