交互式计算机图形学:自预向下方法与OpenGL应用

内容简介

[

本书向读者讲授如何用OpenGL从初级阶段快速制作优质的交互式计算机图形实例,OpenGL是业界广泛采用的三维图形API,本书藉此向读者提供了在计算机图形学领域更广阔空间内发展的坚实基础。书中内容覆盖了计算机图形学基础课程所需的所有论题,如光景交互作用、图形明暗处理、图形建模、曲线与曲面、偏差预防、纹理映射和图形组合,还探讨了计算机硬件方面的问题。
本版为配合计算机图形学领域*新进展,增加了更具广度和深度的内容,包括图像处理、多重透视、并行透视等,并运用选择模式、仿真模拟、面向对象图形学与实景图像、射线跟踪等方法讲解了图形交互的内容。随书所附光盘包括OpenGL指令集参考、OpenGL手册、书中源码代码和附加的实用案例。
本书适用于高等院校本科高年级和研究生的计算机图形学、交互式计算机系统等课程。

]

作者简介

[

  EdwardAngeliscurrentlyaprofessorofCommputerSicience,ElectricalandComputerEngineeringandMediaArtsattheuniversityofnewmexico.HewasrecentlynamedtheDirectoroftheArttechCenteratUNMintheCollegeofFineArts.ProfessorAngelreceivedhisPh.D.inelectricalengineeringfromtheuniversityofSouthernCaliforniain1968andhassinceheldvisitingpositionsinSweden,India,andEngland.hispresentresearchinterestsfocusoncomputergraphicsandscientificvisualization.

]

目录

