Home Page Icon
Home Page
Table of Contents for
Introduction to Computer Graphics: A Practical Learning Approach
Close
Introduction to Computer Graphics: A Practical Learning Approach
by Marco Di Benedetto, Sumanta Pattanaik, Massimiliano Corsini, Fabio Ganovelli
Introduction to Computer Graphics
Preliminaries
Dedication
Preface
Chapter 1: What Computer Graphics Is
1.1 Application Domains and Areas of Computer Graphics
1.1.1 Application Domains
1.1.2 Areas of Computer Graphics
1.2 Color and Images
1.2.1 The Human Visual System (HVS)
1.2.2 Color Space
1.2.2.1 CIE XYZ
1.2.2.2 Device-Dependent and Device-Independent Color Space
1.2.2.3 HSL and HSV
1.2.2.4 CIELab
1.2.3 Illuminant
1.2.4 Gamma
1.2.5 Image Representation
1.2.5.1 Vector Images
1.2.5.2 Raster Images
1.3 Algorithms to Create a Raster Image from a 3D Scene
1.3.1 Ray Tracing
1.3.2 Rasterization-Based Pipeline
1.3.3 Ray Tracing vs Rasterization-Based Pipeline
1.3.3.1 Ray Tracing Is Better
1.3.3.2 Rasterization Is Better
Figure 1.1
Figure 1.1
Figure 1.2
Figure 1.3
Figure 1.4
Figure 1.5
Figure 1.6
Figure 1.7
Figure 1.8
Figure 1.9
Figure 1.10
Figure 1.11
Figure 1.12
Listings 1.1
Listings 1.1
Listings 1.2
Chapter 2: The First Steps
2.1 The Application Programming Interface
2.2 The WebGL Rasterization-Based Pipeline
2.3 Programming the Rendering Pipeline: Your First Rendering
2.4 WebGL Supporting Libraries
2.5 Meet NVMC
2.5.1 The Framework
2.5.2 The Class NVMC to Represent the World
2.5.3 A Very Basic Client
2.5.4 Code Organization
Figure 2.1
Figure 2.1
Figure 2.2
Figure 2.3
Figure 2.4
Figure 2.5
Figure 2.6
Figure 2.7
Listings 2.1
Listings 2.1
Listings 2.2
Listings 2.3
Listings 2.4
Listings 2.5
Listings 2.6
Listings 2.7
Listings 2.8
Listings 2.9
Listings 2.10
Listings 2.11
Listings 2.12
Listings 2.13
Listings 2.14
Listings 2.15
Chapter 3: How a 3D Model Is Represented
3.1 Introduction
3.1.1 Digitalization of the Real World
3.1.2 Modeling
3.1.3 Procedural Modeling
3.1.4 Simulation
3.2 Polygon Meshes
3.2.1 Fans and Strips
3.2.2 Manifoldness
3.2.3 Orientation
3.2.4 Advantages and Disadvantages
3.3 Implicit Surfaces
3.3.1 Advantages and Disadvantages
3.4 Parametric Surfaces
3.4.1 Parametric Curve
3.4.2 Bézier Curves
3.4.2.1 Cubic Bézier Curve
3.4.3 B-Spline Curves
3.4.4 From Parametric Curves to Parametric Surfaces
3.4.5 Bézier Patches
3.4.6 NURBS Surfaces
3.4.7 Advantages and Disadvantages
3.5 Voxels
3.5.1 Rendering Voxels
3.5.2 Advantages and Disadvantages
3.6 Constructive Solid Geometry (CSG)
3.6.1 Advantages and Disadvantages
3.7 Subdivision Surfaces
3.7.1 Chaikin’s Algorithm
3.7.2 The 4-Point Algorithm
3.7.3 Subdivision Methods for Surfaces
3.7.4 Classification
3.7.4.1 Triangular or Quadrilateral
3.7.4.2 Primal or Dual
3.7.4.3 Approximation vs Interpolation
3.7.4.4 Smoothness
3.7.5 Subdivision Schemes
3.7.5.1 Loop Scheme
3.7.5.2 Modified Butterfly Scheme
3.7.6 Advantages and Disadvantages
3.8 Data Structures for Polygon Meshes
3.8.1 Indexed Data Structure
3.8.2 Winged-Edge
3.8.3 Half-Edge
3.9 The First Code: Making and Showing Simple Primitives
3.9.1 The Cube
3.9.2 Cone
3.9.3 Cylinder
3.10 Self-Exercises
3.10.1 General
Figure 3.1
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
Listings 3.1
Listings 3.1
Listings 3.2
Listings 3.3
Chapter 4: Geometric Transformations
4.1 Geometric Entities
4.2 Basic Geometric Transformations
4.2.1 Translation
4.2.2 Scaling
4.2.3 Rotation
4.2.4 Expressing Transformation with Matrix Notation
4.3 Affine Transformations
4.3.1 Composition of Geometric Transformations
4.3.2 Rotation and Scaling about a Generic Point
4.3.3 Shearing
4.3.4 Inverse Transformations and Commutative Properties
4.4 Frames
4.4.1 General Frames and Affine Transformations
4.4.2 Hierarchies of Frames
4.4.3 The Third Dimension
4.5 Rotations in Three Dimensions
4.5.1 Axis–Angle Rotation
4.5.1.1 Building Orthogonal 3D Frames from a Single Axis
4.5.1.2 Axis–Angle Rotations without Building the 3DFrame
4.5.2 Euler Angles Rotations
4.5.3 Rotations with Quaternions
4.6 Viewing Transformations
4.6.1 Placing the View Reference Frame
4.6.2 Projections
4.6.2.1 Perspective Projection
4.6.2.2 Perspective Division
4.6.2.3 Orthographic Projection
4.6.3 Viewing Volume
4.6.3.1 Canonical Viewing Volume
4.6.4 From Normalized Device Coordinates to Window Coordinates
4.6.4.1 Preserving Aspect Ratio
4.6.4.2 Depth Value
4.6.5 Summing Up
4.7 Transformations in the Pipeline
4.8 Upgrade Your Client: Our First 3D Client
4.8.1 Assembling the Tree and the Car
4.8.2 Positioning the Trees and the Cars
4.8.3 Viewing the Scene
4.9 The Code
4.10 Handling the Transformations Matrices with a Matrix Stack
4.10.1 Upgrade Your Client: Add the View from above and behind
4.11 Manipulating the View and the Objects
4.11.1 Controlling the View with Keyboard and Mouse
4.11.2 Upgrade Your Client: Add the Photographer View
4.11.3 Manipulating the Scene with Keyboard and Mouse: the Virtual Trackball
4.12 Upgrade Your Client: Create the Observer Camera
4.13 Self-Exercises
4.13.1 General
4.13.2 Client Related
Figure 4.1
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
Listings 4.1
Listings 4.1
Listings 4.2
Listings 4.3
Listings 4.4
Listings 4.5
Listings 4.6
Chapter 5: Turning Vertices into Pixels
5.1 Rasterization
5.1.1 Lines
5.1.2 Polygons (Triangles)
5.1.2.1 General Polygons
5.1.2.2 Triangles
5.1.3 Attribute Interpolation: Barycentric Coordinates
5.1.4 Concluding Remarks
5.2 Hidden Surface Removal
5.2.1 Depth Sort
5.2.2 Scanline
5.2.3 z-Buffer
5.2.4 z-Buffer Precision and z-Fighting
5.3 From Fragments to Pixels
5.3.1 Discard Tests
5.3.2 Blending
5.3.2.1 Blending for Transparent Surfaces
5.3.3 Aliasing and Antialiasing
5.3.4 Upgrade Your Client: View from Driver Perspective
5.4 Clipping
5.4.1 Clipping Segments
5.4.2 Clipping Polygons
5.5 Culling
5.5.1 Back-Face Culling
5.5.2 Frustum Culling
5.5.3 Occlusion Culling
Figure 5.1
Figure 5.1
Figure 5.2
Figure 5.3
Figure 5.4
Figure 5.5
Figure 5.6
Figure 5.7
Figure 5.8
Figure 5.9
Figure 5.10
Figure 5.11
Figure 5.12
Figure 5.13
Figure 5.14
Figure 5.15
Figure 5.16
Figure 5.17
Figure 5.18
Figure 5.19
Figure 5.20
Figure 5.21
Figure 5.22
Figure 5.23
Figure 5.24
Listings 5.1
Listings 5.1
Listings 5.2
Listings 5.3
Listings 5.4
Listings 5.5
Chapter 6: Lighting and Shading
6.1 Light and Matter Interaction
6.1.1 Ray Optics Basics
6.1.1.1 Diffuse Reflection
6.1.1.2 Specular Reflection
6.1.1.3 Refraction
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.6.1 Crease Angle
6.6.2 Transforming the Surface Normal
6.7 Light Source Types
6.7.1 Directional Lights
6.7.2 Upgrade Your Client: Add the Sun
6.7.2.1 Adding the Surface Normal
6.7.2.2 Loading and Shading a 3D Model
6.7.3 Point Lights
6.7.4 Upgrade Your Client: Add the Street Lamps
6.7.5 Spotlights
6.7.6 Area Lights
6.7.7 Upgrade Your Client: Add the Car’s Headlights and Lights in the Tunnel
6.8 Phong Illumination Model
6.8.1 Overview and Motivation
6.8.2 Diffuse Component
6.8.3 Specular Component
6.8.4 Ambient Component
6.8.5 The Complete Model
6.9 Shading Techniques
6.9.1 Flat and Gouraud Shading
6.9.2 Phong Shading
6.9.3 Upgrade Your Client: Use Phong Lighting
6.10 Advanced Reflection Models
6.10.1 Cook-Torrance Model
6.10.2 Oren-Nayar Model
6.10.3 Minnaert Model
6.11 Self-Exercises
6.11.1 General
6.11.2 Client Related
Figure 6.1
Figure 6.1
Figure 6.2
Figure 6.3
Figure 6.4
Figure 6.5
Figure 6.6
Figure 6.7
Figure 6.8
Figure 6.9
Figure 6.10
Figure 6.11
Figure 6.12
Figure 6.13
Figure 6.14
Figure 6.15
Figure 6.16
Figure 6.17
Figure 6.18
Figure 6.19
Figure 6.20
Figure 6.21
Figure 6.22
Figure 6.23
Figure 6.24
Listings 6.1
Listings 6.1
Listings 6.2
Listings 6.3
Listings 6.4
Listings 6.5
Listings 6.6
Listings 6.7
Listings 6.8
Listings 6.9
Listings 6.10
Listings 6.11
Listings 6.12
Listings 6.13
Chapter 7: Texturing
7.1 Introduction: Do We Need Texture Mapping?
7.2 Basic Concepts
7.2.1 Texturing in the Pipeline
7.3 Texture Filtering: from per-Fragment Texture Coordinates to per-Fragment Color
7.3.1 Magnification
7.3.2 Minification with Mipmapping
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.5.1 Accessing Textures from the Shader Program
7.6 Upgrade Your Client: Add the Rear Mirror
7.6.1 Rendering to Texture (RTT)
7.7 Texture Coordinates Generation and Environment Mapping
7.7.1 Sphere Mapping
7.7.1.1 Computation of Texture Coordinates
7.7.1.2 Limitations
7.7.2 Cube Mapping
7.7.3 Upgrade Your Client: Add a Skybox for the Horizon
7.7.4 Upgrade Your Client: Add Reflections to the Car
7.7.4.1 Computing the Cubemap on-the-fly for More Accurate Reflections
7.7.5 Projective Texture Mapping
7.8 Texture Mapping for Adding Detail to Geometry
7.8.1 Displacement Mapping
7.8.2 Normal Mapping
7.8.2.1 Object Space Normal Mapping
7.8.3 Upgrade Your Client: Add the Asphalt
7.8.4 Tangent Space Normal Mapping
7.8.4.1 Computing the Tangent Frame for Triangulated Meshes
7.9 Notes on Mesh Parametrization
7.9.1 Seams
7.9.2 Quality of a Parametrization
7.10 3D Textures and Their Use
7.11 Self-Exercises
7.11.1 General
7.11.2 Client
Figure 7.1
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
Listings 7.1
Listings 7.1
Listings 7.2
Listings 7.3
Listings 7.4
Listings 7.5
Listings 7.6
Listings 7.7
Listings 7.8
Listings 7.9
Listings 7.10
Chapter 8: Shadows
8.1 The Shadow Phenomenon
8.2 Shadow Mapping
8.2.1 Modeling Light Sources
8.2.1.1 Directional Light
8.2.1.2 Point Light
8.2.1.3 Spotlights
8.3 Upgrade Your Client: Add Shadows
8.3.1 Encoding the Depth Value in an RGBA Texture
8.4 Shadow Mapping Artifacts and Limitations
8.4.1 Limited Numerical Precision: Surface Acne
8.4.1.1 Avoid Acne in Closed Objects
8.4.2 Limited Shadow Map Resolution: Aliasing
8.4.2.1 Percentage Closer Filtering (PCF)
8.5 Shadow Volumes
8.5.1 Constructing the Shadow Volumes
8.5.2 The Algorithm
8.6 Self-Exercises
8.6.1 General
8.6.2 Client Related
Figure 8.1
Figure 8.1
Figure 8.2
Figure 8.3
Figure 8.4
Figure 8.5
Figure 8.6
Figure 8.7
Figure 8.8
Figure 8.9
Figure 8.10
Listings 8.1
Listings 8.1
Listings 8.2
Listings 8.3
Listings 8.4
Chapter 9: Image-Based Impostors
9.1 Sprites
9.2 Billboarding
9.2.1 Static Billboards
9.2.2 Screen-Aligned Billboards
9.2.3 Upgrade Your Client: Add Fixed-Screen Gadgets
9.2.4 Upgrade Your Client: Adding Lens Flare Effects
9.2.4.1 Occlusion Query
9.2.5 Axis-Aligned Billboards
9.2.5.1 Upgrade Your Client: Better Trees
9.2.6 On-the-fly Billboarding
9.2.7 Spherical Billboards
9.2.8 Billboard Cloud
9.2.8.1 Upgrade Your Client: Even Better Trees
9.3 Ray-Traced Impostors
9.4 Self-Exercises
9.4.1 General
9.4.2 Client Related
Figure 9.1
Figure 9.1
Figure 9.2
Figure 9.3
Figure 9.4
Figure 9.5
Figure 9.6
Figure 9.7
Figure 9.8
Figure 9.9
Figure 9.10
Figure 9.11
Figure 9.12
Listings 9.1
Listings 9.1
Listings 9.2
Listings 9.3
Listings 9.4
Listings 9.5
Listings 9.6
Chapter 10: Advanced Techniques
10.1 Image Processing
10.1.1 Blurring
10.1.2 Upgrade Your Client: A Better Photographer with Depth of Field
10.1.2.1 Fullscreen Quad
10.1.3 Edge Detection
10.1.4 Upgrade Your Client: Toon Shading
10.1.5 Upgrade Your Client: A Better Photographer with Panning
10.1.5.1 The Velocity Buffer
10.1.6 Sharpen
10.2 Ambient Occlusion
10.2.1 Screen-Space Ambient Occlusion (SSAO)
10.3 Deferred Shading
10.4 Particle Systems
10.4.1 Animating a Particle System
10.4.2 Rendering a Particle System
10.5 Self-Exercises
10.5.1 General
10.5.2 Client Related
Figure 10.1
Figure 10.1
Figure 10.2
Figure 10.3
Figure 10.4
Figure 10.5
Figure 10.6
Figure 10.7
Figure 10.8
Figure 10.9
Figure 10.10
Figure 10.11
Figure 10.12
Figure 10.13
Figure 10.14
Figure 10.15
Figure 10.16
Figure 10.17
Listings 10.1
Listings 10.1
Listings 10.2
Listings 10.3
Listings 10.4
Listings 10.5
Listings 10.6
Listings 10.7
Listings 10.8
Chapter 11: Global Illumination
11.1 Ray Tracing
11.1.1 Ray-Algebraic Surface Intersection
11.1.1.1 Ray-Plane Intersection
11.1.1.2 Ray-Sphere Intersection
11.1.2 Ray-Parametric Surface Intersection
11.1.3 Ray-Scene Intersection
11.1.3.1 Ray-AABB Intersection
11.1.3.2 USS-Based Acceleration Scheme
11.1.3.3 USS Grid Traversal
11.1.3.4 BVH-Based Acceleration Scheme
11.1.4 Ray Tracing for Rendering
11.1.5 Classical Ray Tracing
11.1.6 Path Tracing
11.2 Multi-Pass Algorithms
11.2.1 Photon Tracing
11.2.2 Radiosity
11.2.3 Concept of Form Factor
11.2.4 Flux Transport Equation and Radiosity Transport Equation
11.2.4.1 Computation of Form Factor
11.2.5 Solution of Radiosity System
11.2.5.1 Rendering from Radiosity Solution
Figure 11.1
Figure 11.1
Figure 11.2
Figure 11.3
Figure 11.4
Figure 11.5
Figure 11.6
Listings 11.1
Listings 11.1
Listings 11.2
Listings 11.3
Listings 11.4
Listings 11.5
Listings 11.6
Listings 11.7
Listings 11.8
Listings 11.9
Listings 11.10
Listings 11.11
Listings 11.12
Listings 11.13
Listings 11.14
Listings 11.15
Listings 11.16
Listings 11.17
Listings 11.18
Appendix A: NVMC Class
A.1 Elements of the Scene
A.2 Players
Appendix B: Properties of Vector Products
B.1 Dot Product
B.2 Vector Product
Figure B.1
Figure B.1
Figure B.2
Bibliography
Search in book...
Toggle Font Controls
Playlists
Add To
Create new playlist
Name your new playlist
Playlist description (optional)
Cancel
Create playlist
Sign In
Email address
Password
Forgot Password?
Create account
Login
or
Continue with Facebook
Continue with Google
Sign Up
Full Name
Email address
Confirm Email Address
Password
Login
Create account
or
Continue with Facebook
Continue with Google
Next
Next Chapter
Preliminaries
Add Highlight
No Comment
..................Content has been hidden....................
You can't read the all page of ebook, please click
here
login for view all page.
Day Mode
Cloud Mode
Night Mode
Reset