ebook img

A Hitchhiker's Guide to Virtual Reality PDF

581 Pages·2007·8.395 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 A Hitchhiker's Guide to Virtual Reality

(cid:1) (cid:1) (cid:1) (cid:1) A Hitchhiker’s Guide to Virtual Reality (cid:1) (cid:1) (cid:1) (cid:1) (cid:1) (cid:1) (cid:1) (cid:1) A Hitchhiker’s Guide to Virtual Reality Karen McMenemy Stuart Ferguson AKPeters,Ltd. Wellesley,Massachusetts (cid:1) (cid:1) (cid:1) (cid:1) (cid:1) (cid:1) (cid:1) (cid:1) Editorial, Sales,andCustomerServiceOffice AKPeters,Ltd. 888WorcesterStreet,Suite230 Wellesley, MA02482 www.akpeters.com Copyright(cid:1)c 2007byAKPeters,Ltd. Allrightsreserved. Nopartofthematerialprotectedbythiscopyrightnoticemayberepro- ducedorutilizedinanyform,electronicormechanical,includingphotocopying, recording, orbyanyinformationstorageandretrievalsystem,withoutwrittenpermissionfromthecopy- rightowner. LibraryofCongressCataloging-in-Publication Data McMenemy,Karen,1976-– Ahitchhiker’sguidetovirtualreality/byKarenMcMenemy,StuartFerguson. p.cm. Includesbibliographicalreferencesandindex. ISBN13:978-1-56881-303-5(alk.paper) ISBN10:1-56881-303-1(alk.paper) 1.Human-computerinteraction.2.Virtualreality.I.Ferguson,Stuart,1953-II.Title. QA76.9.H85M4252007 006.8–dc22 2006102280 Cover image: The front coverillustrates avirtual figure exploring a virtual landscape. The theory and practical implementation making this possible are described in Chapters 5, 7, 13and14. The insetimagesonthe backcoverillustrate theprojectionsystemdesignedin Chapter4andsomeofthepracticalprojectsofChapter18. Printedin Canada 1110090807 10987654321 (cid:1) (cid:1) (cid:1) (cid:1) (cid:1) (cid:1) (cid:1) (cid:1) ToCathy (cid:1) (cid:1) (cid:1) (cid:1) (cid:1) (cid:1) (cid:1) (cid:1) Contents Preface xiii I What, Why and How 1 1 Introduction 3 1.1 WhatisVirtualReality? . . . . . . . . . . . . . . . . . . 3 1.2 AQuickTouroftheBook . . . . . . . . . . . . . . . . . 4 1.3 AssumedKnowledgeandTargetAudience . . . . . . . . . 7 1.4 ValuableResourcesforVR . . . . . . . . . . . . . . . . . 8 1.5 TheCodeListings . . . . . . . . . . . . . . . . . . . . . 9 Bibliography . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 2 TheHumanSensesandVR 13 2.1 HumanVisualSystem . . . . . . . . . . . . . . . . . . . 14 2.2 HumanAuditorySystem. . . . . . . . . . . . . . . . . . 18 2.3 HumanTactileSystem . . . . . . . . . . . . . . . . . . . 21 2.4 Olfaction—TheSenseofSmell . . . . . . . . . . . . . . 23 2.5 Gustation—TheSenseofTaste . . . . . . . . . . . . . . 24 2.6 Summary . . . . . . . . . . . . . . . . . . . . . . . . . 25 Bibliography . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 3 ApplicationsandImplicationsofVR 29 3.1 Entertainment . . . . . . . . . . . . . . . . . . . . . . . 30 3.2 Visualization . . . . . . . . . . . . . . . . . . . . . . . . 31 3.3 Training . . . . . . . . . . . . . . . . . . . . . . . . . . 33 vii (cid:1) (cid:1) (cid:1) (cid:1) (cid:1) (cid:1) (cid:1) (cid:1) viii Contents 3.4 Education . . . . . . . . . . . . . . . . . . . . . . . . . 35 3.5 OtherApplications . . . . . . . . . . . . . . . . . . . . . 36 3.6 DistributedVR . . . . . . . . . . . . . . . . . . . . . . 38 3.7 TheImplicationsofVR . . . . . . . . . . . . . . . . . . 39 3.8 Summary . . . . . . . . . . . . . . . . . . . . . . . . . 42 Bibliography . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 4 BuildingaPracticalVRSystem 45 4.1 TechnologyofVisualization . . . . . . . . . . . . . . . . 47 4.2 TechnologyforInteraction . . . . . . . . . . . . . . . . . 64 4.3 TechnologyforMotionTrackingandCapture . . . . . . . 71 4.4 Summary . . . . . . . . . . . . . . . . . . . . . . . . . 83 Bibliography . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 5 DescribingandStoringtheVRWorld 87 5.1 TheGeometricDescription ofa3DVirtualWorld . . . . 88 5.2 SceneGraphs . . . . . . . . . . . . . . . . . . . . . . . 94 5.3 PuttingVRContentontheWEB . . . . . . . . . . . . . 102 5.4 StoringImagesandTextures . . . . . . . . . . . . . . . . 105 5.5 StoringVideo . . . . . . . . . . . . . . . . . . . . . . . 111 5.6 Summary . . . . . . . . . . . . . . . . . . . . . . . . . 116 Bibliography . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 6 APocket3DTheoryReference 119 6.1 CoordinateSystems . . . . . . . . . . . . . . . . . . . . 120 6.2 Vectors . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 6.3 TheLine . . . . . . . . . . . . . . . . . . . . . . . . . . 124 6.4 ThePlane . . . . . . . . . . . . . . . . . . . . . . . . . 125 6.5 ReflectioninaPlane . . . . . . . . . . . . . . . . . . . 129 6.6 Transformations . . . . . . . . . . . . . . . . . . . . . . 131 6.7 Summary . . . . . . . . . . . . . . . . . . . . . . . . . 145 Bibliography . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 7 TheRenderingPipeline 147 7.1 GeometryandVertexOperations . . . . . . . . . . . . . 149 7.2 CullingandClipping . . . . . . . . . . . . . . . . . . . 150 7.3 ScreenMapping . . . . . . . . . . . . . . . . . . . . . . 155 7.4 ScanConversionorRasterization . . . . . . . . . . . . . 156 (cid:1) (cid:1) (cid:1) (cid:1) (cid:1) (cid:1) (cid:1) (cid:1) Contents ix 7.5 FragmentProcessing . . . . . . . . . . . . . . . . . . . . 159 7.6 Texturing . . . . . . . . . . . . . . . . . . . . . . . . . 172 7.7 Summary . . . . . . . . . . . . . . . . . . . . . . . . . 179 Bibliography . . . . . . . . . . . . . . . . . . . . . . . . . . . 180 8 ComputerVisioninVR 181 8.1 TheMathematicalLanguageofGeometricComputerVision 183 8.2 Cameras . . . . . . . . . . . . . . . . . . . . . . . . . . 185 8.3 ABriefLookatSomeAdvancedIdeasinComputerVision 189 8.4 SoftwareLibrariesforComputerVision . . . . . . . . . . 214 8.5 Summary . . . . . . . . . . . . . . . . . . . . . . . . . 216 Bibliography . . . . . . . . . . . . . . . . . . . . . . . . . . . 217 9 Image-BasedRendering 219 9.1 GeneralApproachestoIBR . . . . . . . . . . . . . . . . 220 9.2 AcquiringImagesforIBR . . . . . . . . . . . . . . . . . 223 9.3 MosaicingandMakingPanoramicImages . . . . . . . . . 224 9.4 Summary . . . . . . . . . . . . . . . . . . . . . . . . . 230 Bibliography . . . . . . . . . . . . . . . . . . . . . . . . . . . 231 10 Stereopsis 235 10.1 Parallax . . . . . . . . . . . . . . . . . . . . . . . . . . 237 10.2 Head-MountedDisplays . . . . . . . . . . . . . . . . . . 246 10.3 Active,PassiveandOtherStereoscopicSystems . . . . . . 249 10.4 Summary . . . . . . . . . . . . . . . . . . . . . . . . . 256 Bibliography . . . . . . . . . . . . . . . . . . . . . . . . . . . 256 11 NavigationandMovementinVR 257 11.1 ComputerAnimation . . . . . . . . . . . . . . . . . . . 258 11.2 MovingandRotatingin3D . . . . . . . . . . . . . . . . 260 11.3 RoboticMotion . . . . . . . . . . . . . . . . . . . . . . 266 11.4 InverseKinematics . . . . . . . . . . . . . . . . . . . . . 271 11.5 Summary . . . . . . . . . . . . . . . . . . . . . . . . . 281 Bibliography . . . . . . . . . . . . . . . . . . . . . . . . . . . 282 SummingUp 283 (cid:1) (cid:1) (cid:1) (cid:1) (cid:1) (cid:1) (cid:1) (cid:1) x Contents II Practical Programs for VR 287 12 Tools,LibrariesandTemplatesforVR 289 12.1 TheHardwareEnvironment . . . . . . . . . . . . . . . . 290 12.2 SoftwareTools . . . . . . . . . . . . . . . . . . . . . . . 293 12.3 AFrameworkfortheApplications . . . . . . . . . . . . . 294 12.4 TheComponentObjectModel . . . . . . . . . . . . . . 296 12.5 Summary . . . . . . . . . . . . . . . . . . . . . . . . . 300 Bibliography . . . . . . . . . . . . . . . . . . . . . . . . . . . 301 13 Programming3DGraphicsinRealTime 303 13.1 VisualizingaVirtualWorldUsingOpenGL . . . . . . . . 304 13.2 SystemIndependencewiththeGLUTLibraries . . . . . . 333 13.3 VisualizingaVirtualWorldUsingDirect3D . . . . . . . . 336 13.4 Summary . . . . . . . . . . . . . . . . . . . . . . . . . 349 Bibliography . . . . . . . . . . . . . . . . . . . . . . . . . . . 351 14 High-Quality3DwithOpenGL2 353 14.1 OpenGLVersion2 . . . . . . . . . . . . . . . . . . . . . 354 14.2 UsingProgrammableShaders . . . . . . . . . . . . . . . 365 14.3 SomeBasicShaderPrograms . . . . . . . . . . . . . . . . 370 14.4 ProgrammableShadersinDirect3D . . . . . . . . . . . . 382 14.5 Summary . . . . . . . . . . . . . . . . . . . . . . . . . 382 Bibliography . . . . . . . . . . . . . . . . . . . . . . . . . . . 383 15 UsingMultimediainVR 385 15.1 ABriefOverviewofDirectShow . . . . . . . . . . . . . 386 15.2 Methodology . . . . . . . . . . . . . . . . . . . . . . . 391 15.3 AMoviePlayer . . . . . . . . . . . . . . . . . . . . . . . 393 15.4 VideoSources . . . . . . . . . . . . . . . . . . . . . . . 401 15.5 CustomFiltersandUtilityPrograms . . . . . . . . . . . . 406 15.6 PlayingMoviesorLiveVideointoTextures . . . . . . . . 413 15.7 Summary . . . . . . . . . . . . . . . . . . . . . . . . . 431 Bibliography . . . . . . . . . . . . . . . . . . . . . . . . . . . 431 16 ProgrammingStereopsis 433 16.1 DisplayAdapterHardwareforStereopsis . . . . . . . . . 434 16.2 FileFormatsforStoringStereoscopicImages . . . . . . . . 438 16.3 AFileFormatforStereoMovies . . . . . . . . . . . . . . 441 (cid:1) (cid:1) (cid:1) (cid:1) (cid:1) (cid:1) (cid:1) (cid:1) Contents xi 16.4 DisplayingStereoscopicImages . . . . . . . . . . . . . . 441 16.5 AStereoscopicMoviePlayer . . . . . . . . . . . . . . . . 446 16.6 CapturingStereoPicturesfromaPairofVideoCameras . . 459 16.7 MakingaStereoMoviefromImageSequences . . . . . . . 467 16.8 Summary . . . . . . . . . . . . . . . . . . . . . . . . . 475 Bibliography . . . . . . . . . . . . . . . . . . . . . . . . . . . 475 17 ProgrammingInputandForceFeedback 477 17.1 DirectInput . . . . . . . . . . . . . . . . . . . . . . . . 479 17.2 ForceFeedbackwithDirectInput . . . . . . . . . . . . . 484 17.3 HapticSoftwareLibrariesandTools . . . . . . . . . . . . 489 17.4 Middleware . . . . . . . . . . . . . . . . . . . . . . . . 494 17.5 InterfacingCustomVRHardwarewiththeApplications . 496 17.6 Summary . . . . . . . . . . . . . . . . . . . . . . . . . 505 Bibliography . . . . . . . . . . . . . . . . . . . . . . . . . . . 505 18 BuildingontheBasics,SomeProjectsinVR 507 18.1 VideoEditing . . . . . . . . . . . . . . . . . . . . . . . 508 18.2 Stereo Movie and Picture Output for a Head-Mounted Display. . . . . . . . . . . . . . . . . . . . . . . . . . . 510 18.3 VideoProcessing . . . . . . . . . . . . . . . . . . . . . . 510 18.4 Chroma-Keying . . . . . . . . . . . . . . . . . . . . . . 511 18.5 AMulti-ProjectorVRTheaterSystem . . . . . . . . . . . 514 18.6 UsingImage-ProcessingandComputer-Vision Libraries . . 520 18.7 AugmentedReality(AR) . . . . . . . . . . . . . . . . . . 521 18.8 VirtualSculptingin3D . . . . . . . . . . . . . . . . . . 526 18.9 Summary . . . . . . . . . . . . . . . . . . . . . . . . . 534 Bibliography . . . . . . . . . . . . . . . . . . . . . . . . . . . 534 A RotationwithQuaternions 537 A.1 TheQuaternion . . . . . . . . . . . . . . . . . . . . . . 538 A.2 QuaternionsandRotation . . . . . . . . . . . . . . . . . 539 A.3 ConvertingaMatrixtoaQuaternion . . . . . . . . . . . 542 A.4 ConvertingaQuaterniontoEulerAngles . . . . . . . . . 542 A.5 InterpolatingQuaternions . . . . . . . . . . . . . . . . . 544 B TheGeneralizedInverse 547 C AligningTwoImagesinaPanoramicMosaic 549 (cid:1) (cid:1) (cid:1) (cid:1) (cid:1) (cid:1) (cid:1) (cid:1) xii Contents D AMinimalWindowsTemplateProgram 557 E AnMFCTemplateProgram 565 F TheCOMinPractice 579 F.1 UsingCOM . . . . . . . . . . . . . . . . . . . . . . . . 579 F.2 COMRecipes . . . . . . . . . . . . . . . . . . . . . . . 581 Index 585 (cid:1) (cid:1) (cid:1) (cid:1)

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.