3D Math Primer For Graphics And Game Development

3D Math Primer For Graphics And Game Development

by Fletcher Dunn, Ian Parberry, Dr Ian Parberry
     
 

ISBN-10: 1556229119

ISBN-13: 9781556229114

Pub. Date: 06/21/2002

Publisher: Jones & Bartlett Learning

3D Math Primer for Graphics and Game Development covers fundamental 3D math concepts that are especially useful for computer game developers and programmers. The authors discuss the mathematical theory in detail and then provide the geometric interpretation necessary to make 3D math intuitive. Working C++ classes illustrate how to put the techniques into practice, and…  See more details below

Overview

3D Math Primer for Graphics and Game Development covers fundamental 3D math concepts that are especially useful for computer game developers and programmers. The authors discuss the mathematical theory in detail and then provide the geometric interpretation necessary to make 3D math intuitive. Working C++ classes illustrate how to put the techniques into practice, and exercises at the end of each chapter help reinforce the concepts.

This book explains basic concepts such as vectors, coordinate spaces, matrices, transformations, Euler angles, homogenous coordinates, geometric primitives, intersection tests, and triangle meshes. It discusses orientation in 3D, including thorough coverage of quaternions and a comparison of the advantages and disadvantages of different representation techniques. The text describes working C++ classes for mathematical and geometric entities and several different matrix classes, each tailored to specific geometric tasks. Also included are complete derivations for all the primitive transformation matrices.

Read More

Product Details

ISBN-13:
9781556229114
Publisher:
Jones & Bartlett Learning
Publication date:
06/21/2002
Edition description:
1E
Pages:
429
Product dimensions:
7.65(w) x 9.29(h) x 0.87(d)

Table of Contents

Acknowledgmentsxi
Chapter 1Introduction1
1.1What is 3D Math?1
1.2Why You Should Read This Book1
1.3What You Should Know Before Reading This Book3
1.4Overview3
Chapter 2The Cartesian Coordinate System5
2.11D Mathematics6
2.22D Cartesian Mathematics9
2.3From 2D to 3D14
2.4Exercises20
Chapter 3Multiple Coordinate Spaces23
3.1Why Multiple Coordinate Spaces?24
3.2Some Useful Coordinate Spaces25
3.3Nested Coordinate Spaces30
3.4Specifying Coordinate Spaces31
3.5Coordinate Space Transformations31
3.6Exercises34
Chapter 4Vectors35
4.1Vector--A Mathematical Definition36
4.2Vector--A Geometric Definition37
4.3Vectors vs. Points40
4.4Exercises42
Chapter 5Operations on Vectors45
5.1Linear Algebra vs. What We Need46
5.2Typeface Conventions46
5.3The Zero Vector47
5.4Negating a Vector48
5.5Vector Magnitude (Length)49
5.6Vector Multiplication by a Scalar51
5.7Normalized Vectors53
5.8Vector Addition and Subtraction54
5.9The Distance Formula57
5.10Vector Dot Product58
5.11Vector Cross Product62
5.12Linear Algebra Identities65
5.13Exercises67
Chapter 6A Simple 3D Vector Class69
6.1Class Interface69
6.2Class Vector3 Definition70
6.3Design Decisions73
Chapter 7Introduction to Matrices83
7.1Matrix--A Mathematical Definition83
7.2Matrix--A Geometric Interpretation91
7.3Exercises98
Chapter 8Matrices and Linear Transformations101
8.1Transforming an Object vs. Transforming the Coordinate Space102
8.2Rotation105
8.3Scale112
8.4Orthographic Projection115
8.5Reflection117
8.6Shearing118
8.7Combining Transformations119
8.8Classes of Transformations120
8.9Exercises124
Chapter 9More on Matrices125
9.1Determinant of a Matrix125
9.2Inverse of a Matrix130
9.3Orthogonal Matrices132
9.44x4 Homogenous Matrices135
9.5Exercises146
Chapter 10Orientation and Angular Displacement in 3D147
10.1What is Orientation?148
10.2Matrix Form149
10.3Euler Angles153
10.4Quaternions159
10.5Comparison of Methods179
10.6Converting between Representations180
10.7Exercises193
Chapter 11Transformations in C++195
11.1Overview196
11.2Class EulerAngles198
11.3Class Quaternion205
11.4Class RotationMatrix215
11.5Class Matrix4x3220
Chapter 12Geometric Primitives239
12.1Representation Techniques239
12.2Lines and Rays241
12.3Spheres and Circles246
12.4Bounding Boxes247
12.5Planes252
12.6Triangles257
12.7Polygons269
12.8Exercises275
Chapter 13Geometric Tests277
13.1Closest Point on 2D Implicit Line277
13.2Closest Point on Parametric Ray278
13.3Closest Point on Plane279
13.4Closest Point on Circle/Sphere280
13.5Closest Point in AABB280
13.6Intersection Tests281
13.7Intersection of Two Implicit Lines in 2D282
13.8Intersection of Two Rays in 3D283
13.9Intersection of Ray and Plane284
13.10Intersection of AABB and Plane285
13.11Intersection of Three Planes286
13.12Intersection of Ray and Circle/Sphere286
13.13Intersection of Two Circles/Spheres288
13.14Intersection of Sphere and AABB291
13.15Intersection of Sphere and Plane291
13.16Intersection of Ray and Triangle293
13.17Intersection of Ray and AABB297
13.18Intersection of Two AABBs297
13.19Other Tests299
13.20Class AABB3300
13.21Exercises316
Chapter 14Triangle Meshes319
14.1Representing Meshes320
14.2Additional Mesh Information328
14.3Topology and Consistency330
14.4Triangle Mesh Operations331
14.5A C++ Triangle Mesh Class336
Chapter 153D Math for Graphics345
15.1Graphics Pipeline Overview346
15.2Setting the View Parameters349
15.3Coordinate Spaces354
15.4Lighting and Fog358
15.5Buffers372
15.6Texture Mapping373
15.7Geometry Generation/Delivery374
15.8Transformation and Lighting377
15.9Backface Culling and Clipping380
15.10Rasterization383
Chapter 16Visibility Determination385
16.1Bounding Volume Tests386
16.2Space Partitioning Techniques390
16.3Grid Systems392
16.4Quadtrees and Octrees393
16.5BSP Trees398
16.6Occlusion Culling Techniques402
Chapter 17Afterword407
Appendix AMath Review409
Summation Notation409
Angles, Degrees, and Radians409
Trig Functions410
Trig Identities413
Appendix BReferences415
Index417

Read More

Customer Reviews

Average Review:

Write a Review

and post it to your social network

     

Most Helpful Customer Reviews

See all customer reviews >