ebook img

Fundamentals of Computer Graphics, Third Edition PDF

652 Pages·2005·157.842 MB·English
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Fundamentals of Computer Graphics, Third Edition

Fundamentals of Computer Graphics Fundamentals of Computer Graphics Peter Shirley SchoolofComputing UniversityofUtah with MichaelAshikhmin MichaelGleicher StephenR.Marschner ErikReinhard KelvinSung WilliamB.Thompson PeterWillemsen AKPeters Wellesley,Massachusetts Editorial,Sales,andCustomerServiceOffice AKPeters,Ltd. 888WorcesterStreet,Suite230 Wellesley,MA02482 www.akpeters.com Copyright©2005byAKPeters,Ltd. All rights reserved. No part of the material protected by this copyright notice may be reproduced or utilized in any form, electronic or mechani- cal, including photocopying, recording, or by any information storage and retrievalsystem,withoutwrittenpermissionfromthecopyrightowner. LibraryofCongressCataloging-in-PublicationData Shirley,P.(Peter),1963- Fundamentalsofcomputergraphics/PeterShirley;withMichaelAshikhmin...[et. al.].--2nded. p.cm. Includesbibliographicalreferencesandindex. ISBN1-56881-269-8 1.Computergraphics.I.Ashikhmin,Michael.II.Title. T385.S4342005 006.6’96--dc22 2005048904 PrintedinIndia 09080706 1098765432 Contents Preface xi 1 Introduction 1 1.1 GraphicsAreas . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.2 MajorApplications . . . . . . . . . . . . . . . . . . . . . . . . 2 1.3 GraphicsAPIs . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.4 3DGeometricModels . . . . . . . . . . . . . . . . . . . . . . 4 1.5 GraphicsPipeline . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.6 NumericalIssues . . . . . . . . . . . . . . . . . . . . . . . . . 5 1.7 Efficiency . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 1.8 SoftwareEngineering. . . . . . . . . . . . . . . . . . . . . . . 8 2 Miscellaneous Math 15 2.1 SetsandMappings . . . . . . . . . . . . . . . . . . . . . . . . 15 2.2 SolvingQuadraticEquations . . . . . . . . . . . . . . . . . . . 19 2.3 Trigonometry . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 2.4 Vectors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 2.5 2DImplicitCurves . . . . . . . . . . . . . . . . . . . . . . . . 30 2.6 2DParametricCurves . . . . . . . . . . . . . . . . . . . . . . 36 2.7 3DImplicitSurfaces . . . . . . . . . . . . . . . . . . . . . . . 38 2.8 3DParametricCurves . . . . . . . . . . . . . . . . . . . . . . 40 v vi Contents 2.9 3DParametricSurfaces. . . . . . . . . . . . . . . . . . . . . . 41 2.10 LinearInterpolation . . . . . . . . . . . . . . . . . . . . . . . 42 2.11 Triangles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 3 Raster Algorithms 51 3.1 RasterDisplays . . . . . . . . . . . . . . . . . . . . . . . . . . 51 3.2 MonitorIntensitiesandGamma . . . . . . . . . . . . . . . . . 52 3.3 RGBColor . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 3.4 TheAlphaChannel . . . . . . . . . . . . . . . . . . . . . . . . 56 3.5 LineDrawing . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 3.6 TriangleRasterization . . . . . . . . . . . . . . . . . . . . . . 63 3.7 SimpleAntialiasing. . . . . . . . . . . . . . . . . . . . . . . . 67 3.8 ImageCaptureandStorage . . . . . . . . . . . . . . . . . . . . 68 4 Signal Processing 71 4.1 DigitalAudio: Samplingin1D. . . . . . . . . . . . . . . . . . 72 4.2 Convolution . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 4.3 ConvolutionFilters . . . . . . . . . . . . . . . . . . . . . . . . 89 4.4 SignalProcessingforImages . . . . . . . . . . . . . . . . . . . 96 4.5 SamplingTheory . . . . . . . . . . . . . . . . . . . . . . . . . 104 5 Linear Algebra 119 5.1 Determinants . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 5.2 Matrices. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 6 Transformation Matrices 135 6.1 Basic2DTransforms . . . . . . . . . . . . . . . . . . . . . . . 135 6.2 Basic3DTransforms . . . . . . . . . . . . . . . . . . . . . . . 147 6.3 Translation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 6.4 InversesofTransformationMatrices . . . . . . . . . . . . . . . 154 6.5 CoordinateTransformations . . . . . . . . . . . . . . . . . . . 154 7 Viewing 159 7.1 DrawingtheCanonicalViewVolume . . . . . . . . . . . . . . 160 7.2 OrthographicProjection . . . . . . . . . . . . . . . . . . . . . 162 7.3 PerspectiveProjection . . . . . . . . . . . . . . . . . . . . . . 166 7.4 SomePropertiesofthePerspectiveTransform . . . . . . . . . . 172 7.5 Field-of-View . . . . . . . . . . . . . . . . . . . . . . . . . . . 173 Contents vii 8 Hidden Surface Elimination 177 8.1 BSPTree . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177 8.2 Z-Buffer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186 9 Surface Shading 191 9.1 DiffuseShading . . . . . . . . . . . . . . . . . . . . . . . . . 191 9.2 PhongShading . . . . . . . . . . . . . . . . . . . . . . . . . . 194 9.3 ArtisticShading . . . . . . . . . . . . . . . . . . . . . . . . . 197 10 Ray Tracing 201 10.1 TheBasicRay-TracingAlgorithm . . . . . . . . . . . . . . . . 202 10.2 ComputingViewingRays . . . . . . . . . . . . . . . . . . . . 203 10.3 Ray-ObjectIntersection . . . . . . . . . . . . . . . . . . . . . 205 10.4 ARay-TracingProgram . . . . . . . . . . . . . . . . . . . . . 209 10.5 Shadows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211 10.6 SpecularReflection . . . . . . . . . . . . . . . . . . . . . . . . 212 10.7 Refraction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213 10.8 Instancing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216 10.9 Sub-LinearRay-ObjectIntersection . . . . . . . . . . . . . . . 218 10.10 ConstructiveSolidGeometry . . . . . . . . . . . . . . . . . . . 229 10.11 DistributionRayTracing . . . . . . . . . . . . . . . . . . . . . 229 11 Texture Mapping 239 11.1 3DTextureMapping . . . . . . . . . . . . . . . . . . . . . . . 240 11.2 2DTextureMapping . . . . . . . . . . . . . . . . . . . . . . . 246 11.3 TessellatedModels . . . . . . . . . . . . . . . . . . . . . . . . 248 11.4 TextureMappingforRasterizedTriangles . . . . . . . . . . . . 250 11.5 BumpTextures . . . . . . . . . . . . . . . . . . . . . . . . . . 252 11.6 DisplacementMapping . . . . . . . . . . . . . . . . . . . . . . 253 11.7 EnvironmentMaps . . . . . . . . . . . . . . . . . . . . . . . . 253 11.8 ShadowMaps . . . . . . . . . . . . . . . . . . . . . . . . . . . 255 12 A Full Graphics Pipeline 259 12.1 Clipping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259 12.2 LocationofClippingSegmentofthePipeline . . . . . . . . . . 260 12.3 AnExpandedGraphicsPipeline . . . . . . . . . . . . . . . . . 264 12.4 BackfaceElimination . . . . . . . . . . . . . . . . . . . . . . . 265 12.5 TriangleStripsandFans . . . . . . . . . . . . . . . . . . . . . 266 12.6 PreservedState . . . . . . . . . . . . . . . . . . . . . . . . . . 266 12.7 AFullGraphicsPipeline . . . . . . . . . . . . . . . . . . . . . 267 viii Contents 13 Data Structures for Graphics 269 13.1 TriangleMeshes . . . . . . . . . . . . . . . . . . . . . . . . . 269 13.2 Winged-EdgeDataStructure . . . . . . . . . . . . . . . . . . . 270 13.3 SceneGraphs . . . . . . . . . . . . . . . . . . . . . . . . . . . 272 13.4 TilingMultidimensionalArrays . . . . . . . . . . . . . . . . . 274 14 Sampling 279 14.1 Integration . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279 14.2 ContinuousProbability . . . . . . . . . . . . . . . . . . . . . . 284 14.3 MonteCarloIntegration . . . . . . . . . . . . . . . . . . . . . 288 14.4 ChoosingRandomPoints. . . . . . . . . . . . . . . . . . . . . 291 15 Curves 301 15.1 Curves . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301 15.2 CurveProperties . . . . . . . . . . . . . . . . . . . . . . . . . 307 15.3 PolynomialPieces . . . . . . . . . . . . . . . . . . . . . . . . 310 15.4 PuttingPiecesTogether. . . . . . . . . . . . . . . . . . . . . . 318 15.5 Cubics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321 15.6 ApproximatingCurves . . . . . . . . . . . . . . . . . . . . . . 327 15.7 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344 16 Computer Animation 347 16.1 PrinciplesofAnimation . . . . . . . . . . . . . . . . . . . . . 348 16.2 Keyframing . . . . . . . . . . . . . . . . . . . . . . . . . . . . 352 16.3 Deformations . . . . . . . . . . . . . . . . . . . . . . . . . . . 360 16.4 CharacterAnimation . . . . . . . . . . . . . . . . . . . . . . . 361 16.5 Physics-BasedAnimation . . . . . . . . . . . . . . . . . . . . 367 16.6 ProceduralTechniques . . . . . . . . . . . . . . . . . . . . . . 370 16.7 GroupsofObjects . . . . . . . . . . . . . . . . . . . . . . . . 373 16.8 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 376 17 Using Graphics Hardware 379 17.1 WhatisGraphicsHardware . . . . . . . . . . . . . . . . . . . 379 17.2 DescribingGeometryfortheHardware . . . . . . . . . . . . . 380 17.3 ProcessingGeometryintoPixels . . . . . . . . . . . . . . . . . 387 18 Building Interactive Graphics Applications 401 18.1 TheBallShootingProgram . . . . . . . . . . . . . . . . . . . 402 18.2 ProgrammingModels . . . . . . . . . . . . . . . . . . . . . . 404 18.3 TheModelview-ControllerArchitecture . . . . . . . . . . . . . 421 Contents ix 18.4 ExampleImplementations . . . . . . . . . . . . . . . . . . . . 433 18.5 ApplyingOurResults . . . . . . . . . . . . . . . . . . . . . . 443 18.6 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 446 18.7 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 447 19 Light 451 19.1 Radiometry . . . . . . . . . . . . . . . . . . . . . . . . . . . . 451 19.2 TransportEquation . . . . . . . . . . . . . . . . . . . . . . . . 460 19.3 Photometry . . . . . . . . . . . . . . . . . . . . . . . . . . . . 462 20 Color 465 20.1 LightandLightDetectors . . . . . . . . . . . . . . . . . . . . 466 20.2 TristimulusColorTheory. . . . . . . . . . . . . . . . . . . . . 466 20.3 CIETristimulusValues . . . . . . . . . . . . . . . . . . . . . . 468 20.4 Chromaticity . . . . . . . . . . . . . . . . . . . . . . . . . . . 469 20.5 ScotopicLuminance . . . . . . . . . . . . . . . . . . . . . . . 472 20.6 RGBMonitors . . . . . . . . . . . . . . . . . . . . . . . . . . 472 20.7 ApproximateColorManipulation . . . . . . . . . . . . . . . . 473 20.8 OpponentColorSpaces. . . . . . . . . . . . . . . . . . . . . . 474 21 Visual Perception 477 21.1 VisionScience . . . . . . . . . . . . . . . . . . . . . . . . . . 478 21.2 VisualSensitivity . . . . . . . . . . . . . . . . . . . . . . . . . 479 21.3 SpatialVision . . . . . . . . . . . . . . . . . . . . . . . . . . . 495 21.4 Objects,Locations,andEvents . . . . . . . . . . . . . . . . . . 509 21.5 PicturePerception . . . . . . . . . . . . . . . . . . . . . . . . 517 22 Tone Reproduction 521 22.1 Classification . . . . . . . . . . . . . . . . . . . . . . . . . . . 524 22.2 DynamicRange. . . . . . . . . . . . . . . . . . . . . . . . . . 525 22.3 Color . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 527 22.4 ImageFormation . . . . . . . . . . . . . . . . . . . . . . . . . 529 22.5 Frequency-BasedOperators . . . . . . . . . . . . . . . . . . . 529 22.6 Gradient-DomainOperators . . . . . . . . . . . . . . . . . . . 531 22.7 SpatialOperators . . . . . . . . . . . . . . . . . . . . . . . . . 532 22.8 Division . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 534 22.9 Sigmoids . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 535 22.10 OtherApproaches . . . . . . . . . . . . . . . . . . . . . . . . 540 22.11 NightTonemapping . . . . . . . . . . . . . . . . . . . . . . . 543 22.12 Discussion . . . . . . . . . . . . . . . . . . . . . . . . . . . . 544

See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.