Drawing on an impressive roster of experts in the field, Fundamentals of Computer Graphics, Fourth Edition offers an ideal resource for computer course curricula as well as a user-friendly personal or professional reference.
Focusing on geometric intuition, the book gives the necessary information for understanding how images get onto the screen by using the complementary approaches of ray tracing and rasterization. It covers topics common to an introductory course, such as sampling theory, texture mapping, spatial data structure, and splines. It also includes a number of contributed chapters from authors known for their expertise and clear way of explaining concepts.
Highlights of the Fourth Edition Include:
Updated coverage of existing topics
Major updates and improvements to several chapters, including texture mapping, graphics hardware, signal processing, and data structures
A text now printed entirely in four-color to enhance illustrative figures of concepts
The fourth edition of Fundamentals of Computer Graphics continues to provide an outstanding and comprehensive introduction to basic computer graphic technology and theory. It retains an informal and intuitive style while improving precision, consistency, and completeness of material, allowing aspiring and experienced graphics programmers to better understand and apply foundational principles to the development of efficient code in creating film, game, or web designs.
Provides a thorough treatment of basic and advanced topics in current graphics algorithms
Explains core principles intuitively, with numerous examples and pseudo-code
Gives updated coverage of the graphics pipeline, signal processing, texture mapping, graphics hardware, reflection models, and curves and surfaces
Uses color images to give more illustrative power to concepts
Steve Marschner, Cornell University, Ithaca, New York, USA Peter Shirley, Purity LLC
Introduction Graphics Areas Major Applications Graphics APIs Graphics Pipeline Numerical Issues Efficiency Designing and Coding Graphics Programs Miscellaneous Math Sets and Mappings Solving Quadratic Equations Trigonometry Vectors Curves and Surfaces Linear Interpolation Triangles Raster Images Raster Devices Images, Pixels, and Geometry RGB Color Alpha Compositing Ray Tracing The Basic Ray-Tracing Algorithm Perspective Computing Viewing Rays Ray-Object Intersection Shading A Ray-Tracing Program Shadows Ideal Specular Reflection Historical Notes Linear Algebra Determinants Matrices Computing with Matrices and Determinants Eigenvalues and Matrix Diagonalization Transformation Matrices 2D Linear Transformations 3D Linear Transformations Translation and Affine Transformations Inverses of Transformation Matrices Coordinate Transformations Viewing Viewing Transformations Projective Transformations Perspective Projection Some Properties of the Perspective Transform Field-of-View The Graphics Pipeline Rasterization Operations Before and After Rasterization Simple Antialiasing Culling Primitives for Efficiency Signal Processing Digital Audio: Sampling in 1D Convolution Convolution Filters Signal Processing for Images Sampling Theory Surface Shading Diffuse Shading Phong Shading Artistic Shading Texture Mapping Looking Up Texture Values Texture Coordinate Functions Antialiasing Texture Lookups Applications of Texture Mapping Procedural 3D Textures Data Structures for Graphics Triangle Meshes Scene Graphs Spatial Data Structures BSP Trees for Visibility Tiling Multidimensional Arrays More Ray Tracing Transparency and Refraction Instancing Constructive Solid Geometry Distribution Ray Tracing Sampling Integration Continuous Probability Monte Carlo Integration Choosing Random Points Curves Curves Curve Properties Polynomial Pieces Putting Pieces Together Cubics Approximating Curves Summary Computer Animation Principles of Animation Keyframing Deformations Character Animation Physics-Based Animation Procedural Techniques Groups of Objects Using Graphics Hardware Hardware Overview What Is Graphics Hardware Heterogeneous Multiprocessing Graphics Hardware Programming: Buffers, State, and Shaders State Machine Basic OpenGL Application Layout Geometry A First Look at Shaders Vertex Buffer Objects Vertex Array Objects Transformation Matrices Shading with Per-Vertex Attributes Shading in the Fragment Processor Meshes and Instancing Texture Objects Object-Oriented Design for Graphics Hardware Programming Continued Learning Light Radiometry Transport Equation Photometry Color Colorimetry Color Spaces Chromatic Adaptation Color Appearance Visual Perception Vision Science Visual Sensitivity Spatial Vision Objects, Locations, and Events Picture Perception Tone Reproduction Classification Dynamic Range Color Image Formation Frequency-Based Operators Gradient-Domain Operators Spatial Operators Division Sigmoids Other Approaches Night Tonemapping Discussion Implicit Modeling Implicit Functions, Skeletal Primitives, and Summation Blending Rendering Space Partitioning More on Blending Constructive Solid Geometry Warping Precise Contact Modeling The Blob Tree Interactive Implicit Modeling Systems Global Illumination Particle Tracing for Lambertian Scenes Path Tracing Accurate Direct Lighting Reflection Models Real-World Materials Implementing Reflection Models Specular Reflection Models Smooth-Layered Model Rough-Layered Model Computer Graphics in Games Platforms Limited Resources Optimization Techniques Game Types The Game Production Process Visualization Background Data Types Human-Centered Design Process Visual Encoding Principles Interaction Principles Composite and Adjacent Views Data Reduction Examples