menu tree item
Foundation Courses
menu tree item
Advanced Courses


menu tree item
viCampus::Press
menu tree item
Recommendations






ALL RIGHTS RESERVED
2011 BY E. ZSCHEMISCH
LEGAL INFO
PRIVACY POLICY
Rigid bodies falling into water while hitting ramps.Waving flag 1
 
English language
German language
2013-05-21, 17:11:16 GMT
Title "Direct3D und 3D Engine Design"
ISBN:3939013021
Author:Stefan Zerbst
Publish Date:2006-04-11 (available)
Info:508 pages
Our Price:39.00 EUR
Order from Amazon.de:Direct3D und 3D Engine Design

Description  |  Table of Contents  |  Downloads
 
Description:

Dieses Buch führt Sie Schritt für Schritt in die Programmierung mit Direct3D 9 ein. Parallel lernen Sie zudem die Implementierung einer eigenen, API-unabhängigen, objekt-orientierten 3D-Engine. Die Engine aus diesem Buch bildet auch die Basis der viCampus Sipogen Engine die man sich auf der Webseite herunterladen kann und die in vielen viCampus Büchern zur Visualisierung von 3D Demonstrations-Programmen eingesetzt wird. Die Plattformunabhängigkeit der Engine wird zudem durch die Verwendung der SDL Bibliothek für Input und Window-Handling vorbereitet, so dass sich die Engine vergleichsweise einfach auf Linux und OpenGL portieren lassen wird.

Für das Buch ist ein Bonus-Kapitel verfügbar, welches ein kleines Spiel implementiert. Dieses Kapitel ist in der deutschen Version des Buches nicht enthalten, sondern nur hier zum Download verfügbar. Stil, Satz und Layout sind aber nahtlos von dem gedruckten Werk übernommen. Demnächst wird auch der Quelltext dieses Kapitels hier frei verfügbar sein.


Screenshots



Eine sphärische Störung im Raum zeigt Render-to-Texture Effkte.




Ein Gleiter mit Glow-Effekt und einfacher KI.




Wenn ein Gleiter zu viele Treffer einstecken musste ist es aus.



Table of Contents:

Alle Überschriften ab Ebene 4 sind abgeschnitten.

I. TEIL DIRECT3D UND ENGINE DESIGN 21

DIRECT3D HOCHFAHREN 23
2.1 Aufwärmübungen 23
2.1.1 Was bringt dieses Kapitel? 25
2.1.2 Wie ist Direct3D organisiert? 26
2.1.3 Einstellung der Entwicklungs-Umgebung 27
2.2 Erster Kontakt mit Direct3D 31
2.2.1 Initialisierung von Direct3D 32
2.2.2 Hilfsfunktionen 44
2.3 Die Demo-Applikation 54
2.3.1 Erzeugen eines WinAPI-Fensters 55
2.3.2 Windows Nachrichten verarbeiten 55
2.3.3 Die WinMain() Funktion 56
2.4 Ein Blick zurück 61

INTERFACES DEFINIEREN 63
3.1 Die Idee hinter Interfaces 63
3.2 Implementierung von Interfaces 65
3.2.1 Das Pimpl-Idiom 65
3.2.2 Abstrakte Klassen 71

ENTWICKELN EINER ENGINE 75
4.1 Startschuss für die Engine 75
4.1.1 Wofür die Engine gedacht ist 76
4.1.2 Taufe der Engine 77
4.1.3 Der große Bruder der Engine 78
4.1.4 Using SDL for Operating System Independence 78
4.1.5 Organisation der Engine 83
4.2 Implementierung des Render-Device Interface 103
4.2.1 Interne Basis-Klasse CRenderDeviceBase 103
4.2.2 RDO: Render Device Objects 105
4.2.3 Größenänderung des Fensters 123
4.2.4 Transformation: Projektions-System 124
4.2.5 Wiederherstellen eines verlorenen Device 128
4.3 Rendern mit der Engine 131
4.3.1 Löschen der Buffer 131
4.3.2 Starten und Beenden von Szenen 132
4.4 States der Engine umschalten 133
4.4.1 Umschalten des Drahtgitter-Modus 134
4.4.2 Umschalten des Backface-Culling 134
4.4.3 Umschalten des Depth-Buffer Modus 136
4.5 Die Demo-Applikation 137
4.6 Ein Blick zurück 139

