Suchen und Finden

Titel

Autor/Verlag

Inhaltsverzeichnis

Nur eBooks für mein Endgerät anzeigen:

 

Newsletter

Managed DirectX und C# - Einstieg und professioneller Einsatz

Managed DirectX und C# - Einstieg und professioneller Einsatz

von: Jens Konerow

entwickler.press, 2007

ISBN: 9783939084174, 306 Seiten

Format: PDF, OL

Mac OSX,Windows PC Apple iPad, Android Tablet PC's Online-Lesen für: Linux,Mac OSX,Windows PC

Preis: 20,00 EUR

Ersparnis: 9,90 EUR

  • Software Engineering - Architektur-Design und Prozessorientierung
    Femme digitale - Character Modelling mit Maya, Cinema 4D, 3ds max
    Moderne C++ Programmierung
    XNA Framework. schnell + kompakt
    Kostenfalle Hausbau - Pfusch vermeiden, Baukosten sparen
    Webdesign mit Photoshop - Aktuell zu CS4
    Spiele-Entwicklung mit dem Microsoft XNA Framework - Einstieg und professioneller Einsatz
    Modernes Webdesign - Gestaltungsprinzipien, Webstandards, Praxis
  • Dynamische iPhone-Anwendungen entwickeln. Apple Software - Anwendungsentwicklung mit HTML, CSS und JavaScript

     

     

     

     

     

     

     

     

 

Mehr zum Inhalt

Managed DirectX und C# - Einstieg und professioneller Einsatz


 

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