𝔖 Scriptorium
✦   LIBER   ✦

📁

3D Computer Graphics: A Mathematical Introduction with OpenGL

✍ Scribed by Samuel R. Buss


Publisher
Cambridge University Press
Year
2003
Tongue
English
Leaves
397
Category
Library

⬇  Acquire This Volume

No coin nor oath required. For personal study only.

✦ Synopsis


This introduction to 3D computer graphics emphasizes fundamentals and the mathematics underlying computer graphics, while also covering programming techniques using OpenGL, a platform-independent graphics programming environment. The minimal prerequisites make it suitable for self-study or for use as an advanced undergraduate or introductory graduate text as the author leads step-by-step from the basics of transformations to advanced topics such as animations and kinematics. Accompanying software, including source code for a ray tracing software package, is available freely from the book's web site.

✦ Table of Contents


Half-title......Page 3
Title......Page 5
Copyright......Page 6
Dedication......Page 7
Contents......Page 9
About This Book......Page 13
How to Use This Book......Page 14
Getting Started with OpenGL......Page 16
For the Instructor......Page 17
Acknowledgments......Page 18
I.1.1 Rectangular Arrays of Pixels......Page 19
I.1.2 Vector Graphics......Page 20
I.1.3 Polygonal Modeling......Page 21
I.2.1 Coordinate Systems......Page 22
Drawing Points in OpenGL......Page 23
Drawing Lines in OpenGL......Page 25
Drawing Polygons in OpenGL......Page 26
Colors......Page 28
Hidden Surfaces......Page 30
Polygon Face Orientations......Page 31
Toggling Wireframe Mode......Page 32
I.3 Double Buffering for Animation......Page 33
II Transformations and Viewing......Page 35
II.1 Transformations in 2-Space......Page 36
II.1.1 Basic Definitions......Page 37
II.1.2 Matrix Representation of Linear Transformations......Page 38
II.1.3 Rigid Transformations and Rotations......Page 41
II.1.4 Homogeneous Coordinates......Page 44
II.1.5 Matrix Representation of Affine Transformations......Page 45
II.1.6 Two-Dimensional Transformations in OpenGL......Page 46
II.1.7 Another Outlook on Composing Transformations......Page 49
II.1.8 Two-Dimensional Projective Geometry......Page 50
II.2.1 Moving from 2-Space to 3-Space......Page 52
II.2.2 Transformation Matrices in OpenGL......Page 54
II.2.3 Derivation of the Rotation Matrix......Page 59
II.2.4 Euler’s Theorem......Page 62
II.2.5 Three-Dimensional Projective Geometry......Page 63
II.3 Viewing Transformations and Perspective......Page 64
II.3.1 Orthographic Viewing Transformations......Page 65
II.3.2 Perspective Transformations......Page 67
II.3.3 Mapping Lines to Lines......Page 70
II.3.4 Another Use for Projection: Shadows......Page 71
II.3.5 The OpenGL Perspective Transformations......Page 72
II.4 Mapping to Pixels......Page 76
II.4.1 Bresenham Algorithm......Page 80
II.4.2 The Perils of Floating Point Roundoff......Page 82
III Lighting, Illumination, and Shading......Page 85
III.1 The Phong Lighting Model......Page 86
III.1.1 Diffuse Reflection......Page 89
III.1.2 Specular Reflection......Page 90
III.1.4 Putting It Together: Multiple Lights and Colors......Page 92
III.1.5 Gouraud and Phong Shading......Page 93
III.1.6 Computing Surface Normals......Page 96
III.1.7 Affine Transformations and Normal Vectors......Page 99
III.1.8 Light and Material Properties in OpenGL......Page 100
III.2.1 Bidirectional Reflectivity......Page 105
III.2.2 Overview of Cook–Torrance......Page 107
III.2.4 The Geometric Surface Occlusion Term......Page 109
IV.1.1 Interpolation between Two Points......Page 117
IV.1.2 Weighted Averages and Affine Combinations......Page 119
IV.1.3 Interpolation on Three Points: Barycentric Coordinates......Page 120
Area Interpretation of Barycentric Coordinates......Page 122
Calculating Barycentric Coordinates......Page 123
IV.2.1 Bilinear Interpolation......Page 125
IV.2.2 Inverting Bilinear Interpolation......Page 131
IV.3 Convex Sets and Weighted Averages......Page 135
IV.4 Interpolation and Homogeneous Coordinates......Page 137
IV.5 Hyperbolic Interpolation......Page 139
IV.6 Spherical Linear Interpolation......Page 140
V.1 Texture Mapping an Image......Page 144
V.1.1 Interpolating a Texture to a Surface......Page 145
V.1.2 Assigning Texture Coordinates......Page 146
V.1.3 Mipmapping and Antialiasing......Page 150
V.1.4 Stochastic Supersampling......Page 152
V.2 Bump Mapping......Page 153
V.3 Environment Mapping......Page 155
V.4.1 Loading a Texture Map......Page 157
V.4.3 Modulating Color......Page 159
V.4.4 Separate Specular Highlights......Page 160
V.4.6 Environment Mapping in OpenGL......Page 161
VI.1 Color Perception......Page 164
VI.2.1 Additive and Subtractive Colors......Page 167
VI.2.2 Representation of RGB Colors......Page 168
VI.2.3 Hue, Saturation, and Luminance......Page 169
VII Bézier Curves......Page 173
VII.1 Bézier Curves of Degree Three......Page 174
VII.2 De Casteljau’s Method......Page 177
VII.3 Recursive Subdivision......Page 178
Applications of Recursive Subdivision......Page 179
VII.4 Piecewise Bézier Curves......Page 181
VII.5 Hermite Polynomials......Page 182
VII.6 Bézier Curves of General Degree......Page 183
VII.7 De Casteljau’s Method Revisited......Page 186
VII.8 Recursive Subdivision Revisited......Page 187
VII.9 Degree Elevation......Page 189
VII.10.1 Basic Properties of Bézier Patches......Page 191
VII.10.2 Joining Bézier Patches......Page 193
Subdividing Bézier Patches......Page 194
VII.11.1 Bézier Curves......Page 196
VII.11.2 Bézier Patches......Page 197
VII.12 Rational Bézier Curves......Page 198
VII.13 Conic Sections with Rational Bézier Curves......Page 200
VII.14 Surface of Revolution Example......Page 205
VII.15.1 Catmull–Rom Splines......Page 207
VII.15.2 Bessel–Overhauser Splines......Page 208
VII.15.3 Tension–Continuity–Bias Splines......Page 211
VII.16 Interpolating with Bézier Surfaces......Page 213
VIII B-Splines......Page 218
VIII.1 Uniform B-Splines of Degree Three......Page 219
VIII.2 Nonuniform B-Splines......Page 222
VIII.3 Examples of Nonuniform B-Splines......Page 224
VIII.4 Properties of Nonuniform B-Splines......Page 229
VIII.5 The de Boor Algorithm......Page 232
VIII.6 Blossoms......Page 235
VIII.7 Derivatives and Smoothness of B-Spline Curves......Page 239
VIII.8 Knot Insertion......Page 241
From Bézier Curves to B-Spline Curves......Page 244
VIII.10 Degree Elevation......Page 245
VIII.11 Rational B-Splines and NURBS......Page 246
VIII.13 Interpolating with B-Splines......Page 247
IX Ray Tracing......Page 251
IX.1 Basic Ray Tracing......Page 252
Reflection Rays......Page 253
Transmission Rays......Page 255
IX.1.1 Local Lighting and Reflection Rays......Page 256
IX.1.2 Transmission Rays......Page 257
IX.1.3 Putting It All Together......Page 260
Antialiasing with Multiple Eye-to-Pixel Rays......Page 262
Depth of Field with Jittered Eye Positions......Page 263
Soft Shadows with Extended Lights and Jittered Shadow Rays......Page 265
Using Multiple Techniques at Once......Page 267
Path Tracing. Tracing Diffuse Reflection and Transmission......Page 268
IX.2.2 Backwards Ray Tracing......Page 269
IX.3 Special Effects without Ray Tracing......Page 270
Motion Blur and Depth of Field with the Accumulation Buffer......Page 271
Reflections with Environment Mapping......Page 272
Shadows......Page 273
Transparency, Blending, and Fog......Page 274
X Intersection Testing......Page 283
X.1.1 Ray versus Sphere Intersections......Page 284
X.1.2 Ray versus Plane Intersections......Page 286
X.1.3 Ray versus Triangle Intersections......Page 287
X.1.4 Ray versus Convex Polytope Intersections......Page 290
X.1.5 Ray versus Cylinder Intersections......Page 292
X.1.6 Ray versus Quadric Intersections......Page 293
X.1.7 Ray versus Bézier Patch Intersections......Page 294
X.2 Pruning Intersection Tests......Page 295
XI Radiosity......Page 298
XI.1.1 Patches, Light Levels, and Form Factors......Page 300
XI.1.2 High-Level Description of the Radiosity Algorithm......Page 302
XI.2 Calculation of Form Factors......Page 303
XI.2.1 The Ray Tracing Method......Page 305
XI.2.2 The Hemicube Method......Page 306
XI.3.1 Iterative Methods......Page 308
XI.3.2 Jacobi Iteration......Page 311
XI.3.3 Gauss–Seidel Iteration......Page 312
XI.3.4 The Shooting Method......Page 313
XII.1 Overview......Page 315
XII.1.1 Techniques Evolved from Traditional Animation......Page 316
XII.1.2 Computerized Animation......Page 317
XII.2 Animation of Position......Page 318
XII.2.1 Ease In: Fixed Target......Page 319
XII.2.2 Ease In: Moving Target......Page 320
XII.3.1 Rotation Matrices......Page 321
XII.3.2 Yaw, Pitch, and Roll......Page 322
XII.3.3 Quaternions......Page 324
XII.3.4 Theoretical Development of Quaternions......Page 325
XII.3.5 Representing Rotations with Quaternions......Page 327
XII.3.6 Quaternion and Rotation Matrix Conversions......Page 329
XII.3.7 Interpolation of Quaternions......Page 332
XII.4 Kinematics......Page 333
XII.4.2 Forward Kinematics......Page 334
XII.4.3 Inverse Kinematics, Setting It Up......Page 337
XII.4.4 Inverse Kinematics, Finding a Local Solution......Page 339
A.1 Preliminaries......Page 345
A.2.1 Vectors in R2......Page 346
Dot Products in R2......Page 347
Cross Products in R2......Page 348
Dot Products in R3......Page 350
A.3 Matrices......Page 351
A.3.1 Matrices and Vector Products in R3......Page 352
A.3.2 Determinants, Inverses, and Adjoints......Page 353
A.3.3 Linear Subspaces......Page 354
A.4.1 Multivariable Functions......Page 355
A.4.3 Multivariable Vector-Valued Functions......Page 357
B.1 Introduction to the Ray Tracing Package......Page 358
B.2 The High-Level Ray Tracing Routines......Page 359
B.3.1 Specifying Lights......Page 362
B.3.2 Defining the Viewport and Camera Positions......Page 363
B.3.4 Defining Materials......Page 365
B.3.5 Defining Viewable Objects......Page 366
B.3.6 Viewable Spheres......Page 367
B.3.8 Viewable Ellipsoids......Page 368
B.3.9 Viewable Cylinders......Page 369
B.3.10 Viewable Cones......Page 370
B.3.12 Viewable Tori......Page 372
B.3.13 Viewable Bézier Patches......Page 373
B.3.14 Texture Maps......Page 375
Bibliography......Page 379
Index......Page 385


