Introduction to 3D game programming with DirectX 11:
Gespeichert in:
1. Verfasser: | |
---|---|
Format: | Buch |
Sprache: | English |
Veröffentlicht: |
Dulles, Virginia [u.a.]
Mercury Learning and Information
2012
|
Schlagworte: | |
Online-Zugang: | Inhaltsverzeichnis |
Beschreibung: | XXXVIII, 864 S. Ill., graph. Darst. 1 DVD (12 cm) |
ISBN: | 9781936420223 |
Internformat
MARC
LEADER | 00000nam a2200000 c 4500 | ||
---|---|---|---|
001 | BV040122224 | ||
003 | DE-604 | ||
005 | 20140709 | ||
007 | t| | ||
008 | 120508s2012 xx ad|| |||| 00||| eng d | ||
020 | |a 9781936420223 |9 978-1-9364202-2-3 | ||
035 | |a (OCoLC)794220540 | ||
035 | |a (DE-599)BVBBV040122224 | ||
040 | |a DE-604 |b ger |e rakwb | ||
041 | 0 | |a eng | |
049 | |a DE-355 |a DE-91G |a DE-20 | ||
084 | |a ST 324 |0 (DE-625)143660: |2 rvk | ||
084 | |a ST 326 |0 (DE-625)143662: |2 rvk | ||
084 | |a DAT 758f |2 stub | ||
100 | 1 | |a Luna, Frank D. |e Verfasser |0 (DE-588)138690731 |4 aut | |
245 | 1 | 0 | |a Introduction to 3D game programming with DirectX 11 |c Frank D. Luna |
246 | 1 | 3 | |a 3D game programming with Directx 11 |
264 | 1 | |a Dulles, Virginia [u.a.] |b Mercury Learning and Information |c 2012 | |
300 | |a XXXVIII, 864 S. |b Ill., graph. Darst. |e 1 DVD (12 cm) | ||
336 | |b txt |2 rdacontent | ||
337 | |b n |2 rdamedia | ||
338 | |b nc |2 rdacarrier | ||
650 | 0 | 7 | |a DirectX 11.0 |0 (DE-588)7701436-4 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a Computerspiel |0 (DE-588)4010457-6 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a Programmierung |0 (DE-588)4076370-5 |2 gnd |9 rswk-swf |
689 | 0 | 0 | |a Computerspiel |0 (DE-588)4010457-6 |D s |
689 | 0 | 1 | |a Programmierung |0 (DE-588)4076370-5 |D s |
689 | 0 | 2 | |a DirectX 11.0 |0 (DE-588)7701436-4 |D s |
689 | 0 | |5 DE-604 | |
856 | 4 | 2 | |m Digitalisierung UB Regensburg |q application/pdf |u http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=024978283&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |3 Inhaltsverzeichnis |
943 | 1 | |a oai:aleph.bib-bvb.de:BVB01-024978283 |
Datensatz im Suchindex
_version_ | 1817688549538922496 |
---|---|
adam_text |
Contents
Acknowledgments
.xxii
Introduction
.xxv
Intended Audience
.xxvi
Prerequisites
.xxvi
Required Development Tools and Hardware
.xxvii
Use of the D3DX Library
.xxvii
Using the DirectX SDK Documentation and SDK Samples
.xxviii
Clarity
.xxx
Sample Programs and Online Supplements
.xxx
Demo Project Setup in Visual Studio
2010.xxxi
Create a
Win32
Project
.xxxi
Linking the DirectX Libraries
.xxxiii
Setting up the Search Paths
.xxxiv
Adding the Source Code and Building the Project
.xxxvi
PART I MATHEMATICAL PREREQUISITES
_
Chapter
1
Vector Algebra
.3
1.1
Vectors
.4
1.1.1
Vectors and Coordinate Systems
.5
1.1.2
Left-Handed Versus Right-Handed Coordinate Systems
.6
1.1.3
Basic Vector Operations
.7
1.2
Length and Unit Vectors
.9
1.3
The Dot Product
.10
1.3.1
Orthogonalization
.13
1.4
The Cross Product
.15
1.4.1
Pseudo
2D Cross Product
.16
1.4.2
Orthogonalization with the Cross Product
.17
VIII
Introduction to
3D
Game Programming
1.5
Points
.:.18
1.6
XNA Math Vectors
.19
1.6.1
Vector Types
.20
1.6.2
Loading and Storage Methods
.21
1.6.3
Parameter Passing
.22
1.6.4
Constant Vectors.
./.23
1.6.5
Overloaded Operators.:.
.24
1.6.6
Miscellaneous
.24
1.6.7
Setter Functions
.25
1.6.8
Vector Functions
.26
1.6.9 Floating-Point
Error
.30
1.7
Summary
.31
1.8
Exercises
.32
Chapter
2
Matrix Algebra
.37
2.1
Definition
.38
2.2
Matrix Multiplication
.40
2.2.1
Definition
.40
2.2.2
Vector-Matrix Multiplication
.42
2.2.3
Associativity
.42
2.3
The Transpose of a Matrix
.'. 43
2.4
The Identity Matrix
.43
2.5
The Determinant of a Matrix
.45
2.5.1
Matrix Minors
.45
2.5.2
Definition
.:.46
2.6
The Adjoint of a Matrix
.".'.47
2.7
The Inverse of a Matrix
.48
2.8
XNA Matrices
.'.
-.^.-.S::.:
.50
2.8.1
Matrix Types
.50
2.8.2
Matrix Functions.
.
ľ.
.;':.52
2.8.3
XNA Matrix Sample Program
.52
2.9
Summary
.55
2.10
Exercises
.55
Chapter
3
Transformations
.59
3.1
Linear Transformations
.60
3.1.1
Definition
.60
3.1.2
Matrix Representation
.60
3.1.3
Scaling
.;.61
3.1.4
Rotation
.:.63
Table of Contents
-
IX
3.2
Affine
Transformations
.67
. 3.2.1
Homogeneous Coordinates
.,.67
3.2.2
Definition and Matrix Representation
.67
3.2.2
Translation
.68
3.2.3
Affine
Matrices for Scaling and Rotation
.70
3.2.4
Geometric Interpretation of an
Affine
Transformation Matrix
. 71
3.3
Composition of Transformations
.72
3.4
Change of Coordinate Transformations
.74
3.4.1
Vectors
.75
3.4.2
Points
.76
. 3.4.3
Matrix Representation
.77
3.4.4
Associativity and Change of Coordinate Matrices
.77
3.4.5
Inverses and Change of Coordinate Matrices
.78
3.5
Transformation Matrix versus Change of Coordinate Matrix
.80
3.6
XNA Math Transformation Functions
.81
3.7
Summary
.82
3.8
Exercises
.83
PART II DIRECT
3D
FOUNDATIONS
_
Chapter4 DirectSD Initialization
.91
4.1
Preliminaries
.92
4.1.1
DirectSD Overview
.92
4.1.2
COM
.92
4.1.3
Textures and Data Resource Formats
.93
4.1.4
The Swap Chain and Page Flipping
.94
4.1.5
Depth Buffering
.95
4.1.6
Texture Resource Views
.98
4.1.7
Multisampling Theory
.99
4.1.8
Multisampling in Direct3D
.
4
.101
4.1.9
Feature Levels
.102
4.2
Initializing DiredSD
.103
4.2.1
Create the Device and Context
.104
4.2.2
Check 4X MSAA Quality Support
.107
4.2.3
Describe the Swap Chain
.107
4.2.4
Create the Swap Chain
.109
4.2.5
Create the Render Target View
.110
. 4.2.6
Create the Depth/Stencil Buffer and View
.111
4.2.7
Bind the Views to the Output Merger Stage
.114
■-■•о
4.2.8
Set the Viewport
.115
Introduction to
3D
Came Programming
4.3
Timing and Animation
.".116
4.3.1
The Performance Timer
.116
4.3.2
Game Timer Class
.■:.118
4.3.3
Time Elapsed Between Frames
.118
4.3.4
Total Time
.120
4.4
The Demo Application Framework
.124
4.4.1
D3DApp
.124
4.4.2
Non-Framework Methods
.::.126
4.4.3
Framework Methods
.126
4.4.4
Frame Statistics
.128
4.4.5
The Message Handler
.129
4.4.6
Going Full Screen
.131
4.4.7
The "Init DirectSD" Demo
.132
4.5
Debugging DirectSD Applications
.134
4.6
Summary
.135
4.7
Exercises
.137
Chapter
5
The Rendering Pipeline
.141
5.1
The
3D
Illusion
.142
5.2
Model Representation
.145
5.3
Basic Computer Color
.146
5.3.1
Color Operations
.147
5.3.2
128-Bit Color
.„<.148
5.3.3
32-Bit Color
.148
5.4
Overview of the Rendering Pipeline
.150
5.5
The Input Assembler Stage
.:.152
5.5.1
Vertices
.152
5.5.2
Primitive Topology
.152
5.5.2.1
Point List
.153
5.5.2.2
Line Strip
.154
5.5.2.3
Line List
.154
5.5.2.4
Triangle Strip
.155
5.5.2.5
Triangle List
.155
5.5.2.6
Primitives with Adjacency
.156
5.5.2.7
Control Point Patch List
.156
5.5.3
Indices
.156
5.6
The Vertex Shader Stage
.158
5.6.1
Local Space and World Space
.159
5.6.2
View Space
.163
5.6.3
Projection and Homogeneous Clip Space.
.166
Table of Contents
.
XI
5.6.3.1
Defininga Frustum
.168
5.6.3.2
Projecting Vertices.
.169
5.6.3.3
Normalized Device Coordinates (NDC)
.170
5.6.3.4
Writing the Projection Equation with a Matrix
.171
5.6.3.5
Normalized Depth Value
.172
í,
5.6.3.6
XMMatrixPerspectiveFovLH
.174
5.7
The Tessellation Stages
.175
' 5.8
The Geometry Shader Stage
.176
5.9
Clipping
.176
5.10
The Rasterization Stage
.178
5.10.1
Viewport Transform
.178
5.10.2
Backface Culling
.179
5.10.3
Vertex Attribute Interpolation
.181
5.11
The Pixel Shader Stage
.182
5.12
The Output Merger Stage
.182
5.13
Summary
.183
5.14
Exercises
.184
Chapter
6
Drawing in
DirectíD
.189
6.1
Vertices and Input Layouts
.190
6.2
Vertex Buffers
.195
6.3
Indices and Index Buffers
.200
6.4
Example Vertex Shader
.203
6.5
Constant Buffers
.206
6.6
Example Pixel Shader
.207
6.7
Render States
.210
6.8
Effects
.212
6.8.1
Effect Files
.213
6.8.2
Compiling Shaders
.,.215
6.8.3
Interfacing with Effects from the
C++
Application
.218
6.8.4
Using Effects to Draw.
.219
6.8.5
Compiling an Effect at Build Time
.220
6.8.6
The Effects Framework as a "Shader Generator"
.223
'- 6.8.7
What the Assembly Looks Like
.228
6.9
Box Demo
.233
6.10 Hüls Demo.240
6.10.1
Generating the Grid Vertices
.241
"■ 6.10.2
Generating the Grid Indices
.243
6.10.3
Applying the Height Function
.244
6.11
Shapes Demo
.246
XII
Introduction to
3D
Game Programming
6.11.1
Generating a Cylinder Mesh.-.
.'.247
6.11.1.1
Cylinder Side Geometry.
.;.247
6.11.1.2
Cap Geometry
.250
6.11.2
Generating a Sphere Mesh
.251
6.11.3
Generating a Geosphere Mesh.
.252
6.11.4
Demo Code.
.*.:.254
6.12
Loading Geometry from the File
.259
6.13
Dynamic Vertex Buffers
.:.260
6.14
Summary
.263
6.15
Exercises
.264
Chapter
7
Lighting
.-.·.269
7.1
Light and Material Interaction.:
.270
7.2
Normal Vectors
.::.'.273
7.2.1
Computing Normal Vectors
.274
7.2.2
Transforming Normal Vectors
.276
7.3
Lambert's Cosine Law
.278
7.4
Diffuse Lighting
.280
7.5
Ambient Lighting
.
:.5
.".281
7.6
Specular Lighting.
.281
7.7
Brief Recap
.284
7.8
Specifying Materials
.
л
.285
7.9
Parallel Lights
.287
7.10
Point Lights
.288
7.10.1
Attenuation
.289
7.10.2
Range
.289
7.11
Spotlights
.290
7.12
Implementation
.291
7.12.1
Lighting Structures
.291
7.12.2
Structure Packing
.:.293
7.12.3
Implementing Directional Lights
.295
7.12.4
Implementing Point Lights
.296
7.12.5
Implementing Spotlights
.297
7.13
Lighting Demo
.299
7.13.1
Effect File
.299
7.13.2 C++
Application Code
.301
7.13.3
Normal Computation
.304
7.14
Lit Skull Demo
.-.-.·.305
7.15
Summary
.;.307
7.16
Exercises
.308
Table of Contents
·.·■.:; ) XIII
'>
Chapter
8
Texturing
.331
°J
8.1
Texture and Resource Recap
.312
8.2
Texture Coordinates
.314
8.3
Creating and Enabling a Texture.
.317
8.4
Filters
.:;.:.319
8.4.1
Magnification
.319
:
8.4.2
Minification.
.322
8.4.2.1
Creating of Mipmaps
.;.323
8.4.3 Anisotropie
Filtering
.323
8.5
Sampling Textures
.'.·.324
8.6
Textures and Materials.:.
.'.325
г
8.7
Crate Demo.;.
.-.,.,.326
* 8.7.1
Specifying Texture Coordinates
.326
'u
8.7.2
Creating the Texture
.327
8.7.3
Setting the Texture
.327
8.7.4
Updated Basic Effect.
.328
8.8
Address Modes.
.332
8.9
Transforming Textures
.335
8.10
Textured Hills and Waves Demo
.336
8.10.1
Grid Texture Coordinate Generation
.337
8.10.2
Texture Tiling
.338
8.10.3
Texture Animation
.338
8.11
Compressed Texture Formats
.339
8.12
Summary
.342
8.13
Exercises
.342
Chapter
9
Blending
.347
9.1
The Blending Equation
.348
9.2
Blend Operations
.349
<> - 9.3
Blend Factors
.350
9.4
Blend State
.351
9.5
Examples
.354
9.5.1
No Color Write
.354
9.5.2
Adding/Subtracting
.355
9.5.3
Multiplying
.356
9.5.4
Transparency
.356
9.5.5
Blending and the Depth Buffer
.357
»
i'
9.6
Alpha Channels
.358
í
-■:■· 9.7
Clipping Pixels
.361
9.8
Fog.
.363
XIV
Introduction to
3D
Game Programming
9.9
Summary
.
r.v.:.-.·.:.
:.:.-.369
9.10
Exercises
.370
Chapter
10
Stenciling
.
.'.'.1
.371
¡.
10.1
Depth/Stencil Formats and Clearing
.372
10.2
The Stencil Test.
.373
10.3
The Depth/Stencil State Block
.374
10.3.1
Depth Settings
.375
10.3.2
Stencil Settings
.375
10.3.3
Creating and Binding a Depth/Stencil State
.377
10.3.4
Depth/Stencil States in
Effect
Files.:.
.378
10.4
Implementing Planar Mirrors
.378
10.4.1
Mirror Overview
.379
10.4.2
Defining the Mirror Depth/Stencil States
.382
10.4.3
Drawing the Scene
.383
10.4.4
Winding Order and Reflections
.384
. - 10.5
Implementing Planar Shadows
.385
10.5.1
Parallel Light Shadows
.386
: 10.5.2
Point Light Shadows
.388
10.5.3
General Shadow Matrix
.390
·,'._ 10.5.4
Using the Stencil Buffer to Prevent Double Blending
.390
10.5.5
Shadow Code
.391
10.6
Summary
.392
10.7
Exercises
.393
Chapter
11
The Geometry Shader
.399
11.1
Programming Geometry Shaders
.
J.
.
h
.400
11.2
Tree Billboards Demo
.405
11.2.1
Overview
.405
11.2.2
Vertex Structure
.408
11.2.3
The EffectFile
.409
11.2.4
SV_PrimitiveID
.414
11.3
Texture Arrays
.
л.:.
.415
11.3.1
Overview
.:.:.415
11.3.2
Sampling a Texture Array
.*.416
11.3.3
Loading Texture Arrays
.417
11.3.4
Texture Subresources.
.420
IMAlpha-To-Coverage
.'.422
: 11.5
Summary
.423
V
:■" 11.6
Exercises
.424
Table of Contents
; ;: ?. ■
с
XV
Chapter
12
The Compute Shader
.;.;.429
12.1
Threads and Thread Groups
.432
12.2
A Simple Compute
Sháder .ľ.
.'.!.433
'
l:
12.3
Data Input and Output Resources
.434
С
- 12.3.1
Texture Inputs
.435
"W
12.3.2
Texture Outputs and Unordered
"
r;:
,. »
Access
Views(UAVs)
.
V.
.:.435
С?
12.3.3
Indexing and Sampling Textures.
.437
λ
12.3.4
Structured Buffer Resources.!:
.439
/' 12.3.5
Copying CS Results to System Memory.
.442
''■ " 12.4
Thread Identification System Values
.445
^'
12.5
Append and Consume Buffers.
.447
■-·"-* 12.6
Shared Memory and Synchronization
.448
"Οϊ
12.7
Blur Demo
.450
12.7.1
Blurring Theory
.450
;;'
12.7.2
Render-to-Texture
.:::.:.
л.
.454
12.7.3
Blur Implementation Overview.
.456
12.7.4
Compute Shader Program
.460
12.8
Further Resources
.;.466
12.9
Summary
.467
: 12.10
Exercises.!
.:.::.468
,rt Chapter
13
The Tessellation Stages
.471
13.1
Tessellation Primitive Types
.472
13.1.1
Tessellation and the Vertex Shader
.473
і
13.2
The Hull Shader
.473
13.2.1
Constant Hull Shader
.474
13.2.2
Control Point Hull Shader
.476
■>" 13.3
The Tessellation Stage.:
.478
" ' 13.3.1
Quad Patch Tessellation Examples
.478
13.3.2
Triangle Patch Tessellation Examples
.479
13.4
The Domain Shader
.479
13.5
Tessellating a Quad
.481
13.6
Cubic
Bézier
Quad Patches
.484
- 13.6.1
Bézier
Curves
.:.484
Ч
13.6.2
Cubic
Bézier
Surfaces
.487
;':· 13.6.3
Cubic
Bézier
Surface Evaluation Code
.488
13.6.4
Defining the Patch Geometry
.491
: 13.7
Summary
.492
ľ
■-.-? 13.8
Exercises
.493
XVI
Introduction
то
3D
Game Programming
PARTIU
TOPICS
"'-ŕ
Chapter
14
Building a First Person Camera
.'.497
14.1
View Transform Review
.'.'.:.'.498
14.2
The Camera Class
.499
14.3
Selected Method Implementations
.501
14.3.1
XMVECTOR Return Variations
.501
14.3.2
SetLens.
.:.
л
.501
14.3.3
Derived Frustum Info
.502
14.3.4
Transforming the Camera:.:.
.502
14.3.5
Building the View Matrix.
.
„-.г.
.:.:.:.503
14.4
Camera Demo Comments:.
.505
14.5
Summary
.506
14.6
Exercises
.507
Chapter
15
Instancing and Frustum Culling.
.509
15.1
Hardware Instancing
:.510
15.1.1
The Vertex Shader.
r
.510
15.1.2
Streaming Instanced Data
.511
15.1.3
Drawing Instanced Data
.513
15.1.4
Creating the Instanced Buffer
.514
15.2
Bounding Volumes and Frustums
.515
15.2.1
XNA Collision.
.;.'.:.
ľ.'.'.
:.?. 516
15.2.2
Boxes
.516
15.2.2.1,
Rotations and Axis-Aligned Bounding Boxes
.518
15.2.3
Spheres
.520
15.2.4
Frustums
.521
15.2.4.1
Constructing the Frustum Planes.
.521
15.2.4.2
Frustum/Sphere Intersection
.524
15.2.4.3
Frustum/AABB Intersection
.525
15.3
Frustum Culling
.526
15.4
Summary
.530
15.5
Exercises
.530
Chapter
16
Picking.
.·—··—·.
533
16.1
Screen to Projection Window Transform
.535
16.2
World/Local Space Picking Ray.
.:.538
16.3
Ray/Mesh Intersection
.
.Л
.539
16.3.1
Ray/AABB Intersection
.
.ľ.
.541
16.3.2
Ray/Sphere Intersection
.:.:.541
Table of Contents
<"' -
ι-
. XVII
> » 16.3.3
Ray/Triangle Intersection
.;.542
• > 16.4
Demo Application
.544
'-■* 16.5
Summary
.545
16.6
Exercises
.546
Chapter
17
Cube Mapping
.547
17.1
Cube Mapping.
.548
17.2
Environment Maps
.549
17.2.1
Loading and Using Cube Maps in Direct3D
.553
17.3
Texturing a Sky
.554
17.4
Modeling Reflections
.556
'°
17.5
Dynamic Cube Maps
.559
'' 17.5.1
Building the Cube Map and Render Target Views
.560
17.5.2
Building the Depth Buffer and Viewport
.562
17.5.3
Setting up
thè
Cube Map Camera
.563
17.5.4
Drawing into the Cube Map
.564
17.6
Dynamic Cube Maps with the Geometry Shader
.565
17.7
Summary
.568
17.8
Exercises
.569
Chapter
18
Normal Mapping and Displacement Mapping
.571
18.1
Motivation
.572
18.2
Normal Maps
.573
18.3
Texture/Tangent Space
.576
18.4
Vertex Tangent Space
.578
18.5
Transforming Between Tangent Space and Object Space
.579
18.6
Normal Mapping Shader Code
.580
18.7
Displacement Mapping
.585
18.8
Displacement Mapping Shader Code.
.587
18.8.1
Primitive Type.
.;?.587
18.8.2
Vertex Shader
.588
18.8.3
Hull Shader
.589
' " 18.8.4
Domain Shader
.591
18.9
Summary
.593
• < 18.10
Exercises
.594
Chapter
19
Terrain Rendering
.597
19.1
Heightmaps
. 598
' " 19.1.1
Creating a Heightmap
.600
19.1.2
Loading a RAW File
.601
XVIII
Introduction to
3D
Game Programming
19.1.3
Smoothing
.;:.;;.;:::.„.:.;.:.·.£.;.603
- · 19.1.4
Heightmap Shader Resource View
.·.
л
.;.60S
Є
19.2
Terrain Tessellation.
:„„.:.;;:.
.i.^.
:.606
■k
19.2.1
Grid Construction
.;.:.607
19.2.2
Terrain Vertex Shader
.610
°
' 19.2.3
Tessellation Factors.
.„^„l.·^.;.:.^:.:.:.:::.::.
611
г
,v
19.2.4
Displacement Mapping
.613
,.„, 19.2.5
Tangent and Normal Vector Estimation
.614
19.3
Frustum Culling Patches.
.615
. .-- 19.4
Texturing.
.620
.;,■'? 19.5
Terrain Height
.„.623
19.6
Summary.
.,.627
19.7
Exercises.
.·.;.;.„.,.;.;.628
,; Chapter
20
Particle Systems and Stream-Out.
.631
20.1
Particle Representation
.
.^.„^„Гл.:::.
. :.-.;.632
20.2
Particle Motion.
;·.-.·;:.
λ.
■:.;.:.:■.:.:.:.:■.-.633
20.3
Randomness.
.635
20.4
Blending and Particle Systems
.638
20.5
Stream-Out
.640
20.5.1
Creating a Geometry Shader for Stream-Out
. 641
20.5.2
Stream-Out Only
.641
20.5.3
Creating a Vertex Buffer for Stream-Out.
.643
20.5.4
Binding to the SO Stage.
.643
20.5.5
Unbinding from the Stream-Out Stage.
.643
20.5.6
Auto Draw
.;.644
20.5.7
Ping-Ponging Vertex Buffers
.644
20.6
GPU Based Particle System
.645
20.6.1
Particle Effects.;.
.:.„;.645
20.6.2
The Particle System Class
.645
• 20.6.3
Emitter Particles
.647
f;;>
20.6.4
The Initialization Vertex Buffer
.647
20.6.5
The Update/Draw Method
.;.648
-о/
20.7
Fire
.-.650
?.
r
20.8
Rain
.:.;.:.
:655
20.9
Summary
.660
f
20.10
Exercises
.::::::.:.;.:::.
„ijI.
2.1.
:.:^:.::.
Chapter
21
Shadow Mapping».
.:.663
21.1
Rendering Scene Depth.
.'.664
Table of Contents
: · ■■·.? XIX
C·;"
21.2
Orthographic Projections
.666
'■■■ 21.3
Projective Texture Coordinates
.669
: : * 21.3.1
Code Implementation
.671
'
f
' . 21.3.2
Points Outside the Frustum
.671
■■>'. 21.3.3
Orthographic Projections
.672
с
" 21.4
Shadow Mapping
.673
21.4.1
Algorithm Description
.673
21.4.2
Biasing and Aliasing
.674
-, 21.4.3
PCF
Filtering
.-.678
i;
21.4.4
Building the Shadow Map
.682
-; -. 21.4.5
The Shadow Factor
.686
Ct
- 21.4.6
The Shadow Map Test.
.688
t.-
21.4.7
Rendering the Shadow Map
.691
21.5
Large
PCF
Kernels.
.692
21.5.1
The DDXand DDYFunctions
.693
21.5.2
Solution to the Large
PCF
Kernel Problem
.693
21.5.3
An Alternative Solution to the Large
PCF
Kernel Problem
.696
21.6
Summary
.697
21.7
Exercises
.698
,.,,.
Chapter
22
Ambient Occlusion
.701
■ 22.1
Ambient Occlusion via Ray Casting.
.702
22.2
Screen Space Ambient Occlusion
.706
22.2.1
Render Normals and Depth Pass
.706
22.2.2
Ambient Occlusion Pass
.707
22.2.2.1
Reconstruct View Space Position
.708
22.2.2.2
Generate Random Samples
.709
22.2.2.3
Generate the Potential Occluding Points
.710
, 22.2.2.4
Perform the Occlusion Test
.710
22.2.2.5
Finishing the Calculation
.711
22.2.2.6
Implementation
.711
22.2.3
Blur Pass
.715
22.2.4
Using the Ambient Occlusion Map
.719
22.3
Summary
.721
22.4
Exercises
.722
Chapter
23
Meshes
.725
23.1
mod Format.
.726
23.1.1
Header
.726
23.1.2
Materials.
.;.727
XX Introduction
то
3D
Game Programming
23.1.3
Subsets
.
i.:.:.::.::.::.?.:.:::.
.728
·· ' 23.1.4
Vertices and Triangle Indices
Г.
.:.:.
:730
23.2
Mesh Geometry
.
л.;.:.;:;:;::.,;.:.
.;.:.
:731
23.3
Basic Model
.;::.:.:.:.:■.:.;:::.::.;.:.: 732
»'■Ό
23.4
Mesh Viewer Demo
.::.:.:.:.„.;.'.: 734
' 23.5
Summary
.;.: 735
' 23.6
Exercises./.;
.:.·.·.'.■.'.:.:.:■.'.'.:■:■.'.■.■.;.: 735
Chapter
24
Quaternions
.:.737
24.1
Review of the Complex Numbers.
λ.;1.
.738
■■·' '■" 24.1.1
Definitions
.;:::.:.;.::.:.'.·.
:\'.
.
:738
24.1.2
Geometric Interpretation·.;.'./.'.?.;
.
і
739
24.1.3
Polar Representation and Rotations .V.'./.
.".;.740
0 24.2
Quaternion Algebra
.·.-.
.'.I-.V.1.
:.·.'::.::.742
' 24.2.1
Definition and Basic Operations
.
.ν.:-.
.742
1 - 24.2.2
Special Products.
.;.
ľ.
.:.;:. .:■/:.
.V.:.
743
24.2.3
Properties
.
л.;.^.:.
.;.-.743
24.2.4
Conversions
.744
24.2.5
Conjugate and Norm
.·.;.-.-.744
24.2.6
Inverses
.745
24.2.7
Polar Representation:.'.:.:^?.
.І:;.
il.:/.1:
.:.;;.746
24.3
Unit Quaternions and Rotations
.:.747
24.3.1
Rotation Operator
.„.:.747
24.3.2
Quaternion Rotation Operator.to Matrix.
.750
ν*
24.3.3
Matrix to Quaternion Rotation Operator
.751
и
v
24.3.4
Composition.
.:.753
* 24.4
Quaternion Interpolation.
.753
24.5
XNA Math Quaternion Functions.;.
.759
24.6
Rotation Demo
.-.-.:.:.-.760
v
24.7
Summary
.:.„.:./764
24.8
Exercises
.-.;.765
Chapter
25
Character Animation.
.769
25.1
Frame Hierarchies
.770
25.1.1
Mathematical Formulation.
.;.'770
25.2
Skinned Meshes
.774
25.2.2
Reformulating a Bones
То
-Root
Transform
.774
25.2.3
The Offset Transform.
.:;:.::.,:.::.
Î775
25.2.4
Animating the Skeleton
.776
Table of Contents
:'. ': ·;:·-. .· XXI
25.2.5
Calculating the Final Transform
.778
25.3
Vertex Blending
.779
"' " 25.4
Loading, mod Animation Data
.782
'X
25.4.1
Skinned Vertex Data
.783
; 25.4.2
Bone Offset Transforms
.784
,::,> 25.4.3
Hierarchy
.785
25.4.4
Animation Data
.785
' ; 25.4.5
M3DLoader
.788
25.5
Character Animation Demo
.789
25.6
Summary
.791
<■'
r-"
25.7
Exercises
.
V.
.:.792
,
л
Appendix A: Introduction to Windows Programming
.793
С АЛ
Overview
.;.794
■
АЛЛ
Resources
.794
õ
·■
і
АЛ
.2
Events, the Message Queue, Messages, and the Message Loop
.794
A.1.3GUI
.795
A.1.4 Unicode
.797
A.2 Basic Windows Application
.;.798
A.3 Explaining the Basic Windows Application.
.802
A.3.1 Includes, Global Variables, and Prototypes
.802
A.3.2WinMain
.802
A.3.3 WNDCLASS and Registration
.803
A.3.4 Creating and Displaying the Window
.805
A.3.5 The Message Loop
.807
A.3.6 The Window Procedure
.808
A.3.7 TheMessageBox Function
.810
1
; A.4 A Better Message Loop.
.811
A.5 Summary
.811
A.6 Exercises
.;.812
,
Appendix B: High Level Shader Language Reference
.813
Variable Types
.813
Scalar Types
.813
Vector Types
.813
Swizzles
.814
Matrix Types
.815
Arrays
.816
Structures
.816
The typedef Keyword
.816
XXII
Introduction to
3D
Came Programming
Variable Prefixes.::.:.
.;.:.:;.;;:.:.:.::.:;.:.;.:.817
■Casting.-.;.;.:'.'.-.::.
.;:.:.;.::.;.:.:.817
Keywords and Operators.:
.::.;.".818
Keywords.
.;;.:.::.::.;.::.:.:::.:.
.ľi.
.818
Operators.:.:
.-.::;:.:. .:„::.:.818
Program Flow
.;.:.'.820
Functions;.:
.„.:.:.:.;.;;.:.:;.821
User-Defined Functions
.::.:;:.821
Built-in Functions.
.„.:.:.:.::.::.:.:.:.:.::.:„.822
Appendix C: Some Analytic Geometry.
.825
C.I Rays, Lines, and Segments.
.826
G2 Parallelograms
.;.„.
,.'.'.í:.„:i
.
ľ.:::.
.:_.::.„. 827
G.3 Triangles;:.:.:.::
.:;.;./.:.;.828
C^Planes.:::.:.
.-.:.;.;.:.:.;.:.·.".829
C.4.1XNA Math Planes.
:.:.;;:::.:.::.830
C.4.2 Point/Plane Spatial Relation
.'.830
C.4.3 Construction
.;.831
¿o C.4.4 Normalizing a Plane.
.:.:.;:.:.832
';
C.4.5 Transforming a Plane
.:.:.:.:.832
G.4.6 Nearest Point on a Plane to a Given Point
.833
!'
C.4.7 Ray/Plane Intersection
.
.r.:.:.
.833
C.4.8 Reflecting Vectors.:.:
.:.:.:.834
!'■■■
C.4.9 Reflecting Points.:.
.:.:.:.:;.;::.:.835
>'
C.4.10 Reflection Matrix.
.:.·.:.:.;.835
- -
C.5 Exercises.:.;.
.;.;.
л;.:.:.:.;.;.:.:.;
.837
Appendix D: Solutions to Exercises.
.839
Bibliography and Further Reading
.;.:.:.841
Index.
.
.ľ.;:.;.;.^;;.;^^:.^.::.:.-;.::.
.847
'ì;',!'.· |
any_adam_object | 1 |
author | Luna, Frank D. |
author_GND | (DE-588)138690731 |
author_facet | Luna, Frank D. |
author_role | aut |
author_sort | Luna, Frank D. |
author_variant | f d l fd fdl |
building | Verbundindex |
bvnumber | BV040122224 |
classification_rvk | ST 324 ST 326 |
classification_tum | DAT 758f |
ctrlnum | (OCoLC)794220540 (DE-599)BVBBV040122224 |
discipline | Informatik |
format | Book |
fullrecord | <?xml version="1.0" encoding="UTF-8"?><collection xmlns="http://www.loc.gov/MARC21/slim"><record><leader>00000nam a2200000 c 4500</leader><controlfield tag="001">BV040122224</controlfield><controlfield tag="003">DE-604</controlfield><controlfield tag="005">20140709</controlfield><controlfield tag="007">t|</controlfield><controlfield tag="008">120508s2012 xx ad|| |||| 00||| eng d</controlfield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">9781936420223</subfield><subfield code="9">978-1-9364202-2-3</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(OCoLC)794220540</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(DE-599)BVBBV040122224</subfield></datafield><datafield tag="040" ind1=" " ind2=" "><subfield code="a">DE-604</subfield><subfield code="b">ger</subfield><subfield code="e">rakwb</subfield></datafield><datafield tag="041" ind1="0" ind2=" "><subfield code="a">eng</subfield></datafield><datafield tag="049" ind1=" " ind2=" "><subfield code="a">DE-355</subfield><subfield code="a">DE-91G</subfield><subfield code="a">DE-20</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">ST 324</subfield><subfield code="0">(DE-625)143660:</subfield><subfield code="2">rvk</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">ST 326</subfield><subfield code="0">(DE-625)143662:</subfield><subfield code="2">rvk</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">DAT 758f</subfield><subfield code="2">stub</subfield></datafield><datafield tag="100" ind1="1" ind2=" "><subfield code="a">Luna, Frank D.</subfield><subfield code="e">Verfasser</subfield><subfield code="0">(DE-588)138690731</subfield><subfield code="4">aut</subfield></datafield><datafield tag="245" ind1="1" ind2="0"><subfield code="a">Introduction to 3D game programming with DirectX 11</subfield><subfield code="c">Frank D. Luna</subfield></datafield><datafield tag="246" ind1="1" ind2="3"><subfield code="a">3D game programming with Directx 11</subfield></datafield><datafield tag="264" ind1=" " ind2="1"><subfield code="a">Dulles, Virginia [u.a.]</subfield><subfield code="b">Mercury Learning and Information</subfield><subfield code="c">2012</subfield></datafield><datafield tag="300" ind1=" " ind2=" "><subfield code="a">XXXVIII, 864 S.</subfield><subfield code="b">Ill., graph. Darst.</subfield><subfield code="e">1 DVD (12 cm)</subfield></datafield><datafield tag="336" ind1=" " ind2=" "><subfield code="b">txt</subfield><subfield code="2">rdacontent</subfield></datafield><datafield tag="337" ind1=" " ind2=" "><subfield code="b">n</subfield><subfield code="2">rdamedia</subfield></datafield><datafield tag="338" ind1=" " ind2=" "><subfield code="b">nc</subfield><subfield code="2">rdacarrier</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">DirectX 11.0</subfield><subfield code="0">(DE-588)7701436-4</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Computerspiel</subfield><subfield code="0">(DE-588)4010457-6</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Programmierung</subfield><subfield code="0">(DE-588)4076370-5</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="689" ind1="0" ind2="0"><subfield code="a">Computerspiel</subfield><subfield code="0">(DE-588)4010457-6</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2="1"><subfield code="a">Programmierung</subfield><subfield code="0">(DE-588)4076370-5</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2="2"><subfield code="a">DirectX 11.0</subfield><subfield code="0">(DE-588)7701436-4</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2=" "><subfield code="5">DE-604</subfield></datafield><datafield tag="856" ind1="4" ind2="2"><subfield code="m">Digitalisierung UB Regensburg</subfield><subfield code="q">application/pdf</subfield><subfield code="u">http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=024978283&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA</subfield><subfield code="3">Inhaltsverzeichnis</subfield></datafield><datafield tag="943" ind1="1" ind2=" "><subfield code="a">oai:aleph.bib-bvb.de:BVB01-024978283</subfield></datafield></record></collection> |
id | DE-604.BV040122224 |
illustrated | Illustrated |
indexdate | 2024-12-06T11:01:24Z |
institution | BVB |
isbn | 9781936420223 |
language | English |
oai_aleph_id | oai:aleph.bib-bvb.de:BVB01-024978283 |
oclc_num | 794220540 |
open_access_boolean | |
owner | DE-355 DE-BY-UBR DE-91G DE-BY-TUM DE-20 |
owner_facet | DE-355 DE-BY-UBR DE-91G DE-BY-TUM DE-20 |
physical | XXXVIII, 864 S. Ill., graph. Darst. 1 DVD (12 cm) |
publishDate | 2012 |
publishDateSearch | 2012 |
publishDateSort | 2012 |
publisher | Mercury Learning and Information |
record_format | marc |
spelling | Luna, Frank D. Verfasser (DE-588)138690731 aut Introduction to 3D game programming with DirectX 11 Frank D. Luna 3D game programming with Directx 11 Dulles, Virginia [u.a.] Mercury Learning and Information 2012 XXXVIII, 864 S. Ill., graph. Darst. 1 DVD (12 cm) txt rdacontent n rdamedia nc rdacarrier DirectX 11.0 (DE-588)7701436-4 gnd rswk-swf Computerspiel (DE-588)4010457-6 gnd rswk-swf Programmierung (DE-588)4076370-5 gnd rswk-swf Computerspiel (DE-588)4010457-6 s Programmierung (DE-588)4076370-5 s DirectX 11.0 (DE-588)7701436-4 s DE-604 Digitalisierung UB Regensburg application/pdf http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=024978283&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA Inhaltsverzeichnis |
spellingShingle | Luna, Frank D. Introduction to 3D game programming with DirectX 11 DirectX 11.0 (DE-588)7701436-4 gnd Computerspiel (DE-588)4010457-6 gnd Programmierung (DE-588)4076370-5 gnd |
subject_GND | (DE-588)7701436-4 (DE-588)4010457-6 (DE-588)4076370-5 |
title | Introduction to 3D game programming with DirectX 11 |
title_alt | 3D game programming with Directx 11 |
title_auth | Introduction to 3D game programming with DirectX 11 |
title_exact_search | Introduction to 3D game programming with DirectX 11 |
title_full | Introduction to 3D game programming with DirectX 11 Frank D. Luna |
title_fullStr | Introduction to 3D game programming with DirectX 11 Frank D. Luna |
title_full_unstemmed | Introduction to 3D game programming with DirectX 11 Frank D. Luna |
title_short | Introduction to 3D game programming with DirectX 11 |
title_sort | introduction to 3d game programming with directx 11 |
topic | DirectX 11.0 (DE-588)7701436-4 gnd Computerspiel (DE-588)4010457-6 gnd Programmierung (DE-588)4076370-5 gnd |
topic_facet | DirectX 11.0 Computerspiel Programmierung |
url | http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=024978283&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |
work_keys_str_mv | AT lunafrankd introductionto3dgameprogrammingwithdirectx11 AT lunafrankd 3dgameprogrammingwithdirectx11 |