1st Edition

An Integrated Introduction to Computer Graphics and Geometric Modeling

By Ronald Goldman Copyright 2009
    592 Pages 47 Color & 399 B/W Illustrations
    by CRC Press

    590 Pages 47 Color & 399 B/W Illustrations
    by CRC Press

    Taking a novel, more appealing approach than current texts, An Integrated Introduction to Computer Graphics and Geometric Modeling focuses on graphics, modeling, and mathematical methods, including ray tracing, polygon shading, radiosity, fractals, freeform curves and surfaces, vector methods, and transformation techniques. The author begins with fractals, rather than the typical line-drawing algorithms found in many standard texts. He also brings the turtle back from obscurity to introduce several major concepts in computer graphics.

    Supplying the mathematical foundations, the book covers linear algebra topics, such as vector geometry and algebra, affine and projective spaces, affine maps, projective transformations, matrices, and quaternions. The main graphics areas explored include reflection and refraction, recursive ray tracing, radiosity, illumination models, polygon shading, and hidden surface procedures. The book also discusses geometric modeling, including planes, polygons, spheres, quadrics, algebraic and parametric curves and surfaces, constructive solid geometry, boundary files, octrees, interpolation, approximation, Bezier and B-spline methods, fractal algorithms, and subdivision techniques.

    Making the material accessible and relevant for years to come, the text avoids descriptions of current graphics hardware and special programming languages. Instead, it presents graphics algorithms based on well-established physical models of light and cogent mathematical methods.

    Two-Dimensional Computer Graphics: From Common Curves to Intricate Fractals

    Turtle Graphics

    Turtle Graphics

    Turtle Commands

    Turtle Programs

    Fractals from Recursive Turtle Programs

    Fractals

    Looping Lemmas

    Fractal Curves and Recursive Turtle Programs

    Programming Projects

    Some Strange Properties of Fractal Curves

    Fractal Strangeness

    Dimension

    Differentiability

    Attraction

    Affine Transformations

    Transformations

    Conformal Transformations

    Algebra of Affine Transformations

    Geometry of Affine Transformations

    Affine Coordinates and Affine Matrices

    Conformal Transformations: Revisited

    General Affine Transformations

    Affine Geometry: A Connect-the-Dots Approach to Two-Dimensional Computer Graphics

    Two Shortcomings of Turtle Graphics

    Affine Graphics

    Fractals from Iterated Function Systems

    Generating Fractals by Iterating Transformations

    Fractals as Fixed Points of Iterated Function Systems

    Fractals as Attractors

    Fractals with Condensation Sets

    Programming Projects

    Fixed-Point Theorem and Its Consequences

    Fixed Points and Iteration

    Trivial Fixed-Point Theorem

    Consequences of the Trivial Fixed-Point Theorem

    Programming Projects

    Recursive Turtle Programs and Conformal Iterated Function Systems

    Motivating Questions

    Effect of Changing the Turtle’s Initial State

    Equivalence Theorems

    Conversion Algorithms

    Bump Fractals

    Programming Projects

    Mathematical Methods for Three-Dimensional Computer Graphics

    Vector Geometry: A Coordinate-Free Approach

    Coordinate-Free Methods

    Vectors and Vector Spaces

    Points and Affine Spaces

    Vector Products

    Appendix A: The Nonassociativity of the Cross Product

    Appendix B: The Algebra of Points and Vectors

    Coordinate Algebra

    Rectangular Coordinates

    Addition, Subtraction, and Scalar Multiplication

    Vector Products

    Some Applications of Vector Geometry

    Introduction

    Trigonometric Laws

    Representations for Lines and Planes

    Metric Formulas

    Intersection Formulas for Lines and Planes

    Spherical Linear Interpolation

    Inside-Outside Tests

    Coordinate-Free Formulas for Affine and Projective Transformations

    Transformations for Three-Dimensional Computer Graphics

    Affine and Projective Transformations

    Rigid Motions

    Scaling

    Projections

    Matrix Representations for Affine and Projective Transformations

    Matrix Representations for Affine Transformations

    Linear Transformation Matrices and Translation Vectors

    Rigid Motions

    Scaling

    Projections

    Perspective

    Programming Projects

    Projective Space versus the Universal Space of Mass-Points

    Algebra and Geometry

    Projective Space: The Standard Model

    Mass-Points: The Universal Model

    Perspective and Pseudoperspective

    Quaternions: Multiplication in the Space of Mass-Points

    Vector Spaces and Division Algebras

    Complex Numbers

    Quaternions

    Three-Dimensional Computer Graphics: Realistic Rendering

    Color and Intensity

    Introduction

    RGB Color Model

    Ambient Light

    Diffuse Reflection

    Specular Reflection

    Total Intensity

    Recursive Ray Tracing

    Raster Graphics

    Recursive Ray Tracing

    Shadows

    Reflection

    Refraction

    Surfaces I: The General Theory

    Surface Representations

    Surface Normals

    Ray–Surface Intersections

    Mean and Gaussian Curvature

    Surfaces II: Simple Surfaces

    Simple Surfaces

    Intersection Strategies

    Planes and Polygons

    Natural Quadrics

    General Quadric Surfaces

    Tori

    Surfaces of Revolution

    Programming Projects

    Solid Modeling

    Solids

    Constructive Solid Geometry

    Boundary Representations

    Octrees

    Programming Projects

    Shading

    Polygonal Models

    Uniform Shading

    Gouraud Shading

    Phong Shading

    Programming Projects

    Hidden Surface Algorithms

    Hidden Surface Algorithms

    The Heedless Painter

    z-Buffer (Depth Buffer)

    Scan Line

    Ray Casting

    Depth Sort

    bsp-Tree

    Programming Projects

    Radiosity

    Radiosity

    Radiosity Equations

    Form Factors

    Radiosity Rendering Algorithm

    Solving the Radiosity Equations

    Programming Projects

    Geometric Modeling: Freedom Curves and Surfaces

    Bezier Curves and Surfaces

    Interpolation and Approximation

    de Casteljau Evaluation Algorithm

    Bernstein Representation

    Geometric Properties of Bezier Curves

    Differentiating the de Casteljau Algorithm

    Tensor Product Bezier Patches

    Bezier Subdivision

    Divide and Conquer

    de Casteljau Subdivision Algorithm

    Rendering and Intersection Algorithms

    Variation Diminishing Property of Bezier Curves

    Joining Bezier Curves Smoothly

    Programming Projects

    Blossoming

    Motivation

    Blossom

    Blossoming and the de Casteljau Algorithm

    Differentiation and the Homogeneous Blossom

    B-Spline Curves and Surfaces

    Motivation

    Blossoming and the Local de Boor Algorithm

    B-Spline Curves and the Global de Boor Algorithm

    Smoothness

    Labeling and Locality in the Global de Boor Algorithm

    Every Spline Is a B-Spline

    Geometric Properties of B-Spline Curves

    Tensor Product B-Spline Surfaces

    Nonuniform Rational B-Splines (NURBs)

    Knot Insertion Algorithms for B-Spline Curves and Surfaces

    Motivation

    Knot Insertion

    Local Knot Insertion Algorithms

    Global Knot Insertion Algorithms

    Programming Projects

    Subdivision Matrices and Iterated Function Systems

    Subdivision Algorithms and Fractal Procedures

    Subdivision Matrices

    Iterated Function Systems Built from Subdivision Matrices

    Fractals with Control Points

    Programming Projects

    Subdivision Surfaces

    Motivation

    Box Splines

    Quadrilateral Meshes

    Triangular Meshes

    Programming Projects

    Further Readings

    Index

    A Summary and Exercises appear at the end of each chapter.

    Biography

    Ron Goldman is a professor of computer science at Rice University, Houston, Texas. Dr. Goldman’s current research interests encompass the mathematical representation, manipulation, and analysis of shape using computers.

    … this book may be the first book on geometric modelling that also covers computer graphics. In addition, it may be the first book on computer graphics that integrates a thorough introduction to ‘freedom’ curves and surfaces and to the mathematical foundations for computer graphics. … the book is well suited for an undergraduate course. … The entire book is very well presented and obviously written by a distinguished and creative researcher and educator. It certainly is a textbook I would recommend. …
    Computer-Aided Design, 42, 2010

    … Many books concentrate on computer programming and soon become obsolete because of newly emerging developments in software languages and hardware. Thankfully, this text is different! The text is void of programming examples as these would have quickly rendered the book outdated, given the transitory nature of graphics languages. … The author has used his experiences of teaching and research to write a book that will, I am sure, become a valuable reference source for years to come. Each chapter has a number of exercises for further study and many chapters have programming projects which will require further work and implementation in a graphics language.
    International Statistical Review, 2010

    Dr. Goldman has dedicated the past 20 years of his career to teaching and research as a professor of computer science at the University of Waterloo and Rice University. The pedagogical style of this book has been refined during his many years of teaching this material. He is an excellent mentor of students and I am pleased that his reach will be extended through the publication of this book.
    —Thomas W. Sederberg, Brigham Young University