3D Graphics for Game Programming

This document was uploaded by one of our users. The uploader already confirmed that they had the permission to publish it. If you are author/publisher or own the copyright of this documents, please report to us by using this DMCA report form.

Simply click on the Download Book button.

Yes, Book downloads on Ebookily are 100% Free.

Sometimes the book is free on Amazon As well, so go ahead and hit "Search on Amazon"

Designed for advanced undergraduate and beginning graduate courses, 3D Graphics for Game Programming presents must-know information for success in interactive graphics. Assuming a minimal prerequisite understanding of vectors and matrices, it also provides sufficient mathematical background for game developers to combine their previous experience in graphics API and shader programming with the background theory of computer graphics. Well organized and logically presented, this book takes its organizational format from GPU programming and presents a variety of algorithms for programmable stages along with the knowledge required to configure hard-wired stages. Easily accessible, it offers a wealth of elaborate 3D visual presentations and includes additional theoretical and technical details in separate shaded boxes and optional sections. Maintaining API neutrality throughout to maximize applicability, the book gives sample programs to assist in understanding. Full PowerPoint files and additional material, including video clips and lecture notes with all of the figures in the book, are available on the book’s website: http://media.korea.ac.kr/book

Author(s): JungHyun Han
Publisher: CRC Press
Year: 2011

Language: English
Pages: 330

Cover
Title Page
Copyright
Contents
Preface
1 Modeling in Game Production
1.1 Game Production Pipeline
1.2 Polygon Mesh
1.2.1 Polygon Mesh Creation
1.2.2 Polygon Mesh Representation
1.2.3 Surface Normal
1.3 Model Export and Import
1.4 Coordinate Systems
2 Vertex Processing
2.1 World Transform
2.1.1 Affine Transforms and Homogeneous Coordinates
2.1.2 World Matrix
2.1.3 Euler Transform
2.1.4 Transform of Surface Normals
2.2 View Transform
2.2.1 Camera Space
2.2.2 Space Change and View Matrix
2.3 Per-vertex Lighting
2.4 Projection Transform
2.4.1 View Frustum
2.4.2 Projection Matrix
2.4.3 Derivation of Projection Matrix
3 Rasterization
3.1 Clipping
3.2 Perspective Division
3.3 Back-face Culling
3.4 Coordinate Systems - Revisited
3.4.1 3ds Max to OpenGL - Axis Flipping
3.4.2 OpenGL to Direct3D - Reection
3.4.3 OpenGL to Direct3D - Vertex Reordering
3.5 Viewport Transform
3.6 Scan Conversion
3.7 Application: Object Picking
3.7.1 Computing World-space Ray
3.7.2 Ray-object Intersection Test
4 Fragment Processing and Output Merging
4.1 Texturing
4.1.1 Texture Coordinates
4.1.2 Surface Parameterization
4.1.3 Texture Coordinates to Texel Address
4.2 Output Merging
4.2.1 Z-buffering
4.2.2 Alpha Blending
4.3 Z-culling
4.3.1 Tile-based Culling
4.3.2 Application: Pre-Z Pass
5 Illumination and Shaders
5.1 Phong Lighting Model
5.1.1 Diffuse Reflection
5.1.2 Specular Reflection
5.1.3 Ambient Reflection
5.1.4 Emissive Light
5.2 Shaders and Shading Languages
5.2.1 Vertex and Fragment Shaders
5.2.2 High-Level Shading Language
5.3 Lighting in the Pipeline
5.3.1 Per-vertex Lighting in HLSL
5.3.2 Per-vertex Lighting vs. Per-fragment Lighting
5.3.3 Per-fragment Lighting in HLSL
5.4 Global Illumination
5.4.1 Ray Tracing
5.4.2 Radiosity
6 Parametric Curves and Surfaces
6.1 Parametric Curves
6.1.1 Bézier Curves
6.1.2 Hermite Curve and Catmull-Rom Spline
6.2 Application: Camera Path
6.3 Bézier Surfaces
6.3.1 Bilinear Patch
6.3.2 Biquadratic Bézier Patch
6.3.3 Bicubic Bézier Patch
6.3.4 Bézier Triangle
7 Shader Models
7.1 Shader Model 4 and Geometry Shader
7.2 Application: Dynamic Particle System
7.2.1 Physics-based Simulation of Particles
7.2.2 Fireworks Simulation
7.2.3 Fireworks Rendering
7.3 Shader Model 5 and Tessellation
7.4 Application: PN-triangles
7.4.1 Computing Control Points
7.4.2 Computing Control Normals
7.4.3 PN-triangle Tessellation
8 Image Texturing
8.1 Texture Addressing Mode
8.2 Texture Filtering
8.2.1 Magnification
8.2.2 Minification
8.3 Mipmapping
8.3.1 Mipmap Construction
8.3.2 Mipmap Filtering
8.3.3 Options for Mipmap Filtering
8.4 Anisotropic Filtering
9 Bump Mapping
9.1 Height Field
9.2 Normal Mapping
9.2.1 Normal Map
9.2.2 Algorithm for Normal Mapping
9.3 Tangent-space Normal Mapping
9.3.1 Algorithm for Tangent-space Normal Mapping
9.3.2 Tangent Space Computation
9.4 Authoring of Normal Map
9.5 Parallax Mapping
9.6 Displacement Mapping
10 Advanced Texturing
10.1 Environment Mapping
10.1.1 Cube Mapping
10.1.2 Cube Map Access
10.1.3 Dynamic Cube Mapping
10.2 Light Mapping
10.2.1 Di use Light Mapping
10.2.2 Radiosity Normal Mapping
10.3 Shadow Mapping
10.3.1 Algorithm for Shadow Mapping
10.3.2 Shader Codes for Shadow Mapping
10.3.3 Shadow Map Filtering
10.4 Ambient Occlusion
10.5 Deferred Shading
11 Character Animation
11.1 Keyframe Animation
11.2 Rotation
11.2.1 Interpolation of Euler Angles
11.2.2 Quaternion Representation
11.2.3 Rotation Using Quaternion
11.2.4 Interpolation of Quaternions
11.3 Hierarchical Modeling and Space Change
11.3.1 Hierarchical Model
11.3.2 Space Change between Bones
11.3.3 World Space to Bone Space
11.4 Forward Kinematics
11.5 Skinning and Keyframe Animation
11.5.1 Skinning
11.5.2 Skinning in Keyframe Animation
11.6 Inverse Kinematics
11.6.1 Analytic Solution
11.6.2 Cyclic Coordinate Descent
12 Physics-based Simulation
12.1 Penalty Method
12.2 Impulse Method
12.2.1 Impulse
12.2.2 Impulse-based Collision Resolution
12.3 Collision Detection
12.3.1 Bounding Volumes and Their Hierarchy
12.3.2 Triangle-triangle Intersection
References