Basic Principles
Introduction
A note on mathematics for 3D computer graphics
Getting up to speed and following up
Assumed knowledge
Computer graphics and computer games
The full spectrum
Basic Theory and Mathematical Results
Coordinate systems
Vectors
Homogeneous coordinates
The line in vector form
The plane
Intersection of a line and a plane
Closest distance of a point from a line
Closest distance of approach between two lines
Reflection in a plane
Refraction at a plane
Intersection of a line with primitive shapes
Transformations
Parametric curves
Interpolation
Bézier curves
Splines
Parametric surfaces
Angular interpolation (quaternions)
Data Structures for 3D Graphics
Integer coordinates
Vertices and polygons
Algorithms for editing arrays of structures
Making an edge list from a list of polygonal faces
Finding adjacent polygons
Finding polygons adjacent to edges
Basic Visualization
The rendering pipeline
Hidden surface drawing and rasterization
Anti-aliasing
Lighting and shading
Materials and shaders
Image and texture mapping
Perlin noise
Pseudo shadows
Line drawing
Tricks and tips
Realistic Visualization
Radiometric lighting and shading
Ray tracing
Ray tracing optimization
Multi-threading and parallel processing
Computer Animation
Keyframes (tweening)
Animating rigid motion
Character animation
Inverse kinematics
Physics
Animating cloth and hair
Particle modeling
Practical 3D Graphics
Real-Time 3D: OpenGL
The basics
Native programming
The GL shading language
The P-buffer and framebuffer objects
Rendering a particle system using OpenGL
Summing up
Mobile 3D: OpenGLES
OpenGLES
3D on iOS
3D on Android
Summing up
The Complete Package: OpenFX
Using OpenFX
The OpenFX files and folders structure
Coordinate system and units
User interface implementation
The Animation module
The Designer module
The Renderer module
Adding to the software
Continuing to dissect OpenFX
Practical Algorithms for Modeling and Procedural Textures
Modeling with Polygonal Datasets
Triangulating polygons
Triangulating polygons with holes
Subdividing polygonal facets
Lofting
Surfaces of revolution
Beveling
Orienting surface normals
Delaunay triangulation
Boolean modeling
Metaball modeling and marching cubes
Texture coordinate generation
Building polygonal primitives
Algorithms for Procedural Textures
A standard interface
CPU textures
GPU textures
Fur and short hair
Bibliography
Index
Biography
R. Stuart Ferguson
"A valuable book to accompany any course that mixes the theory and practice of 3D graphics. The book’s web site has many useful programs and code samples."
—Karen Rafferty, Queen’s University, Belfast"The topics covered by this book are backed by the OpenFX modeling and animation software. This is a big plus in that it provides a practical perspective and encourages experimentation. … [This] will offer students a more interesting and hands-on learning experience, especially for those wishing to pursue a career in computer game development."
—Naganand Madhavapeddy, Game Developer