PrefaceChapter1GraphicsSystemsandModels1.1ApplicationsofComputerGraphics1.1.1DisplayofInformation1.1.2Design1.1.3SimulationandAnimation1.1.4UserInterfaces1.2AGraphicsSystem1.2.1PixelsandtheFrameBuffer1.2.2OutputDevices1.2.3InputDevices1.3Images:PhysicalandSynthetic1.3.1ObjectsandViewers1.3.2LightandImages1.3.3RayTracing1.4TheHumanVisualSystem1.5ThePinholeCamera1.6TheSynthetic-CameraModel1.7TheProgrammer’sInterface1.7.1ApplicationProgrammer’sInterfaces1.7.2ThePen-PlotterModel1.7.3Three-DimensionalAPIs1.7.4ASequenceofImages1.7.5TheModeling-RenderingParadigm1.8GraphicsArchitectures1.8.1DisplayProcessors1.8.2PipelineArchitectures1.8.3Transformations1.8.4Clipping1.8.5Projection1.8.6Rasterization1.8.7PerformanceCharacteristics1.9SummaryandNotes1.10SuggestedReadingsExercisesChapter2GraphicsProgramming2.1TheSierpinskiGasket2.2ProgrammingTwo-DimensionalApplications2.2.1CoordinateSystems2.3TheOpenGLAPI2.3.1GraphicsFunctions2.3.2TheGraphicsPipelineandStateMachines2.3.3TheOpenGLInterface2.4PrimitivesandAttributes2.4.1PolygonBasics2.4.2PolygonTypesinOpenGL2.4.3DrawingaSphere2.4.4Text2.4.5CurvedObjects2.4.6Attributes2.5Color2.5.1RGBColor2.5.2IndexedColor2.5.3SettingofColorAttributes2.6Viewing2.6.1Two-DimensionalViewing2.6.2TheOrthographicView2.6.3MatrixModes2.7ControlFunctions2.7.1InteractionwiththeWindowSystem2.7.2AspectRatioandViewports2.7.3Themain,display,andmyinitFunctions2.7.4ProgramStructure2.8TheGasketProgram2.9PolygonsandRecursion2.10TheThree-DimensionalGasket2.10.1UseofThree-DimensionalPoints2.10.2UseofPolygonsinThreeDimensions2.10.3Hidden-SurfaceRemoval2.11SummaryandNotes2.12SuggestedReadingsExercisesChapter3InputandInteraction3.1Interaction3.2InputDevices3.2.1PhysicalInputDevices3.2.2LogicalDevices3.2.3MeasureandTrigger3.2.4InputModes3.3ClientsandServers3.4DisplayLists3.4.1DefinitionandExecutionofDisplayLists3.4.2TextandDisplayLists3.4.3FontsinGLUT3.5ProgrammingEvent-DrivenInput3.5.1UsingthePointingDevice3.5.2WindowEvents3.5.3KeyboardEvents3.5.4TheDisplayandIdleCallbacks3.5.5WindowManagement3.6Menus3.7Picking3.7.1PickingandSelectionMode3.8ASimplePaintProgram3.9AnimatingInteractivePrograms3.9.1TheRotatingSquare3.9.2DoubleBuffering3.9.3OtherBufferingProblems3.10DesignofInteractivePrograms3.10.1Toolkits,Widgets,andtheFrameBuffer3.11LogicOperations3.11.1DrawingErasableLines3.11.2XORandColor3.11.3CursorsandOverlayPlanes3.12SummaryandNotes3.13SuggestedReadingsExercisesChapter4GeometricObjectsandTransformations4.1Scalars,Points,andVectors4.1.1TheGeometricView4.1.2Coordinate-FreeGeometry4.1.3TheMathematicalView:VectorandAffineSpaces4.1.4TheComputer-ScienceView4.1.5GeometricADTs4.1.6Lines4.1.7AffineSums4.1.8Convexity4.1.9DotandCrossProducts4.1.10Planes4.2Three-DimensionalPrimitives4.3CoordinateSystemsandFrames4.3.1RepresentationsandN-tuples4.3.2ChangesofCoordinateSystems4.3.3ExampleofChangeofRepresentation4.3.4HomogeneousCoordinates4.3.5ExampleofChangeinFrames4.3.6WorkingwithRepresentations4.3.7FramesandADTs4.3.8FramesinOpenGL4.4ModelingaColoredCube4.4.1ModelingofaCube4.4.2Inward-andOutward-PointingFaces4.4.3DataStructuresforObjectRepresentation4.4.4TheColorCube4.4.5BilinearInterpolation4.4.6VertexArrays4.5AffineTransformations4.6Translation,Rotation,andScaling4.6.1Translation4.6.2Rotation4.6.3Scaling4.7TransformationsinHomogeneousCoordinates4.7.1Translation4.7.2Scaling4.7.3Rotation4.7.4Shear4.8ConcatenationofTransformations4.8.1RotationAboutaFixedPoint4.8.2GeneralRotation4.8.3TheInstanceTransformation4.8.4RotationAboutanArbitraryAxis4.9OpenGLTransformationMatrices4.9.1TheCurrentTransformationMatrix4.9.2Rotation,Translation,andScaling4.9.3RotationAboutaFixedPointinOpenGL4.9.4OrderofTransformations4.9.5SpinningoftheCube4.9.6Loading,Pushing,andPoppingMatrices4.10InterfacestoThree-DimensionalApplications4.10.1UsingAreasoftheScreen4.10.2AVirtualTrackball4.10.3SmoothRotations4.10.4IncrementalRotation4.11Quaternions4.11.1ComplexNumbersandQuaternions4.11.2QuaternionsandRotation4.12SummaryandNotes4.13SuggestedReadingsExercisesChapter5Viewing5.1ClassicalandComputerViewing5.1.1ClassicalViewing5.1.2OrthographicProjections5.1.3AxonometricProjections5.1.4ObliqueProjections5.1.5PerspectiveViewing5.2ViewingwithaComputer5.3PositioningoftheCamera5.3.1PositioningoftheCameraFrame5.3.2TwoViewingAPIs5.3.3TheLook-AtFunction5.3.4OtherViewingAPIs5.4SimpleProjections5.4.1PerspectiveProjections5.4.2OrthogonalProjections5.5ProjectionsinOpenGL5.5.1PerspectiveinOpenGL5.5.2ParallelViewinginOpenGL5.6Hidden-SurfaceRemoval5.6.1Culling5.7WalkingThroughaScene5.8Parallel-ProjectionMatrices5.8.1ProjectionNormalization5.8.2Orthogonal-ProjectionMatrices5.8.3ObliqueProjections5.9Perspective-ProjectionMatrices5.9.1PerspectiveNormalization5.9.2OpenGLPerspectiveTransformations5.10ProjectionsandShadows5.11SummaryandNotes5.12SuggestedReadingsExercisesChapter6Shading6.1LightandMatter6.2LightSources6.2.1ColorSources6.2.2AmbientLight6.2.3PointSources6.2.4Spotlights6.2.5DistantLightSources6.3ThePhongReflectionModel6.3.1AmbientReflection6.3.2DiffuseReflection6.3.3SpecularReflection6.4ComputationofVectors6.4.1NormalVectors6.4.2AngleofReflection6.4.3UseoftheHalfwayVector6.4.4TransmittedLight6.5PolygonalShading6.5.1FlatShading6.5.2InterpolativeandGouraudShading6.5.3PhongShading6.6ApproximationofaSpherebyRecursiveSubdivision6.7LightSourcesinOpenGL6.8SpecificationofMaterialsinOpenGL6.9ShadingoftheSphereModel6.10GlobalRendering6.11SummaryandNotes6.12SuggestedReadingsExercisesChapter7DiscreteTechniques7.1Buffers7.2DigitalImages7.3WritesintoBuffers7.3.1WritingModes7.3.2WriteswithXOR7.4BitandPixelOperationsinOpenGL7.4.1OpenGLBuffersandthePixelPipeline7.4.2Bitmaps7.4.3RasterFonts7.4.4PixelsandImages7.4.5LookupTables7.4.6BuffersforPicking7.5MappingMethods7.6TextureMapping7.6.1Two-DimensionalTextureMapping7.6.2TextureMappinginOpenGL7.6.3TextureObjects7.6.4Multitexturing7.6.5TextureGeneration7.7EnvironmentalMaps7.8BumpMaps7.9CompositingTechniques7.9.1OpacityandBlending7.9.2ImageCompositing7.9.3BlendingandCompositinginOpenGL7.9.4Antialiasing7.9.5Back-to-FrontandFront-to-BackRendering7.9.6DepthCueingandFog7.10MultirenderingandtheAccumulationBuffer7.10.1SceneAntialiasing7.10.2BumpMappingandEmbossing7.10.3ImageProcessing7.10.4ImagingExtensions7.10.5OtherMultipassMethods7.11SamplingandAliasing7.11.1SamplingTheory7.11.2Reconstruction7.11.3Quantization7.12SummaryandNotes7.13SuggestedReadingsExercisesChapter8ImplementationofaRenderer8.1BasicImplementationStrategies8.2FourMajorTasks8.2.1Modeling8.2.2GeometricProcessing8.2.3Rasterization8.2.4Display8.3ImplementationofTransformations8.4Line-SegmentClipping8.4.1Cohen-SutherlandClipping8.4.2Liang-BarskyClipping8.5PolygonClipping8.6ClippingofOtherPrimitives8.6.1BoundingBoxesandVolumes8.6.2Curves,Surfaces,andText8.6.3ClippingintheFrameBuffer8.7ClippinginThreeDimensions8.8Hidden-SurfaceRemoval8.8.1Object-SpaceandImage-SpaceApproaches8.8.2SortingandHidden-SurfaceRemoval8.8.3Back-FaceRemoval8.8.4Thez-BufferAlgorithm8.8.5DepthSortandthePainter’sAlgorithm8.8.6TheScan-LineAlgorithm8.9ScanConversion8.10Bresenham’sAlgorithm8.11ScanConversionofPolygons8.11.1Inside-OutsideTesting8.11.2OpenGLandConcavePolygons8.11.3ScanConversionwiththez-Buffer8.11.4FillandSort8.11.5FloodFill8.11.6Scan-LineAlgorithms8.11.7Singularities8.12Antialiasing8.13DisplayConsiderations8.13.1ColorSystems8.13.2TheColorMatrix8.13.3GammaCorrection8.13.4DitheringandHalftoning8.14SummaryandNotes8.15ReferencesExercisesChapter9HierarchicalandObject-OrientedModeling9.1SymbolsandInstances9.2HierarchicalModels9.3ARobotArm9.4TreesandTraversal9.4.1AStack-BasedTraversal9.5UseofTreeDataStructures9.6Animation9.7GraphicalObjects9.7.1Methods,Attributes,andMessages9.7.2ACubeObject9.7.3ImplementingtheCubeObject9.7.4ObjectsandHierarchy9.7.5GeometricObjects9.8SceneGraphs9.9ASimpleSceneGraphAPI9.9.1TheNodeClass9.9.2GeometryNodes9.9.3CameraClass9.9.4LightsandMaterials9.9.5Transformations9.9.6TheRobotFigure9.9.7ImplementingtheViewer9.9.8ImplementingaNode9.10OtherTreeStructures9.10.1CSGTrees9.10.2ShadeTrees9.10.3BSPTrees9.10.4QuadtreesandOctrees9.11GraphicsandtheWeb9.11.1NetworksandProtocols9.11.2HypermediaandHTML9.11.3DatabasesandVRML9.11.4JAVAandApplets9.12SummaryandNotes9.13SuggestedReadingsExercisesChapter10CurvesandSurfaces10.1RepresentationofCurvesandSurfaces10.1.1ExplicitRepresentation10.1.2ImplicitRepresentations10.1.3ParametricForm10.1.4ParametricPolynomialCurves10.1.5ParametricPolynomialSurfaces10.2DesignCriteria10.3ParametricCubicPolynomialCurves10.4Interpolation10.4.1BlendingFunctions10.4.2TheCubicInterpolatingPatch10.5HermiteCurvesandSurfaces10.5.1TheHermiteForm10.5.2GeometricandParametricContinuity10.6BezierCurvesandSurfaces10.6.1BezierCurves10.6.2BezierSurfacePatches10.7CubicB-Splines10.7.1TheCubicB-SplineCurve10.7.2B-SplinesandBasis10.7.3SplineSurfaces10.8GeneralB-Splines10.8.1RecursivelyDefinedB-Splines10.8.2UniformSplines10.8.3NonuniformB-Splines10.8.4NURBS10.9RenderingofCurvesandSurfaces10.9.1PolynomialEvaluationMethods10.9.2RecursiveSubdivisionofBezierPolynomials10.9.3RenderingofOtherPolynomialCurvesbySubdivision10.9.4SubdivisionofBezierSurfaces10.10TheUtahTeapot10.11AlgebraicSurfaces10.11.1Quadrics10.11.2RenderingofSurfacesbyRayCasting10.11.3SubdivisionCurvesandSurfaces10.12CurvesandSurfacesinOpenGL10.12.1BezierCurves10.12.2BezierSurfaces10.12.3DisplayingtheTeapot10.12.4NURBSFunctions10.12.5Quadrics10.13SummaryandNotes10.14ReferencesandNotesExercisesChapter11ProceduralMethods11.1ReasonsforUsingProceduralModels11.2PhysicallyBasedModelsandParticleSystems11.3NewtonianParticles11.3.1IndependentParticles11.3.2SpringForces11.3.3AttractiveandRepulsiveForces11.4SolvingParticleSystems11.5Constraints11.5.1Collisions11.5.2ParticlesInsideaSphere11.5.3SoftConstraints11.6Language-BasedModels11.7RecursiveMethodsandFractals11.7.1RulersandLength11.7.2FractalDimension11.7.3MidpointDivisionandBrownianMotion11.7.4FractalMountains11.8TheMandelbrotSet11.9SummaryandNotes11.10SuggestedReadingsExercisesChapter12Visualization12.1Data Geometry12.2HeightFieldsandContours12.2.1Meshes12.2.2ContourPlots12.2.3MarchingSquares12.3VisualizingSurfacesandScalarFields12.3.1VolumetricDataSets12.3.2VisualizationofImplicitFunctions12.4IsosurfacesandMarchingCubes12.5MeshSimplification12.6DirectVolumeRendering12.6.1AssignmentofColorandOpacity12.6.2Splatting12.6.3VolumeRayTracing12.6.4TextureMappingofVolumes12.7Vector-FieldVisualization12.7.1Hedgehogs12.7.2Glyphs12.7.3Color12.7.4ParticleTracesandStreamlines12.8TensorVisualization12.9SummaryandNotes12.10SuggestedReadingsExercisesChapter13AdvancedRendering13.1GoingBeyondPipelineRendering13.2RayTracing13.3BuildingaSimpleRayTracer13.3.1RecursiveRayTracing13.3.2CalculatingIntersections13.3.3Ray-TracingVariations13.4TheRenderingEquation13.5Radiosity13.5.1TheRadiosityEquation13.5.2SolvingtheRadiosityEquation13.5.3ComputingFormFactors13.5.4CarryingOutRadiosity13.6Renderman13.7Large-ScaleRendering13.7.1Sort-MiddleRendering13.7.2Sort-LastRendering13.7.3Sort-FirstRendering13.8Image-BasedRendering13.8.1ASimpleExample13.9SummaryandNotes13.10SuggestedReadingsExercisesAppendixASampleProgramsAppendixBSpacesAppendixCMatricesReferencesFunctionIndexSubjectIndex

封面

交互式计算机图形学:自预向下方法与OpenGL应用

书名:交互式计算机图形学:自预向下方法与OpenGL应用

作者:(美)安杰尔(Angel.E.)

页数:719

定价:¥54.0

出版社:高等教育出版社

出版日期:2003-10-01

ISBN:9787040137248

PDF电子书大小:82MB 高清扫描完整版

百度云下载:http://www.chendianrong.com/pdf

发表评论

邮箱地址不会被公开。 必填项已用*标注