|
|
| Home | Introduction to 3D Game Programming with DirectX 9.0
Intended
Audience 1. Intermediate level C++ programmers who would like an
introduction to 3D programming using the latest iteration of Direct3D –
Direct3D 9.0. 2. Experienced 3D programmers, but with an API other than
DirectX (e.g. OpenGL), who would like an introduction to Direct3D 9.0. Prerequisites Table of Contents Introduction Part I Mathematical Prerequisites
Vectors in 3-Space Part II Direct3D Fundamentals Chapter 2 The Rendering Pipeline Chapter 3 Drawing in Direct3D Chapter 4 Color Chapter 5 Lighting Chapter 6 Texturing Chapter 7 Blending Chapter 8 Stenciling Part III Applied Direct3D Chapter 9 Fonts Chapter 10 Meshes Part I Chapter 11 Meshes Part II Chapter 12 Building a Flexible Camera Class Chapter 13 Basic Terrain Rendering Chapter 14 Particle Systems Chapter 15 Picking Part IV Shaders and Effects Chapter 16 Introduction to the High Level Shading Language Chapter 17 Introduction to Vertex Shaders Chapter 18 Introduction to Pixel Shaders Chapter 19 The Effects Framework Appendices Appendix A An Introduction To Windows Programming Chapter Descriptions Mathematical Prerequisites: In this prerequisite part we introduce the mathematical tools that will be used throughout this book. The core of this chapter is the discussions on vectors, matrices, and transformations, which are used in just about every sample program of this book. In addition to the math explanations, we show the D3DX math related classes used to model these mathematical objects and the functions used to execute a particular operation. Chapter 1 Direct3D Initialization: In this chapter we learn what Direct3D is about and how to initialize it in preparation for 3D drawing. Chapter 2 The Rendering Pipeline: The first theme of this chapter is to learn, mathematically, how to describe a 3D world and how to represent a virtual camera that describes the perspective from which the world is viewed. The second theme of this chapter is to learn the steps necessary to take a 2D “picture” of the 3D world based on what the camera “sees”, these steps as a whole are referred to as the rendering pipeline. Chapter 3 Drawing in Direct3D: This chapter shows how to draw 3D geometry in Direct3D. We will learn how to store geometric data in a form that is usable by Direct3D and we will learn the Direct3D drawing commands. In addition, we will learn how to configure the way Direct3D draws geometry using render states. Chapter 4 Color: In this chapter, we learn how color is represented in Direct3D and how to apply color to solid 3D geometric primitives. Finally, we describe two ways colors specified per vertex can be shaded across a primitive. Chapter 5 Lighting: In this chapter, we learn how to create light sources and how to define the interaction between light and surfaces. Lighting adds to the scene’s realism and helps depict the solid form and volume of objects. Chapter 6 Texturing: This chapter describes texture mapping. Texture mapping is a technique used to increase the realism of the scene by mapping 2D image data onto a 3D primitive. For example, using texture mapping we can model a brick wall by applying a 2D brick wall image onto a 3D rectangle. Chapter 7 Blending: In this chapter we look at a technique called blending. This technique allows us to implement a number of special effects, in particular, glass like transparency. Chapter 8 Stenciling: This chapter describes the stencil buffer, which like a stencil, allows us to block pixels from being drawn. To illustrate the ideas of this chapter we include thorough discussions on implementing reflections and planar shadows using the stencil buffer. Chapter 9 Fonts: During a game we will often need to display textual information to the user. This chapter discusses three ways we can generate and output text in Direct3D. Chapter 10 Meshes Part I: This chapter thoroughly explains the data and methods of the D3DX mesh interface ID3DXMesh. Chapter 11 Meshes Part II: In this chapter we continue our study of the D3DX mesh related interfaces and functions. We learn about .X files and how to load and render them. In addition, we will examine the progressive mesh interface ID3DXPMesh. Finally, the chapter concludes by showing how to compute the bounding box and bounding sphere of a mesh. Chapter 12 Building a Flexible Camera Class: In this chapter we design and implement a flexible camera class that has six degrees of freedom. This camera is suited for flight simulators and first person shooters. Chapter 13 Basic Terrain Rendering: This chapter shows how to create, texture, light and render 3D terrains. Furthermore, we show how to smoothly “walk” the camera over the terrain so that it looks like we are walking on the terrain. Chapter 14 Particle Systems: In this chapter, we will learn how to model systems that consist of many small particles that all behave in a similar manner. For example, particle systems can be used to model falling snow and rain, the sparks of an explosion, puffs of smoke, rocket trails, and even the bullets of a gun. Chapter 15 Picking: This chapter shows how to determine the particular 3D object the user has selected with the mouse. Picking is often a necessity in 3D games and applications were the user interacts with the 3D world with the mouse. Chapter 16 Introduction to the High Level Shading Language: In this chapter we explore the High Level Shading Language (HLSL), which is the language we will use to write vertex and pixel shader programs in this book. Chapter 17 Introduction to Vertex Shaders: This chapter explains what vertex shaders are, and how to create and use them in Direct3D. The chapter illustrates vertex shaders by explaining the implementation to a cartoon styled shading technique. Chapter 18 Introduction to Pixel Shaders: This chapter explains what pixel shaders are, and how to create and use them in Direct3D. The chapter concludes by showing how to implement multitexturing using a pixel shader. Chapter 19 The Effects Framework: In this chapter we discuss the Direct3D Effects Framework. The chapter describes the purpose of the effects framework, the structure and syntax of effect files, how to create effect files, and how to use effect files in Direct3D applications. Appendix A An Introduction To Windows Programming: This appendix serves as an introduction to programming Windows with the native Win32 API. In particular, it explains the minimal amount of Windows code necessary to create Direct3D applications.
|
|
|
Email suggestions, comments or errors about this site to |