2nd Edition

Practical Algorithms for 3D Computer Graphics

By R. Stuart Ferguson Copyright 2014
520 Pages 274 B/W Illustrations
by A K Peters/CRC Press

520 Pages
by A K Peters/CRC Press

520 Pages
by A K Peters/CRC Press

Practical Algorithms for 3D Computer Graphics, Second Edition covers the fundamental algorithms that are the core of all 3D computer graphics software packages. Using Core OpenGL and OpenGL ES, the book enables you to create a complete suite of programs for 3D computer animation, modeling, and image synthesis. Since the publication of the first edition, implementation aspects have changed... Read more

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