
1 CS 488/688 Fall 2019 Stephen Mann CONTENTS 2 Contents 1 Administration 9 1.1 General Information . .9 1.2 Topics Covered . 10 1.3 Assignments . 10 2 Introduction 13 2.1 History . 13 2.2 Pipeline . 14 2.3 Primitives . 15 2.4 Algorithms . 16 2.5 APIs . 16 3 Devices and Device Independence 17 3.1 Calligraphic and Raster Devices . 17 3.2 How a Monitor Works . 17 3.3 Physical Devices . 18 4 Device Interfaces 21 4.1 Device Input Modes . 21 4.2 Application Structure . 21 4.3 Polling and Sampling . 22 4.4 Event Queues . 22 4.5 Toolkits and Callbacks . 23 4.6 Example for Discussion . 24 5 Geometries 27 5.1 Geometry Overview . 27 5.2 Vector Spaces . 27 5.3 Affine Spaces . 28 5.4 Inner Product Spaces . 29 5.5 Euclidean Spaces . 29 5.6 Cartesian Space . 30 5.7 Why Vector Spaces Inadequate . 30 5.8 Summary of Geometric Spaces . 31 6 Affine Geometry and Transformations 33 6.1 Linear Combinations . 33 6.2 Affine Combinations . 33 6.3 Affine Transformations . 35 6.4 Matrix Representation of Transformations . 37 6.5 Geometric Transformations . 38 6.6 Compositions of Transformations . 40 6.7 Change of Basis . 40 6.8 Ambiguity . 43 CONTENTS 3 6.9 3D Transformations . 44 6.10 World and Viewing Frames . 47 6.11 Normals . 48 7 Windows, Viewports, NDC 51 7.1 Window to Viewport Mapping . 51 7.2 Normalized Device Coordinates . 53 8 Clipping 55 8.1 Clipping . 55 9 Projections and Projective Transformations 59 9.1 Projections . 59 9.2 Why Map Z? . 64 9.3 Mapping Z . 66 9.4 3D Clipping . 68 9.5 Homogeneous Clipping . 68 9.6 Pinhole Camera vs. Camera vs. Perception . 70 10 Transformation Applications and Extensions 75 10.1 Rendering Pipeline Revisited . 75 10.2 A2 World and View Frames . 75 11 Polygons 79 11.1 Polygons { Introduction . 79 11.2 Polygon Clipping . 80 11.3 Polygon Scan Conversion . 83 11.4 Dos and Don'ts . 84 12 Hidden Surface Removal 87 12.1 Hidden Surface Removal . 87 12.2 Backface Culling . 87 12.3 Painter's Algorithm . 88 12.4 Warnock's Algorithm . 89 12.5 Z-Buffer Algorithm . 90 12.6 Comparison of Algorithms . 91 13 Hierarchical Models and Transformations 93 13.1 Hierarchical Transformations . 93 13.2 Hierarchical Data Structures . 95 14 Rotating Around Arbitrary Axes 101 14.1 Rotation Around Arbitrary Axis . 101 14.2 3D Rotation User Interfaces . 102 14.3 The Virtual Sphere . 103 CONTENTS 4 15 Picking and 3D Selection 105 15.1 Picking and 3D Selection . 105 16 Colour and the Human Visual System 107 16.1 Colour . 107 17 Reflection and Light Source Models 111 17.1 Goals . 111 17.2 Lambertian Reflection . 111 17.3 Attenuation . 113 17.4 Coloured Lights, Multiple Lights, and Ambient Light . 115 17.5 Specular Reflection . 116 18 Shading 119 18.1 Introduction . 119 18.2 Gouraud Shading . 119 18.3 Phong Shading . 123 19 Graphics Hardware 125 19.1 Graphics Hardware . 125 19.2 High-Level Shading Languages . 126 20 Ray Tracing 131 20.1 Fundamentals . 131 20.2 Intersection Computations . 132 20.3 Shading . 135 20.4 Recursive Ray Tracing . 137 20.5 Surface Information . 138 20.6 Modeling and CSG . 140 20.7 Texture Mapping . 142 20.8 Bounding Boxes, Spatial Subdivision . 145 21 Aliasing 149 21.1 Aliasing . 149 22 Bidirectional Tracing 155 22.1 Missing Effects . 155 22.2 Distribution Ray Tracing . 156 22.3 Bidirectional Path Tracing . 156.
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages294 Page
-
File Size-