Practical Algorithms for 3D Computer Graphics: 2nd Edition (Paperback) book cover

Practical Algorithms for 3D Computer Graphics

2nd Edition

By R. Stuart Ferguson

A K Peters/CRC Press

508 pages | 274 B/W Illus.

Purchasing Options:$ = USD
Paperback: 9781466582521
pub: 2013-12-19
SAVE ~$18.19
Hardback: 9781138428041
pub: 2017-10-06
SAVE ~$41.00
eBook (VitalSource) : 9780429103384
pub: 2013-12-19
from $43.98

FREE Standard Shipping!


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 significantly, including advances in graphics technology that are enhancing immersive experiences with virtual reality. Reflecting these considerable developments, this second edition presents up-to-date algorithms for each stage in the creative process. It takes you from the construction of polygonal models of real and imaginary objects to rigid body animation and hierarchical character animation to the rendering pipeline for the synthesis of realistic images.

New to the Second Edition

  • New chapter on the modern approach to real-time 3D programming using OpenGL
  • New chapter that introduces 3D graphics for mobile devices
  • New chapter on OpenFX, a comprehensive open source 3D tools suite for modeling and animation
  • Discussions of new topics, such as particle modeling, marching cubes, and techniques for rendering hair and fur
  • More web-only content, including source code for the algorithms, video transformations, comprehensive examples, and documentation for OpenFX

The book is suitable for newcomers to graphics research and 3D computer games as well as more experienced software developers who wish to write plug-in modules for any 3D application program or shader code for a commercial games engine.


"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

Table of Contents

Basic Principles


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


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


Parametric curves


Bézier curves


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


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


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


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


Surfaces of revolution


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



Subject Categories

BISAC Subject Codes/Headings:
COMPUTERS / Computer Graphics
COMPUTERS / Programming / Games
MATHEMATICS / Arithmetic