ч 3d computer graphics - gbv
TRANSCRIPT
ч
3D COMPUTER GRAPHICS
S E C O N D E D I T I O N
A L A N W A T T
Instituto de Matemätica Рига e Aplicada Rio de Janeiro, Brasil
and
University of Sheffield, England
A D D I S О N - W E S L E Y P u b l i s h i n g C o m p a n y
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 vii
1 Three-dimensional Geometry in Computer Graphics 1
1.1 Manipulating three-dimensional structures 1 1.2 Affine transformations 2 1.3 Transformations for changing coordinate systems 10 1.4 Structure-deforming transformations 11 1.5 Vectors in computer graphics 13
Projects, notes and suggestions 19
2 Representation of Objects 23
2.1 Representation and modelling of geometric objects 23 2.2 Polygonal representation 24 2.3 Bicubic parametric patch nets 30 2.4 Constructive solid geometry 35 2.5 Space subdivision techniques 38 2.6 Rendering strategies 45
Projects, notes and suggestions 53
3 V i e w i n g Systems 57
3.1 Introduction 57 3.2 Viewing system I 59 3.3 Viewing system II 61 3.4 Viewing system III 63 3.5 View plane projection for viewing systems I—III 65 3.6 Viewing system IV 70 3.7 View plane projection for viewing system IV 71 3.8 Clipping for viewing system IV 74 3.9 Viewing system V (PHIGS) 75
3.10 Implementing viewing system V 83 Projects, notes and suggestions 85
xiii
4 Reflection and Illumination Models 89
4.1 Introduction 89 4.2 Theoretical considerations in light reflection 91 4.3 The Phong reflection model 96 4.4 Geometric considerations 100 4.5 Colour 101 4.6 Summary of Phong model 102 4.7 The 20 spheres - an example 102 4.8 Using look-up tables with reflection models 106 4.9 Empirical transparency 108
4.10 The Cook and Torrance model 109 4.11 Illumination source models 122
Projects, notes and suggestions 125
5 Rendering Algorithms 127 5.1 Introduction 127 5.2 Culling and clipping 128 5.3 Incremental shading techniques 131 5.4 Rasterization 143 5.5 Hidden surface removal 149
Projects, notes and suggestions 158
6 Parametric Representation and Practice 163 6.1 Parametric representation of three-dimensional solids 163 6.2 Parametric representation of three-dimensional curves 166 6.3 B-spline curves 173 6.4 Biparametric cubic surfaces 186 6.5 Rendering parametric surfaces 197 6.6 Approximation to a surface patch using a polygon mesh 199 6.7 Extending the control: NURBS and ß-splines 206 6.8 Interpolation using B-splines 208 6.9 Modelling objects with bicubic parametric nets 210
Projects, notes and suggestions 221
7 Shadows and Textures 225 7.1 Introduction 225 7.2 Shadows: their function 225 7.3 Simple shadows on a ground plane 227 7.4 Shadow algorithms 229 7.5 Texture 237 7.6 Two-dimensional texture mapping 238 7.7 Three-dimensional texture domain techniques 246 7.8 Bump mapping 250 7.9 Anti-aliasing and texture mapping 253
7.10 Environment mapping 259 Projects, notes and suggestions 262
Contents xv
8 Ray Tracing 267 8.1 Introduction 267 8.2 Basic algorithm 268 8.3 A historical digression - the optics of the rainbow 270 8.4 Recursive implementation of ray tracing 272 8.5 Ray tracing geometry 278 8.6 Reflection-illumination model 287 8.7 Shadows 293 8.8 Distributed ray tracing 294 8.9 Ray tracing and anti-aliasing operations 297
8.10 Making ray tracing efficient 298 Projects, notes and suggestions 308
9 Volume Rendering 313 9.1 Introduction 313 9.2 Volume rendering algorithms 317 9.3 Case study 320 9.4 Parallel versus perspective projection 323 9.5 Lighting model 325
Projects, notes and suggestions 329
10 Radiosity 331 10.1 Introduction 331 10.2 Radiosity theory 332 10.3 Form factor determination 335 10.4 Increasing the accuracy of the solution 340 10.5 Reordering the solution for progressive refinement 342 10.6 Further development of the radiosity method: 347
hybrid radiosity and ray tracing Projects, notes and suggestions 350
11 Anti-aliasing 353 11.1 Introduction 353 11.2 Aliasing artefacts and Fourier theory 355 11.3 Supersampling or postfiltering 359 11.4 Prefiltering or area sampling techniques 362 11.5 A mathematical comparison 364 11.6 Stochastic sampling 365
Projects, notes and suggestions 368
12 Functionally Based Modelling Methods 371 12.1 Introduction 371 12.2 Particle systems 372 12.3 Fractal systems 372 12.4 Functions suitable for three-dimensional texture 377
Projects, notes and suggestions 380
13 13.1 13.2 13.3 13.4 13.5
14 14.1 14.2 14.3 14.4
Appendix A
Appendix В
Appendix С
Appendix D
References
Index
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
Colour Spaces and Monitor Considerations Introduction Specifying a colour with three labels Colour spaces in computer graphics Monitor considerations Projects, notes and suggestion
Viewing Transformation for a Simple Four-parameter Viewing System
A Wireframe System
An Implementation of a Renderer
The Utah Teapot
383 383 386 388 393 400 402
409 409 411 413 429 434
437
441
471
479
483
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