0% found this document useful (0 votes)
159 views7 pages

Fundamentals of Computer Graphics: Third Edition

This document appears to be the table of contents for the third edition of the textbook "Fundamentals of Computer Graphics" by Peter Shirley and Steve Marschner. The table of contents provides an overview of the chapters and sections covered in the book, including introductions to computer graphics, raster images, ray tracing, linear algebra, transformations, viewing, the graphics pipeline, surface shading, texture mapping, data structures and more ray tracing techniques. It was published by A K Peters in Natick, Massachusetts.

Uploaded by

Aadit Shah
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
159 views7 pages

Fundamentals of Computer Graphics: Third Edition

This document appears to be the table of contents for the third edition of the textbook "Fundamentals of Computer Graphics" by Peter Shirley and Steve Marschner. The table of contents provides an overview of the chapters and sections covered in the book, including introductions to computer graphics, raster images, ray tracing, linear algebra, transformations, viewing, the graphics pipeline, surface shading, texture mapping, data structures and more ray tracing techniques. It was published by A K Peters in Natick, Massachusetts.

Uploaded by

Aadit Shah
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 7

Fundamentals of Computer Graphics

Third Edition

Peter Shirley Steve Marschner


NVIDIA Corporation Cornell University

with
Michael Ashikhmin
Michael Gleicher
Naty Hoffman
Garrett Johnson
Tamara Munzner
Erik Reinhard
Kelvin Sung
William B. Thompson
Peter Willemsen
Brian Wyvill

A K Peters
Natick, Massachusetts
Contents

Preface xi
1 Introduction 1
1.1 Graphics Areas . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 Major Applications . . . . . . . . . . . . . . . . . . . . . . . . 3
1.3 Graphics APIs . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.4 Graphics Pipeline . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.5 Numerical Issues . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.6 Efficiency . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.7 Designing and Coding Graphics Programs . . . . . . . . . . . . 8

2 Miscellaneous Math 13
2.1 Sets and Mappings . . . . . . . . . . . . . . . . . . . . . . . . 13
2.2 Solving Quadratic Equations . . . . . . . . . . . . . . . . . . . 17
2.3 Trigonometry . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.4 Vectors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.5 Curves and Surfaces . . . . . . . . . . . . . . . . . . . . . . . 30
2.6 Linear Interpolation . . . . . . . . . . . . . . . . . . . . . . . 44
2.7 Triangles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

3 Raster Images 53
3.1 Raster Devices . . . . . . . . . . . . . . . . . . . . . . . . . . 54
3.2 Images, Pixels, and Geometry . . . . . . . . . . . . . . . . . . 59

v
vi Contents

3.3 RGB Color . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64


3.4 Alpha Compositing . . . . . . . . . . . . . . . . . . . . . . . . 65

4 Ray Tracing 69
4.1 The Basic Ray-Tracing Algorithm . . . . . . . . . . . . . . . . 70
4.2 Perspective . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
4.3 Computing Viewing Rays . . . . . . . . . . . . . . . . . . . . 73
4.4 Ray-Object Intersection . . . . . . . . . . . . . . . . . . . . . 76
4.5 Shading . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
4.6 A Ray-Tracing Program . . . . . . . . . . . . . . . . . . . . . 84
4.7 Shadows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
4.8 Ideal Specular Reflection . . . . . . . . . . . . . . . . . . . . . 87
4.9 Historical Notes . . . . . . . . . . . . . . . . . . . . . . . . . 88

5 Linear Algebra 91
5.1 Determinants . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
5.2 Matrices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
5.3 Computing with Matrices and Determinants . . . . . . . . . . . 98
5.4 Eigenvalues and Matrix Diagonalization . . . . . . . . . . . . . 103

6 Transformation Matrices 111


6.1 2D Linear Transformations . . . . . . . . . . . . . . . . . . . . 111
6.2 3D Linear Transformations . . . . . . . . . . . . . . . . . . . . 125
6.3 Translation and Affine Transformations . . . . . . . . . . . . . 130
6.4 Inverses of Transformation Matrices . . . . . . . . . . . . . . . 134
6.5 Coordinate Transformations . . . . . . . . . . . . . . . . . . . 135

7 Viewing 141
7.1 Viewing Transformations . . . . . . . . . . . . . . . . . . . . . 142
7.2 Projective Transformations . . . . . . . . . . . . . . . . . . . . 148
7.3 Perspective Projection . . . . . . . . . . . . . . . . . . . . . . 151
7.4 Some Properties of the Perspective Transform . . . . . . . . . . 156
7.5 Field-of-View . . . . . . . . . . . . . . . . . . . . . . . . . . . 156

8 The Graphics Pipeline 161


8.1 Rasterization . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
8.2 Operations Before and After Rasterization . . . . . . . . . . . . 173
8.3 Simple Antialiasing . . . . . . . . . . . . . . . . . . . . . . . . 180
8.4 Culling Primitives for Efficiency . . . . . . . . . . . . . . . . . 181
Contents vii

