Beginning Direct3D Game Programming
Wolfgang Friedrich Engel, Amir Geva
Résumé
Create exhilarating 3D game graphics!
Beginning Direct3D® Game Programming covers all of the elements that are neccessary to create a Direct3D game for your PC! You will learn the essentials of Direct3D game programming, including basic algorithms, texture mapping basics, 3D math, lighting, use of depth buffers, and much more! This book also covers the Transformation & Lighting Pipeline and how to use it to map texture objects with different effects as well as different file formats and how to integrate them into your game engines. You'll go from the basic to hardcore Direct3D game programming in a matter of pages!
What's on the CD:
- Microsoft® DirectX® 8 Software Development Kit
- Truespaces Demo Version
- 30-Day Trial Version of Jasc® Paint Shop Pro® 7
- Games
- Source Code from the Book
Introduction
Part I: DirectX Graphics: Don't Hurt Me
Chapter 1: History of Direct3D/DirectX Graphics
Chapter 2: Overview of DirectX
Graphics/HAL/COM
Direct3D HAL
Pluggable Software Devices
Reference Rasterizer
Controlling Devices
COM
Chapter 3: C/C++ and COM Programming Rules for
Direct3D
Code Style
Debugging DirectX
Return Codes
Chapter 4: Geometry/Shading/Texture-Mapping
Basics
Orientation
Faces
Normals
Normals and Gouraud Shading
Texture-Mapping Basics
Chapter 5: The Basics
The DirectX Graphics Common Architecture
Basic Example
InitDeviceObjects()
RestoreDeviceObjects()
FrameMove()
Render()
InvalidateDeviceObjects()
DeleteDeviceObjects()
FinalCleanup()
RestoreDeviceObjects()
Render()
InvalidateDeviceObjects()
DeleteDeviceObjects()
FinalCleanup()
Render()
InvalidateDeviceObjects()
Chapter 6: First Steps to Animation
The Third Dimension
Transformation Pipeline
Transformation Math
Matrices
The View Matrix
Camera Rotation with Quaternions
Lighting Models
Vertex Color (Optional)
Down to the Code
InitDeviceObjects()
RestoreDeviceObjects()
FrameMove()
Render()
InvalidateDeviceObjects()
DeleteDeviceObjects()
FinalCleanup()
FrameMove()
More Enhancements
Additional Resources
Part II: Knee-Deep in DirectX Graphics Programming
Chapter 7: Texture-Mapping Fundamentals
Texture Coordinates
Texture-Addressing Modes
Mirror Texture-Addressing Mode
Clamp Texture-Addressing Mode
Border Color Texture-Addressing Mode
MirrorOnce Texture-Addressing Mode
Texture Filtering and Texture Anti-Aliasing
Nearest-Point Sampling
Linear Texture Filtering
Anisotropic Filtering
Full-Scene Anti-Aliasing
Alpha Blending
Chapter 8: Using Multiple Textures
Color Operations
Animating the Dark
Blending a Texture with Material Diffuse Color
Dark Map Blended with Material Diffuse Color
Glow Mapping
Detail Mapping
Cubic Environment Mapping
RenderSceneIntoCube()
RenderScene()
ConfirmDevice()
InitBumpMap()
Render()
Render()
Texture Management
Quiz
Additional Resources
Detail Mapping
Cubic Environment Mapping
Stencil Buffers
Bump Mapping
Dot Product Texture Blending
Part III: Hard-Core Direct X Graphics Programming
Chapter 9: Working with Files
Building Worlds with X Files
X File Format
Header
Mesh
MeshMaterialList
Normals
Textures
Transformation Matrices
Animation
The Example
RestoreDeviceObjects() and InvalidateDeviceObjects()
Render()
Additional Resources
Chapter 10: Quake III Model Files
Files of the Trade
Animation.cfg
The .skin File
Textures and the Shader File
Custom Sounds
The .md3 Format
Md3.cpp
CreateTextures()
CreateVB()
Render()
DeleteTextures()
DeleteVB()
DeleteModel()
InitDeviceObjects()
Render()
DeleteDeviceObjects()
FinalCleanup()
MsgProc()
Chapter 11: Game Physics (written by Amir
Geva)
3-D Math
Newton's Laws
Calculating the Frame Time
Air Resistance
Static Friction
Kinetic Friction
Chapter 12: Collision Detection (written by Amir
Geva)
The Most Basic Optimization
Bounding Volumes
2-D Collision Detection
Bit Arrays
Sprite Bounds
Grid
Static Objects
3-D Collision Detection
Calculating Distance of Cylinder from Wall
BSP (binary space partitioning)
Sliding Off Walls
Convex Models Intersection
Concave Models Intersection
Axis Aligned Bounding Boxes Tree
Oriented Box Intersections
Triangle Intersection
3-D Object Group Processing
Additional Resources
Part IV: Appendixes
Appendix A: Windows Game Programming
Foundation
How to Look through a Window
How Windows 95/98/ME/NT/2000
Interacts with Your Game
The Components of a Window
A Window Skeleton
Step 3: Creating a Window of that Class
Step 4: Display the Window
Step 5: Create the Message Loop
The Window Procedure
Windows Resources
Additional Resources
Appendix B: C++ Primer
What's Object-Oriented Programming?
Classes
Encapsulation
Declaring a Class
Constructor
Destructor
Inheriting an Interface
Polymorphism
Inline Functions
C++ Enhancements to C
Placement of Variable Declarations
Const Variable
Enumeration
Function Overloading and Operator Overloading
Function Overloading
Appendix C: The Common Files Framework
Create()
Step 2: Search for the Proper Device Driver with the Help of BuildDeviceList()
Step 2 in BuildDeviceList()
Step 4: Initialize the Geometry Data of your Game with OneTimeScene Init()
Step 5: Initialize the 3-D Environment with Initialize3DEnvironment()
Step 2 in Initialize3DEnvironment(): CreateDevice()
Step 3 in Initialize3DEnvironment(): SetWindowPos()
Step 4 in Initialize3DEnvironment(): GetDeviceCaps()
Step 5 in Initialize3DEnvironment(): GetDesc()
Step 6 in Initialize3DEnvironment(): D3DUtil_SetDeviceCursor()
Step 7 in Initialize3DEnvironment(): Initialize the Application's Device Objects
Step 8 in Initialize3DEnvironment()
Step 2 in Render3DEnvironment(): FrameMove()
Step 3 in Render3DEnvironment(): Render()
Step 4 in Render3DEnvironment(): Fill the Frame Count String
Step 5 in Render3DEnvironment(): Present()
Appendix D: Mathematics Primer
Points in 3-D
Vectors
Free Vector
Vector Subtraction: U - V>
Vector Multiplication
Dot Product
Cross Product
Matrix Addition and Subtraction
Matrix Multiplication
Translation Matrix
Scaling Matrix
Rotation Matrices
Rotation about the x-axis
Rotation about the z-axis
Appendix E: Game Programming Resources
General
DirectX Graphics
FAQ
L'auteur - Wolfgang Friedrich Engel
Wolfgang Friedrich Engel is CEO of SoftGroup GmbH and
SoftGroup Polska, which offer IT and Game Development
Services. These companies produce 3-D animations for
marketing and advertising activities. Wolfgang holds
lectures and workshops on Direct3D programming worldwide
and writes tutorials on Direct3D, which are presented at
www.gamedev.net as well as his own Web site,
www.directxgraphics.net. He has worked with such
programming languages as C, C++, Java, JavaScript, ASP,
HTML, SGML, and a few other scripting languages. He holds
degrees in Law and Computer Programming.
L'auteur - Amir Geva
Amir Geva works for the IBM Haifa Research Lab in Israel. Amir graduated from The Technion in Haifa, Israel, with a degree in Computer Engineering. He is the owner of The Photon Effect, which includes a game programming SDK and ColDet, a 3D Collision Detection Library.
Caractéristiques techniques
PAPIER | |
Éditeur(s) | Prima Publishing |
Auteur(s) | Wolfgang Friedrich Engel, Amir Geva |
Parution | 01/05/2001 |
Nb. de pages | 503 |
Format | 18,8 x 23,2 |
Couverture | Broché |
Poids | 885g |
Intérieur | Noir et Blanc |
EAN13 | 9780761531913 |
Avantages Eyrolles.com
Consultez aussi
- Les meilleures ventes en Graphisme & Photo
- Les meilleures ventes en Informatique
- Les meilleures ventes en Construction
- Les meilleures ventes en Entreprise & Droit
- Les meilleures ventes en Sciences
- Les meilleures ventes en Littérature
- Les meilleures ventes en Arts & Loisirs
- Les meilleures ventes en Vie pratique
- Les meilleures ventes en Voyage et Tourisme
- Les meilleures ventes en BD et Jeunesse