2nd Edition

Practical Algorithms for 3D Computer Graphics

By Robin Stuart Ferguson Copyright 2014
    520 Pages 274 B/W Illustrations
    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 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.

    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