【文件属性】:
文件名称:D3D render pipeline
文件大小:6.55MB
文件格式:ZIP
更新时间:2012-08-05 17:23:02
d3d directx pipeline
This book describes the Direct3D graphics pipeline, from presentation of scene
data to pixels appearing on the screen. The book is organized sequentially
following the data °ow through the pipeline from the application to the image
displayed on the monitor. Each major section of the pipeline is treated by a
part of the book, with chapters and subsections detailing each discrete stage of
the pipeline. This section summarizes the contents of the book.
Part I begins with a review of basic concepts used in 3D computer graphics
and their representations in Direct3D. The IDirect3D9 interface is introduced
and device selection is described. The IDirect3DDevice9 interface is introduced
and an overview of device methods and internal state is given. Finally, a basic
framework is given for a 2D application.
Chapter 1 begins with an overview of the entire book. A review is given
of display technology and the important concept of gamma correction. The
representation of color in Direct3D and the macros for manipulating color values
are described. The relevant mathematics of vectors, geometry and matrices are
reviewed and summarized. A summary of COM and the IUnknown interface is COM: Component Object
Model
given. Finally, the coding style conventions followed in this book are presented
along with some useful C++ coding techniques.
Chapter 2 describes the Direct3D object. Every application instantiates
this object to select a device from those available. Available devices advertise
their location in the Win32 virtual desktop and their capabilities to applications
34 CHAPTER 1. INTRODUCTION
through the Direct3D object. Selecting a device from those available and exam-
ining a device's capabilities are described. Multiple monitor considerations are
also discussed.
Chapter 3 describes the Direct3D device object which provides access to
the rendering pipeline. The device is the interface an application will use most
often and it has a large amount of internal state that controls every stage of the
rendering pipeline. This chapter provides a high-level overview of the device
and its associated internal state. Detailed discussion of the device state appears
throughout the rest of the book.
Chapter 4 describes the basic architecture of a typical Direct3D application.
Every 3D application can use 2D operations for manipulating frame bu®er con-
tents directly. An application can run in full-screen or windowed modes and the
di®erences are presented here. The handling of Windows messages and a ba-
sic display processing loop are presented. At times it may be convenient to use
GDI in a Direct3D application window and a method for mixing these two Win-
dows subsystems is presented. Almost every full-screen application will want to
use the cursor management provided by the device. Device color palettes and
methods for gamma correction are presented.
Part II describes the geometry processing portion of the graphics pipeline.
The application delivers scene data to the pipeline in the form of geometric
primitives. The pipeline processes the geometric primitives through a series of
stages that results in pixels displayed on the monitor. This part describes the
start of the pipeline where the processing of geometry takes place.
Chapter 5 describes how to construct a scene representing the digital world
that is imaged by the imaginary camera of the device. A scene consists of a
collection of models drawn in sequence. Models are composed of a collection of
graphic primitives. Graphic primitives are composed from streams of vertex and
index data de¯ning the shape and appearance of objects in the scene. Vertices
and indices are stored in resources created through the device.
Chapter 6 covers vertex transformations, vertex blending and user-de¯ned
clipping planes. With transformations, primitives can be positioned relative to
each other in space. Vertex blending, also called \skinning", allows for smooth
mesh interpolation. User-de¯ned clipping planes can be used to provide cut
away views of primitives.
Chapter 7 covers viewing with a virtual camera and projection onto the
viewing plane which is displayed as pixels on the monitor. After modeling,
objects are positioned relative to a camera. Objects are then projected from 3D
camera space into the viewing plane for conversion into 2D screen pixels.
Chapter 8 describes the lighting of geometric primitives. The lighting model
is introduced and the supported shading algorithms and light types are de-
scribed.
Chapter 9 covers programmable vertex shading. Programmable vertex shaders
can process the vertex data streams with custom code, producing a single ver-
tex that is used for rasterization. The vertex shading machine architecture and
instruction set are presented.
Part III covers the rasterization portion of the pipeline where geometry is1.1. OVERVIEW 5
converted to a series of pixels for display on the monitor. Geometric primitives
are lit based on the lighting of their environment and their material properties.
After light has been applied to a primitive, it is scan converted into pixels
for processing into the frame bu®er. Textures can be used to provide detailed
surface appearance without extensive geometric modeling. Pixel shaders can
be used to provide custom per-pixel appearance processing instead of the ¯xed-
function pixel processing provided by the stock pipeline. Finally, the pixels
generated from the scan conversion process are incorporated into the render
target surface by the frame bu®er.
Chapter 10 describes the scanline conversion of primitives into pixel frag-
ments. Lighting and shading are used to process vertex positions and their
associated data into a series of pixel fragments to be processed by the frame
bu®er.
Chapter 11 describes textures and volumes. Textures provide many e±cient
per-pixel e®ects and can be used in a variety of manners. Volumes extend
texture images to three dimensions and can be used for a volumetric per-pixel
rendering e®ects.
Chapter 13 describes programmable pixel shaders. Programmable pixel
shaders combine texture map information and interpolated vertex information
to produce a source pixel fragment. The pixel shading machine architecture and
instruction set are presented.
Chapter 14 describes how fragments are processed into the frame bu®er.
After pixel shading, fragments are processed by the fog, alpha test, depth test,
stencil test, alpha blending, dither, and color channel mask stages of the pipeline
before being incorporated into the render target. A render target is presented
for display on the monitor and video scan out.
Part IV covers the D3DX utility library. D3DX provides an implementation
of common operations used by Direct3D client programs. The code in D3DX
consists entirely of client code and no system components. An application is
free to reimplement the operations provided by D3DX, if necessary.
Chapter 15 introduces D3DX and summarizes features not described else-
where.
Chapter 16 describes the abstract data types provided by D3DX. D3DX
provides support for RGBA color, point, vector, plane, quaternion, and matrix
data types.
Chapter 17 describes the helper COM objects provided by D3DX. D3DX
provides a matrix stack object to assist in rendering frame hierarchies, a font
object to assist in the rendering of text, a sprite object to assist in the rendering
of 2D images, an object to assist in rendering to a surface or an environment
map and objects for the rendering of special e®ects.
Chapter 19 describes the mesh objects provided by D3DX. The mesh objects
provided by D3DX encompass rendering of indexed triangle lists as well as
progressive meshes, mesh simpli¯cation and skinned meshes.
Chapter 21 describes the X ¯le format with the ¯le extension .x. The X ¯le
format provides for extensible hierarchical storage of data objects with object
instancing.6 CHAPTER 1. INTRODUCTION
Part V covers application level considerations. This part of the book de-
scribes issues that are important to applications but aren't strictly part of the
graphics pipeline. Debugging strategies for applications are presented. Almost
all Direct3D applications will be concerned with performance; API related per-
formance issues are discussed here. Finally, installation and deployment issues
for Direct3D applications are discussed.
Chapter 22 describes debugging strategies for Direct3D applications. This
includes using the debug run-time for DirectX 9.0c, techniques for debugging
full-screen applications and remote debugging.
Chapter 23 covers application performance considerations. All real devices
have limitations that a®ect performance. A general consideration of how the
pipeline state a®ects performance is given.
Chapter 24 covers application installation and setup.
Appendix A provides a guided tour of the DirectX SDK materials.
【文件预览】:
D3D render pipeline
----01-Introduction.pdf(377KB)
----19-D3DX Mesh Objects.pdf(316KB)
----Direct3DGraphicsPipelineWizard.2006.36.zip(329KB)
----pipeline-8.1.png(434KB)
----06-Vertex Transformations.pdf(473KB)
----03-Direct3D Devices.pdf(317KB)
----07-Viewing and Projection.pdf(218KB)
----09-Vertex Shaders.pdf(416KB)
----14-Frame Buffer.pdf(379KB)
----05-Modeling.pdf(326KB)
----15-D3DX Utility Library.pdf(230KB)
----04-2D Applications.pdf(239KB)
----index.htm(2KB)
----pipeline-9_0.png(903KB)
----24-Installation and Setup.pdf(112KB)
----16-D3DX Concrete Types.pdf(219KB)
----08-Lighting and Materials.pdf(357KB)
----17-D3DX Helper Objects.pdf(209KB)
----10-Rasterization and Shading.pdf(237KB)
----13-Pixel Shaders.pdf(231KB)
----22-Debugging.pdf(299KB)
----02-Direct3D.pdf(291KB)
----11-Basic Texturing.pdf(464KB)
----21-X Files.pdf(368KB)
网友评论
- 对初学D3D有帮助
- 对理解D3D有些作用
- 很重要技术书籍,开发游戏引擎的程序员必读