Introduction to Computer Graphics: A Practical Learning Approach, 1st Edition (e-Book) book cover

Introduction to Computer Graphics

A Practical Learning Approach, 1st Edition

By Fabio Ganovelli, Massimiliano Corsini, Sumanta Pattanaik, Marco Di Benedetto

Chapman and Hall/CRC

422 pages | 204 B/W Illus.

Purchasing Options:$ = USD
Hardback: 9781439852798
pub: 2014-10-17
SAVE ~$19.39
eBook (VitalSource) : 9781498759632
pub: 2015-09-15
from $28.98

FREE Standard Shipping!


Teach Your Students How to Create a Graphics Application

Introduction to Computer Graphics: A Practical Learning Approach guides students in developing their own interactive graphics application. The authors show step by step how to implement computer graphics concepts and theory using the EnvyMyCar (NVMC) framework as a consistent example throughout the text. They use the WebGL graphics API to develop NVMC, a simple, interactive car racing game.

Each chapter focuses on a particular computer graphics aspect, such as 3D modeling and lighting. The authors help students understand how to handle 3D geometric transformations, texturing, complex lighting effects, and more. This practical approach leads students to draw the elements and effects needed to ultimately create a visually pleasing car racing game. The code is available at

  • Puts computer graphics theory into practice by developing an interactive video game
  • Enables students to experiment with the concepts in a practical setting
  • Uses WebGL for code examples
  • Requires knowledge of general programming and basic notions of HTML and JavaScript
  • Provides the software and other materials on the book’s website

Software development does not require installation of IDEs or libraries, only a text editor.


"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

Table of Contents

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


How a 3D Model Is Represented

Polygonal meshes

Implicit surfaces

Parametric surfaces


Constructive solid geometry (CSG)

Subdivision surfaces

Data Structures for Polygon Meshes

The First Code: Making and Showing Simple Primitives


Geometric Transformations

Geometric entities

Basic geometric transformations

Affine transformations


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


Turning Vertices into Pixels


Hidden Surface Removal

From Fragments to Pixels



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



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



The Shadow Phenomenon

Shadow Mapping

Upgrade Your Client: Add Shadows

Shadow Mapping Artifacts and Limitations

Shadow Volumes


Image-Based Impostors



Ray-Traced Impostors


Advanced Techniques

Image Processing

Ambient Occlusion

Deferred Shading

Particle Systems


Global Illumination

Ray Tracing

Multi-Pass Algorithms

Appendix A: NVMC Class

Appendix B: Properties of Vector Products



Subject Categories

BISAC Subject Codes/Headings:
COMPUTERS / Computer Graphics