📜 SIMILAR VOLUMES


3D Computer Graphics : A Mathematical In
✍ Samuel R. Buss 📂 Library 📅 2003 🌐 English

This introduction to 3D computer graphics emphasizes fundamentals and the mathematics underlying computer graphics, while also covering programming techniques using OpenGL, a platform-independent graphics programming environment. The minimal prerequisites make it suitable for self-study or for use a

3D Computer Graphics: A Mathematical Int
✍ Samuel R. Buss 📂 Library 📅 2003 🏛 Cambridge University Press 🌐 English

<span>This introduction to 3D computer graphics emphasizes fundamentals and the mathematics underlying computer graphics, while also covering programming techniques using OpenGL, a platform-independent graphics programming environment. The minimal prerequisites make it suitable for self-study or for

3D Computer Graphics: A Mathematical Int
✍ Samuel R. Buss 📂 Library 📅 2003 🏛 Cambridge University Press 🌐 English

This introduction to 3D computer graphics emphasizes fundamentals and the mathematics underlying computer graphics, while also covering programming techniques using OpenGL, a platform-independent graphics programming environment. The minimal prerequisites make it suitable for self-study or for use a

3-D Computer Graphics: A Mathematical In
✍ Buss Samuel R. 📂 Library 🌐 English

Cambridge University Press, 2003. — 397 p. — ISBN 0521821037.<div class="bb-sep"></div>This book is an introduction to 3-D computer graphics with particular emphasis on fundamentals and the mathematics underlying computer graphics. It includes descriptions of how to use the cross-platform OpenGL pro