RENDER-PRIMITIVE UND MATERIALIEN 141
5.1 Vertex-Typen 141
5.1.1 Vertex-Typen in Direct3D basteln 143
5.1.2 Vertex-Typen in Sipogen 145
5.2 Grafische Primitive 148
5.2.1 Typen von Primitiven 148
5.2.2 Verwendung von Point Sprites 150
5.2.3 Indizierte und nicht-indizierte Primitive 152
5.2.4 Rendering-Methoden von Direct3D 154
5.3 Neue Render-Device Objekte zur Engine hinzufügen 164
5.4 Rendern mit Buffern in Sipogen 165
5.4.1 Ergänzung von CRenderDeviceBase 165
5.4.2 Render Device Object: Vertex-Buffer 166
5.4.3 Render Device Object: Index-Buffer 173
5.4.4 Transformation: Welt-System 176
5.5 User Pointer Rendering in Sipogen 178
5.6 Surface Materials 179
5.6.1 Lichtarten in der Computergrafik 179
5.6.2 Materialien in Direct3D 181
5.6.3 Materials in Sipogen 182
5.7 Die Demo-Applikation 188
5.8 Ein Blick zurück 191

ARBEITEN MIT TEXTUREN 193
6.1 Textur-Grundlagen 193
6.1.1 2D-Bilder als Texturen 194
6.1.2 Texturkoordinaten 195
6.1.3 Filtering (Sampling) und Mipmap-Chains 197
6.1.4 Multi-Texturing 200
6.2 Color-Blending und Alpha-Blending 203
6.2.1 Alpha-Blending in Direct3D 203
6.2.2 Alpha Blending in Sipogen 205
6.3 Multi-Texturing in Direct3D 208
6.3.1 Textur-Stufen 209
6.3.2 Color-Blending und Alpha-Blending 210
6.3.3 Textur-Argumente 211
6.3.4 Textur-Operationen 212
6.4 Texturen anwenden 212
6.4.1 Texturen in Direct3D 213
6.4.2 Texturen in Sipogen 215
6.5 Rendern in Texturen 225
6.5.1 Texturen als Render-Target in Direct3D 226
6.5.2 Render-Target Objekte in Sipogen 228
6.6 Ergänzungen zu IRenderDevice und seiner Implementierung 235
6.6.1 Wiederherstellung des Devices 235
6.6.2 Änderungen an der CRenderDeviceD3D Implementierung 238
6.7 Geometrie-Erzeugung für die Demos 239
6.8 Die Demo-Applikation 245
6.9 Demo-Applikation - reloaded 246
6.10 Ein Blick zurück 251

ARBEITEN MIT HARDWARE-LICHTERN 253
7.1 Licht in der Computergrafik 253
7.1.1 Verschiedene Ansätze für Beleuchtung in Computerspielen 254
7.1.2 Licht-Typen in der Computergrafik 256
7.1.3 Lichtquellen-Typen in der Computergrafik 256
7.1.4 Probleme der per-Vertex Beleuchtung 259
7.2 Hardware-Lichter in Direct3D 262
7.2.1 Ambientes Licht 262
7.2.2 Direct3D Struktur für Lichtquellen 264
7.2.3 Aktivieren einer Lichtquelle 266
7.3 Hardware-Lichter in Sipogen 267
7.3.1 Struktur für Lichtquellen 267
7.3.2 Aktivieren einer Lichtquelle 268
7.3.3 Die Demo-Applikation 270
7.4 Ein Blick zurück 281

ARBEITEN MIT INPUT, KAMERAS UND FRUSTUMS 283
8.1 Keyboard und Maus Input 283
8.1.1 Input von der SDL bekommen 284
8.1.2 Input in der Sipogen Engine 287
8.2 Bewegen des Betrachters 301
8.2.1 Transformation: Betrachter-System 302
8.2.2 Implementierung einer Shooter Kamera 305
8.3 View Frustum Culling 311
8.3.1 Erzeugen des View Frustum 312
8.3.2 Culling von Kugeln und Boxen 315
8.4 Die Demo-Applikation 318
8.4.1 Ergänzungen zu IRenderDevice und seiner Implementierung 319
8.4.2 Verknüpfung des Inputs mit der Kamera 319
8.5 Ein Blick zurück 321