9 Signal Processing 185


9.1 Digital Audio: Sampling in 1D . . . . . . . . . . . . . . . . . . 186
9.2 Convolution . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
9.3 Convolution Filters . . . . . . . . . . . . . . . . . . . . . . . . 203
9.4 Signal Processing for Images . . . . . . . . . . . . . . . . . . . 210
9.5 Sampling Theory . . . . . . . . . . . . . . . . . . . . . . . . . 218

10 Surface Shading 233


10.1 Diffuse Shading . . . . . . . . . . . . . . . . . . . . . . . . . 233
10.2 Phong Shading . . . . . . . . . . . . . . . . . . . . . . . . . . 236
10.3 Artistic Shading . . . . . . . . . . . . . . . . . . . . . . . . . 239

11 Texture Mapping 243


11.1 3D Texture Mapping . . . . . . . . . . . . . . . . . . . . . . . 244
11.2 2D Texture Mapping . . . . . . . . . . . . . . . . . . . . . . . 250
11.3 Texture Mapping for Rasterized Triangles . . . . . . . . . . . . 252
11.4 Bump Textures . . . . . . . . . . . . . . . . . . . . . . . . . . 255
11.5 Displacement Mapping . . . . . . . . . . . . . . . . . . . . . . 256
11.6 Environment Maps . . . . . . . . . . . . . . . . . . . . . . . . 256
11.7 Shadow Maps . . . . . . . . . . . . . . . . . . . . . . . . . . . 258

12 Data Structures for Graphics 261


12.1 Triangle Meshes . . . . . . . . . . . . . . . . . . . . . . . . . 262
12.2 Scene Graphs . . . . . . . . . . . . . . . . . . . . . . . . . . . 276
12.3 Spatial Data Structures . . . . . . . . . . . . . . . . . . . . . . 278
12.4 BSP Trees for Visibility . . . . . . . . . . . . . . . . . . . . . 289
12.5 Tiling Multidimensional Arrays . . . . . . . . . . . . . . . . . 297

13 More Ray Tracing 303


13.1 Transparency and Refraction . . . . . . . . . . . . . . . . . . . 304
13.2 Instancing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307
13.3 Constructive Solid Geometry . . . . . . . . . . . . . . . . . . . 309
13.4 Distribution Ray Tracing . . . . . . . . . . . . . . . . . . . . . 309

14 Sampling 317
14.1 Integration . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317
14.2 Continuous Probability . . . . . . . . . . . . . . . . . . . . . . 322
14.3 Monte Carlo Integration . . . . . . . . . . . . . . . . . . . . . 326
14.4 Choosing Random Points . . . . . . . . . . . . . . . . . . . . . 329
viii Contents

15 Curves 339
15.1 Curves . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339
15.2 Curve Properties . . . . . . . . . . . . . . . . . . . . . . . . . 345
15.3 Polynomial Pieces . . . . . . . . . . . . . . . . . . . . . . . . 348
15.4 Putting Pieces Together . . . . . . . . . . . . . . . . . . . . . . 356
15.5 Cubics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359
15.6 Approximating Curves . . . . . . . . . . . . . . . . . . . . . . 365
15.7 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 382

16 Implicit Modeling 385


16.1 Implicit Functions, Skeletal Primitives
and Summation Blending . . . . . . . . . . . . . . . . . . . . . 386
16.2 Rendering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 394
16.3 Space Partitioning . . . . . . . . . . . . . . . . . . . . . . . . 395
16.4 More on Blending . . . . . . . . . . . . . . . . . . . . . . . . 401
16.5 Constructive Solid Geometry . . . . . . . . . . . . . . . . . . 402
16.6 Warping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 404
16.7 Precise Contact Modeling . . . . . . . . . . . . . . . . . . . . 406
16.8 The BlobTree . . . . . . . . . . . . . . . . . . . . . . . . . . . 408
16.9 Interactive Implicit Modeling Systems . . . . . . . . . . . . . . 410

17 Computer Animation 413


17.1 Principles of Animation . . . . . . . . . . . . . . . . . . . . . 414
17.2 Keyframing . . . . . . . . . . . . . . . . . . . . . . . . . . . . 418
17.3 Deformations . . . . . . . . . . . . . . . . . . . . . . . . . . . 426
17.4 Character Animation . . . . . . . . . . . . . . . . . . . . . . . 427
17.5 Physics-Based Animation . . . . . . . . . . . . . . . . . . . . 433
17.6 Procedural Techniques . . . . . . . . . . . . . . . . . . . . . . 436
17.7 Groups of Objects . . . . . . . . . . . . . . . . . . . . . . . . 439
17.8 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 442

18 Using Graphics Hardware 445


18.1 What Is Graphics Hardware . . . . . . . . . . . . . . . . . . . 445
18.2 Describing Geometry for the Hardware . . . . . . . . . . . . . 446
18.3 Processing Geometry into Pixels . . . . . . . . . . . . . . . . . 453

