Instituto de Matemätica Рига e Aplicada Rio de Janeiro, Brasil and University of Sheffield, England
A DDIS ОN-W E S LE Y Publishing Company
Wokingham, England • Reading, Massachusetts • Menlo Park, California • New York Don Mills, Ontario • Amsterdam • Bonn • Sydney • Singapore Tokyo • Madrid • San Juan • Milan • Paris • Mexico City • Seoul • Taipei
Contents
Preface 1 1.1 1.2 1.3 1.4 1.5
2 2.1 2.2 2.3 2.4 2.5 2.6
3 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 3.10
vii Three-dimensional Geometry in Computer Graphics
1
Manipulating three-dimensional structures Affine transformations Transformations for changing coordinate systems Structure-deforming transformations Vectors in computer graphics Projects, notes and suggestions
1 2 10 11 13 19
Representation of Objects
23
Representation and modelling of geometric objects Polygonal representation Bicubic parametric patch nets Constructive solid geometry Space subdivision techniques Rendering strategies Projects, notes and suggestions
23 24 30 35 38 45 53
V i e w i n g Systems
57
Introduction Viewing system I Viewing system II Viewing system III View plane projection for viewing systems I—III Viewing system IV View plane projection for viewing system IV Clipping for viewing system IV Viewing system V (PHIGS) Implementing viewing system V Projects, notes and suggestions
57 59 61 63 65 70 71 74 75 83 85
xiii
Reflection and Illumination Models Introduction Theoretical considerations in light reflection The Phong reflection model Geometric considerations Colour Summary of Phong model The 20 spheres - an example Using look-up tables with reflection models Empirical transparency The Cook and Torrance model Illumination source models Projects, notes and suggestions
89 89 91 96 100 101 102 102 106 108 109 122 125
5 5.1 5.2 5.3 5.4 5.5
Rendering Algorithms Introduction Culling and clipping Incremental shading techniques Rasterization Hidden surface removal Projects, notes and suggestions
127 127 128 131 143 149 158
6 6.1 6.2 6.3 6.4 6.5 6.6 6.7 6.8 6.9
Parametric Representation and Practice Parametric representation of three-dimensional solids Parametric representation of three-dimensional curves B-spline curves Biparametric cubic surfaces Rendering parametric surfaces Approximation to a surface patch using a polygon mesh Extending the control: NURBS and ß-splines Interpolation using B-splines Modelling objects with bicubic parametric nets Projects, notes and suggestions
163 163 166 173 186 197 199 206 208 210 221
Shadows and Textures Introduction Shadows: their function Simple shadows on a ground plane Shadow algorithms Texture Two-dimensional texture mapping Three-dimensional texture domain techniques Bump mapping Anti-aliasing and texture mapping Environment mapping Projects, notes and suggestions
Ray Tracing Introduction Basic algorithm A historical digression - the optics of the rainbow Recursive implementation of ray tracing Ray tracing geometry Reflection-illumination model Shadows Distributed ray tracing Ray tracing and anti-aliasing operations Making ray tracing efficient Projects, notes and suggestions
267 267 268 270 272 278 287 293 294 297 298 308
Volume Rendering Introduction Volume rendering algorithms Case study Parallel versus perspective projection Lighting model Projects, notes and suggestions
313 313 317 320 323 325 329
Radiosity Introduction Radiosity theory Form factor determination Increasing the accuracy of the solution Reordering the solution for progressive refinement Further development of the radiosity method: hybrid radiosity and ray tracing Projects, notes and suggestions
331 331 332 335 340 342 347
11 11.1 11.2 11.3 11.4 11.5 11.6
Anti-aliasing Introduction Aliasing artefacts and Fourier theory Supersampling or postfiltering Prefiltering or area sampling techniques A mathematical comparison Stochastic sampling Projects, notes and suggestions
353 353 355 359 362 364 365 368
12 12.1 12.2 12.3 12.4
Functionally Based Modelling Methods Introduction Particle systems Fractal systems Functions suitable for three-dimensional texture Projects, notes and suggestions
371 371 372 372 377 380
9 9.1 9.2 9.3 9.4 9.5
10 10.1 10.2 10.3 10.4 10.5 10.6
350
13 13.1 13.2 13.3 13.4 13.5
Three-dimensional Computer Animation Introduction Keyframing systems Explicit motion specification - curve editing Other approaches to three-dimensional computer animation Temporal anti-aliasing Projects, notes and suggestions
383
14 14.1 14.2 14.3 14.4
Colour Spaces and Monitor Considerations Introduction Specifying a colour with three labels Colour spaces in computer graphics Monitor considerations Projects, notes and suggestion
409
Viewing Transformation for a Simple Four-parameter Viewing System
437
Appendix A
383 386 388 393 400 402
409 411 413 429 434
Appendix В A Wireframe System
441
Appendix С
An Implementation of a Renderer
471
Appendix D
The Utah Teapot
479
References
483
Index
491
Trademark notice Luxo™ is a trademark of Jac Jacobson Industries Kodak™ is a trademark of Eastman Kodak Company VAX™ is a trademark of Digital Equipment Corporation