Suchen und Finden
Contents at a Glance
5
Contents
6
About the Author
10
About the Technical Reviewer
11
Acknowledgments
12
Introduction
13
Getting Started with XNA 2.0
15
1- 1. Install XNA Game Studio 2.0
15
1- 2. Start Your First XNA 2.0 Project
17
1- 3. Deploy Your XNA2.0 Game on Xbox 360
20
1- 4. Deploy Your XNA2.0 Game on Another PC
22
1- 5. Customize Game Loop Timing
24
1- 6. Make Your Code Plug-and- Play Using GameComponents
25
1- 7. Allow Your GameComponents to Communicate with Each Other by Implementing GameServices
29
1- 8. Save and Load Data to/ from a File
33
Setting Up Different Camera Modes in Your 3D World
39
2- 1. Set Up the Camera: Position, Target, and View Frustum
39
2- 2. Specify the Target of Your Camera
47
2- 3. Create a First- Person Shooter Camera: A Quake- Style Camera
53
2- 4. Create a Freelancer-Style Camera: Full 3D Rotation Using Quaternions
59
2- 5. Check Whether an Object Is in Sight of the Camera
66
2- 6. Detect Camera Collision Against Models, Walls, or Terrains
71
2- 7. Create a Camera Fly- by Action
74
2- 8. Remove the Solid Background Color: Skybox
84
2- 9. Draw Only the Parts of the Scene That Are in Sight of the Camera: Octree
96
2- 10. Use a Quadtree to Hide Parts of a Grid That Are Not in Sight
118
2- 11. Set Up a Post- Processing Framework
127
2- 12. Create a Blur/ Glow Post- Processing Effect
139
2- 13. Define an Orthogonal Projection Matrix to Generate a Depth Map of the Scene
149
Working with 2D Images/ Textures in XNA 2.0
158
3- 1. Display 2D Images: Load and Render Images Using the SpriteBatch Class
159
3- 1. Rotate, Scale, and Mirror an Image
164
3- 3. Render Transparent Images Using Layers
166
3- 4. Consider Performance When Using the SpriteBatch Class
170
3- 5. Display Text
173
3- 6. Create a 2D Menu Interface
175
3- 7. Create a Texture, Define the Color of Each Pixel, Save a Texture to a File
189
3- 8. Render the Scene into a Texture
191
3- 9. Extend the Image Content Processor
195
3- 10. Extend the Image Content Processor: Grayscale Conversion and Processor Parameters
208
3- 11. Make Your Scene More Impressive with Billboarding: Render 2D Images in a 3D World So They Always Face the Camera
212
3- 12. Create a 3D Explosion Effect/ Simple Particle System
233
3- 13. Create a Mirror: Projective Texturing
246
Working with Models
260
4- 1. Load and Render a Model Using the BasicEffect Class
261
4- 2. Set Different World Matrices for Different Objects, Combining World Matrices
265
4- 3. Find the Rotation Angle Corresponding to a Direction
271
4- 4. Use Acceleration to Control Velocity
273
4- 5. Construct the Global BoundingSphere Around a Model
278
4- 6. Scale the Model to a Predefined Size
280
4- 7. Render a Model Using Custom Effects and Custom Textures ( Easy Approach)
282
4- 8. Visualize the Bone Structure of a Model
287
4- 9. Make the Bones Move Individually: Model Animation
294
4- 10. Use BoundingSpheres for Basic Model Collision Detection
299
4- 11. Use Ray- Traced Collision Detection for Small/ Fast Objects
305
4- 12. Extend the Model Content Processor to Load Custom Effects ( Clean Approach)
308
4- 13. Gain Direct Access to Vertex Position Data by Extending the Model Processor
315
4- 14. Gain Direct Access to Vertex Position Data of Each ModelMesh by Extending the Model Processor
320
4- 15. Gain Direct Access to Vertex Position Data by Defining a Custom TypeWriter and TypeReader
325
4- 16. Store Multiple Objects in the Tag Property by Defining a Custom TypeWriter and TypeReader
335
4- 17. Correctly Tilt a Model Corresponding to the Terrain Underneath
342
4- 18. Detect Ray- Model Collisions Using Per- Triangle Checks
353
4- 19. Detect Whether the Pointer Is Over a Model
362
Getting the Most Out of Vertices
367
5- 1. Render Triangles, Lines, and Points in a 3D World
368
5- 2. Apply a Texture to Your Triangles
379
5- 3. Remove Redundant Vertices Using Indices
387
5- 4. Store Your Vertices and Indices in the Memory of Your Graphics Card Using a VertexBuffer and an IndexBuffer
391
5- 5. Store Your Vertices in a DynamicVertexBuffer for Frequently Updated Data
396
5- 6. Enable Backface Culling: What It Is and What It Can Do for You
399
5- 7. Automatically Calculate the Normals for All Vertices in a VertexBuffer
403
5- 8. Create a Terrain Based on a VertexBuffer and an IndexBuffer
409
5- 9. Calculate the Exact Height of a Terrain Between Vertices Using Bilinear Interpolation
419
5- 10. Calculate the Collision Point Between the Pointer and the Terrain: Surface Picking
425
5- 11. Extend the TextureProcessor to Generate a Terrain Object from an Image: Advanced DOM Objects
432
5- 12. Write a Custom Content Importer: Loading a Terrain from a CSV File
444
5- 13. Load Data from an XML File
451
5- 14. Create Your Own Vertex Format
457
5- 15. Introducing Bump Mapping: Fixed Normal
467
5- 16. Adding Per-Pixel Detail by Bump Mapping in Tangent Space
472
5- 17. Add an Ocean to Your 3D World
484
5- 18. Apply Catmull- Rom Interpolation in 3D to Generate Additional Vertices
497
5- 19. Create the Vertices for a Racing Track
501
Adding Light to Your Scene in XNA 2.0
511
6- 1. Define Normals and Use the BasicEffect
512
6- 2. Share Normals Between Vertices
518
6- 3. Add Higher Detail to Your Lighting: Per- Pixel Lighting
523
6- 4. Add Specular Highlights to Reflective Surfaces
526
6- 5. Add HLSL Vertex Shading
528
6- 6. Define a Point Light Using HLSL
534
6- 7. Add HLSL Per-Pixel Lighting
536
6- 8. Define a Spotlight Using HLSL
540
6- 9. Add HLSL Specular Highlights
542
6- 10. Add Multiple Lights to Your Scene Using Deferred Shading
547
6- 11. Add Shadowing Capability to Your Deferred Shading Engine
563
Adding Sounds to Your XNA 2.0 Project
571
7- 1. Play Simple . wav Sound Files
571
7- 2. Loop Sounds
575
7- 3. Play Sounds from a 3D Location Relative to the Camera: 3D Sound
579
Networking in XNA 2.0
583
8- 1. Sign In for Networking Services
583
8- 2. Create a Network Session
586
8- 3. Join a Networking Session
591
8- 4. Send/ Receive Data Over the Network
596
8- 5. Search for Networking Sessions Asynchronously
604
8- 6. Move from the Lobby to the Actual Game
607
Index
611
Alle Preise verstehen sich inklusive der gesetzlichen MwSt.