3D COMPUTER GRAPHICS

ч 3D COMPUTER GRAPHICS S E C O N D E A L A N D I T I O N W A T T Instituto de Matemätica Рига e Aplicada Rio de Janeiro, Brasil and Un...
Author: Asher Bailey
2 downloads 1 Views 2MB Size
ч

3D COMPUTER GRAPHICS S

E

C

O

N

D

E

A L A N

D

I

T

I

O

N

W A T T

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

225 225 225 227 229 237 238 246 250 253 259 262

4

4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 4.10 4.11

7 7.1 7.2 7.3 7.4 7.5 7.6 7.7 7.8 7.9 7.10

Contents 8 8.1 8.2 8.3 8.4 8.5 8.6 8.7 8.8 8.9 8.10

xv

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

Suggest Documents