Book description
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 www.envymycarbook.com
- 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.
Table of contents
- Preliminaries
- Dedication
- Preface
- Chapter 1: What Computer Graphics Is
- Chapter 2: The First Steps
-
Chapter 3: How a 3D Model Is Represented
- 3.1 Introduction
- 3.2 Polygon Meshes
- 3.3 Implicit Surfaces
- 3.4 Parametric Surfaces
- 3.5 Voxels
- 3.6 Constructive Solid Geometry (CSG)
- 3.7 Subdivision Surfaces
- 3.8 Data Structures for Polygon Meshes
- 3.9 The First Code: Making and Showing Simple Primitives
- 3.10 Self-Exercises
-
- Figure 3.1
- Figure 3.2
- Figure 3.3
- Figure 3.4
- Figure 3.5
- Figure 3.6
- Figure 3.7
- Figure 3.8
- Figure 3.9
- Figure 3.10
- Figure 3.11
- Figure 3.12
- Figure 3.13
- Figure 3.14
- Figure 3.15
- Figure 3.16
- Figure 3.17
- Figure 3.18
- Figure 3.19
- Figure 3.20
- Figure 3.21
- Figure 3.22
- Figure 3.23
- Figure 3.24
- Figure 3.25
- Figure 3.26
- Figure 3.27
- Figure 3.28
-
Chapter 4: Geometric Transformations
- 4.1 Geometric Entities
- 4.2 Basic Geometric Transformations
- 4.3 Affine Transformations
- 4.4 Frames
- 4.5 Rotations in Three Dimensions
- 4.6 Viewing Transformations
- 4.7 Transformations in the Pipeline
- 4.8 Upgrade Your Client: Our First 3D Client
- 4.9 The Code
- 4.10 Handling the Transformations Matrices with a Matrix Stack
- 4.11 Manipulating the View and the Objects
- 4.12 Upgrade Your Client: Create the Observer Camera
- 4.13 Self-Exercises
-
- Figure 4.1
- Figure 4.2
- Figure 4.3
- Figure 4.4
- Figure 4.5
- Figure 4.6
- Figure 4.7
- Figure 4.8
- Figure 4.9
- Figure 4.10
- Figure 4.11
- Figure 4.12
- Figure 4.13
- Figure 4.14
- Figure 4.15
- Figure 4.16
- Figure 4.17
- Figure 4.18
- Figure 4.19
- Figure 4.20
- Figure 4.21
- Figure 4.22
- Figure 4.23
- Figure 4.24
- Figure 4.25
- Figure 4.26
- Figure 4.27
- Figure 4.28
- Figure 4.29
- Figure 4.30
- Figure 4.31
- Figure 4.32
- Figure 4.33
- Chapter 5: Turning Vertices into Pixels
-
Chapter 6: Lighting and Shading
- 6.1 Light and Matter Interaction
- 6.2 Radiometry in a Nutshell
- 6.3 Reflectance and BRDF
- 6.4 The Rendering Equation
- 6.5 Evaluate the Rendering Equation
- 6.6 Computing the Surface Normal
- 6.7 Light Source Types
- 6.8 Phong Illumination Model
- 6.9 Shading Techniques
- 6.10 Advanced Reflection Models
- 6.11 Self-Exercises
-
Chapter 7: Texturing
- 7.1 Introduction: Do We Need Texture Mapping?
- 7.2 Basic Concepts
- 7.3 Texture Filtering: from per-Fragment Texture Coordinates to per-Fragment Color
- 7.4 Perspective Correct Interpolation: From per-Vertex to per-Fragment Texture Coordinates
- 7.5 Upgrade Your Client: Add Textures to the Terrain, Street and Building
- 7.6 Upgrade Your Client: Add the Rear Mirror
- 7.7 Texture Coordinates Generation and Environment Mapping
- 7.8 Texture Mapping for Adding Detail to Geometry
- 7.9 Notes on Mesh Parametrization
- 7.10 3D Textures and Their Use
- 7.11 Self-Exercises
-
- Figure 7.1
- Figure 7.2
- Figure 7.3
- Figure 7.4
- Figure 7.5
- Figure 7.6
- Figure 7.7
- Figure 7.8
- Figure 7.9
- Figure 7.10
- Figure 7.11
- Figure 7.12
- Figure 7.13
- Figure 7.14
- Figure 7.15
- Figure 7.16
- Figure 7.17
- Figure 7.18
- Figure 7.19
- Figure 7.20
- Figure 7.21
- Figure 7.22
- Figure 7.23
- Figure 7.24
- Figure 7.25
- Figure 7.26
- Figure 7.27
- Figure 7.28
- Figure 7.29
- Chapter 8: Shadows
-
Chapter 9: Image-Based Impostors
- 9.1 Sprites
- 9.2 Billboarding
- 9.3 Ray-Traced Impostors
- 9.4 Self-Exercises
- Chapter 10: Advanced Techniques
- Chapter 11: Global Illumination
- Appendix A: NVMC Class
- Appendix B: Properties of Vector Products
- Bibliography
Product information
- Title: Introduction to Computer Graphics
- Author(s):
- Release date: October 2014
- Publisher(s): Chapman and Hall/CRC
- ISBN: 9781498759632
You might also like
book
Computer Graphics Through OpenGL, 2nd Edition
From geometric primitives to animation to 3D modeling to lighting, shading, and texturing, Computer Graphics Through …
book
Mathematical Structures for Computer Graphics
A comprehensive exploration of the mathematics behind the modeling and rendering of computer graphics scenes Written …
book
Mathematics for Game Programming and Computer Graphics
A comprehensive guide to learning fundamental 3D mathematical principles used in games and computer graphics by …
book
Computer Graphics
Complete Coverage of the Current Practice of Computer GraphicsComputer Graphics: From Pixels to Programmable Graphics Hardware …