II. TEIL FORTGESCHRITTENE THEMEN 323

MODELLE, MESHES UND TWEEN MESHES 325
9.1 Grundlagen von 3D-Modellen 325
9.1.1 Meshes versus 3D-Modelle 326
9.1.2 3D-Modelle erstellen 326
9.1.3 Microsoft's X Datei Format 327
9.2 Laden und Anzeigen eines Modells 331
9.2.1 Die ID3DXMesh Klasse 331
9.2.2 Meshes in Sipogen 337
9.3 Sipogen's Mesh Factory 358
9.4 Sipogen's 3D-Modell Loader 362
9.4.1 CModelLoader Basis-Klasse 362
9.4.2 Laden von Inivis AC3D Modellen 363
9.4.3 Laden von Discreet 3D Studio Modellen 373
9.5 Vertex Tweening mit Direct3D 382
9.6 Mehrere Streams mit Direct3D 384
9.6.1 Vorteile mehrerer Streams 385
9.6.2 Vertex Declarations anstelle des FVF 386
9.7 Tweened Meshes in Sipogen 391
9.7.1 Render Device Object: TweenMesh 391
9.7.2 Daten für das TweenMesh setzen 394
9.7.3 Rendern eines TweenMesh Objektes 396
9.8 Tween Meshes und die Mesh-Factory 398
9.9 Die Demo-Applikation 400
9.10 Ein Blick zurück 405

LANDSCHAFTEN AUS HEIGHTMAPS 407
10.1 Terrain Rendering 407
10.1.1 Brute Force Heightmaps 409
10.1.2 Level of Detail 410
10.1.3 Wichtige Verfahren 411
10.2 Heightmaps in Sipogen 415
10.2.1 Render Device Object: Heightmap 415
10.2.2 Daten für die Heightmap setzen 419
10.2.3 Ein einfacher Berg- und Insel-Algorithmus 424
10.2.4 Erstellen der Chunks für das Terrain 426
10.2.5 Texturen für das Terrain festlegen 432
10.2.6 Rendern einer Heightmap 433
10.2.7 Höhe eines Punktes auf der Heightmap 434
10.2.8 Wasser-Mesh für Inseln erzeugen 436
10.3 Die Demo-Applikation 438
10.4 Ein Blick zurück 441

SHADER UND EFFECT-FILES 443
11.1 Shader Grundlagen 443
11.1.1 Was sind Shader? 444
11.1.2 Shader in der 3D-Pipeline 445
11.1.3 Shader Hardware 449
11.1.4 Shader Versionen 451
11.1.5 Assembly versus Hochsprache 452
11.2 Shader mit Direct3D 454
11.2.1 Zusammensetzen eines Shaders 454
11.2.2 Kompilieren eines Shaders 455
11.2.3 Erstellen der Shader-Interface Instanz 457
11.2.4 Aktivierung der Vertex- und Pixel-Shader 457
11.3 Shader in Sipogen 458
11.3.1 Änderungen in Sipogen 459
11.3.2 Vertex-Shader (Vertex-Programme) 460
11.3.3 Pixel-Shader (Fragment Programme) 467
11.4 Effekt-Dateien 471
11.4.1 Effect-Files in Direct3D 472
11.4.2 Effect-Files in Sipogen 474
11.5 Die Demo-Applikation 481
11.6 Ein Blick zurück


Downloads

Downloadable Demos
  Bonuskapitel 12 (4042.25 kb)
  Engine + Kap. 12 Demo (2828.77 kb)
 
Book's Virtual CD-ROM:Please login to your account to get access
(or register a free account)

 
 


Unique users today:
Members:0
Guests:94
Total:94
 
Forum stats:
Threads:355
Posts:1276
 
Since March'06:
Members:5551
Unique Hits:349227