1st Edition
Introduction to Computer Graphics A Practical Learning Approach
What Computer Graphics Is
Applications Domains and Areas of Computer Graphics
Color and Images
Algorithms to Create a Raster Image from a 3D Scene
The First Steps
The Application Programming Interface
The WebGL Rasterization-Based Pipeline
Programming the Rendering Pipeline: Your First Rendering
WebGL Supporting Libraries
Meet NVMC
How a 3D Model Is Represented
Polygonal meshes
Implicit surfaces
Parametric surfaces
Voxels
Constructive solid geometry (CSG)
Subdivision surfaces
Data Structures for Polygon Meshes
The First Code: Making and Showing Simple Primitives
Self-exercises
Geometric Transformations
Geometric entities
Basic geometric transformations
Affine transformations
Frames
Rotations in Three Dimensions
Viewing transformations
Transformations in the Pipeline
Upgrade your client: Our First 3D Client
The Code
Handling the Transformations Matrices with a Matrix Stack
Manipulating the View and the Objects
Upgrade your client: Create the Observer Camera
Self-exercises
Turning Vertices into Pixels
Rasterization
Hidden Surface Removal
From Fragments to Pixels
Clipping
Culling
Lighting and Shading
Light and Matter Interaction
Radiometry in a Nutshell
Reectance and BRDF
The Rendering Equation
Evaluate the Rendering Equation
Computing the Surface Normal
Light Source Types
Phong Illumination Model
Shading Techniques
Advanced Reection Models
Self-Exercises
Texturing
Introduction: Do We Need Texture Mapping?
Basic Concepts
Texture Filtering: from per-Fragment Texture Coordinates to per-Fragment Color
Perspective Correct Interpolation: From per-Vertex to per-Fragment Texture Coordinates
Upgrade Your Client: Add Textures to the Terrain, Street and Building
Upgrade Your Client: Add the Rear Mirror
Texture Coordinates Generation and Environment Mapping
Texture Mapping for Adding Detail to Geometry
Notes on Mesh Parametrization
3D Textures and Their Use
Self-Exercises
Shadows
The Shadow Phenomenon
Shadow Mapping
Upgrade Your Client: Add Shadows
Shadow Mapping Artifacts and Limitations
Shadow Volumes
Self-Exercises
Image-Based Impostors
Sprites
Billboarding
Ray-Traced Impostors
Self-Exercises
Advanced Techniques
Image Processing
Ambient Occlusion
Deferred Shading
Particle Systems
Self-Exercises
Global Illumination
Ray Tracing
Multi-Pass Algorithms
Appendix A: NVMC Class
Appendix B: Properties of Vector Products
Bibliography
Index
Biography
Fabio Ganovelli, Massimiliano Corsini, Sumanta Pattanaik, Marco Di Benedetto
"The book is presented in a very accessible fashion. The authors give many examples illustrating the notations and problems considered, making the learning easier. Every chapter ends with exercises, both theoretical and programming. The book is suitable for upper-level computer science/math/physics undergraduate students with at least basic programming skills and at least elementary understanding of linear algebra and calculus."
—Krzystof Gdawiec, in Zentralblatt MATH 1308, 2015