19 Building Interactive Graphics Applications 467


19.1 The Ball Shooting Program . . . . . . . . . . . . . . . . . . . 468
19.2 Programming Models . . . . . . . . . . . . . . . . . . . . . . 470
Contents ix

19.3 The Modelview-Controller Architecture . . . . . . . . . . . . . 487


19.4 Example Implementations . . . . . . . . . . . . . . . . . . . . 499
19.5 Applying Our Results . . . . . . . . . . . . . . . . . . . . . . 509
19.6 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 512
19.7 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 513

20 Light 517
20.1 Radiometry . . . . . . . . . . . . . . . . . . . . . . . . . . . . 517
20.2 Transport Equation . . . . . . . . . . . . . . . . . . . . . . . . 526
20.3 Photometry . . . . . . . . . . . . . . . . . . . . . . . . . . . . 528

21 Color 531
21.1 Colorimetry . . . . . . . . . . . . . . . . . . . . . . . . . . . . 533
21.2 Color Spaces . . . . . . . . . . . . . . . . . . . . . . . . . . . 542
21.3 Chromatic Adaptation . . . . . . . . . . . . . . . . . . . . . . 548
21.4 Color Appearance . . . . . . . . . . . . . . . . . . . . . . . . 552
21.5 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 552

22 Visual Perception 553


22.1 Vision Science . . . . . . . . . . . . . . . . . . . . . . . . . . 554
22.2 Visual Sensitivity . . . . . . . . . . . . . . . . . . . . . . . . . 555
22.3 Spatial Vision . . . . . . . . . . . . . . . . . . . . . . . . . . . 571
22.4 Objects, Locations, and Events . . . . . . . . . . . . . . . . . . 585
22.5 Picture Perception . . . . . . . . . . . . . . . . . . . . . . . . 593

23 Tone Reproduction 597


23.1 Classification . . . . . . . . . . . . . . . . . . . . . . . . . . . 600
23.2 Dynamic Range . . . . . . . . . . . . . . . . . . . . . . . . . . 601
23.3 Color . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 603
23.4 Image Formation . . . . . . . . . . . . . . . . . . . . . . . . . 605
23.5 Frequency-Based Operators . . . . . . . . . . . . . . . . . . . 605
23.6 Gradient-Domain Operators . . . . . . . . . . . . . . . . . . . 607
23.7 Spatial Operators . . . . . . . . . . . . . . . . . . . . . . . . . 608
23.8 Division . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 610
23.9 Sigmoids . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 611
23.10 Other Approaches . . . . . . . . . . . . . . . . . . . . . . . . 616
23.11 Night Tonemapping . . . . . . . . . . . . . . . . . . . . . . . 619
23.12 Discussion . . . . . . . . . . . . . . . . . . . . . . . . . . . . 620
x Contents

24 Global Illumination 623


24.1 Particle Tracing for Lambertian Scenes . . . . . . . . . . . . . 624
24.2 Path Tracing . . . . . . . . . . . . . . . . . . . . . . . . . . . 627
24.3 Accurate Direct Lighting . . . . . . . . . . . . . . . . . . . . . 629

25 Reflection Models 637


25.1 Real-World Materials . . . . . . . . . . . . . . . . . . . . . . . 637
25.2 Implementing Reflection Models . . . . . . . . . . . . . . . . . 639
25.3 Specular Reflection Models . . . . . . . . . . . . . . . . . . . 641
25.4 Smooth Layered Model . . . . . . . . . . . . . . . . . . . . . . 642
25.5 Rough Layered Model . . . . . . . . . . . . . . . . . . . . . . 645

26 Computer Graphics in Games 653


26.1 Platforms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 653
26.2 Limited Resources . . . . . . . . . . . . . . . . . . . . . . . . 655
26.3 Optimization Techniques . . . . . . . . . . . . . . . . . . . . . 659
26.4 Game Types . . . . . . . . . . . . . . . . . . . . . . . . . . . 660
26.5 The Game Production Process . . . . . . . . . . . . . . . . . . 664

27 Visualization 675
27.1 Background . . . . . . . . . . . . . . . . . . . . . . . . . . . . 677
27.2 Data Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . 678
27.3 Human-Centered Design Process . . . . . . . . . . . . . . . . 680
27.4 Visual Encoding Principles . . . . . . . . . . . . . . . . . . . . 682
27.5 Interaction Principles . . . . . . . . . . . . . . . . . . . . . . . 689
27.6 Composite and Adjacent Views . . . . . . . . . . . . . . . . . 690
27.7 Data Reduction . . . . . . . . . . . . . . . . . . . . . . . . . . 696
27.8 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 701

28 Spatial-Field Visualization 709


28.1 2D Scalar Fields . . . . . . . . . . . . . . . . . . . . . . . . . 710
28.2 3D Scalar Fields . . . . . . . . . . . . . . . . . . . . . . . . . 711

References 721
Index 745

You might also like