词条 | 3D游戏引擎设计(实时计算机图形学的应用方法) |
释义 | 《3D游戏引擎设计实时计算机图形学的应用方法(英文版·第二版)》深入剖析了3D游戏引擎的设计,书中许多内容对于更好地理解3D计算机图形学也极有帮助。《3D游戏引擎设计实时计算机图形学的应用方法(英文版·第二版)》首先介绍了几何转换和坐标系统等较基础的内容,然后介绍曲线、渲染、效果等高级知识。《3D游戏引擎设计实时计算机图形学的应用方法(英文版·第二版)》基于作者自身在游戏产业中的工作、研究经验,提供了算法、编程技术、代码等大量实用信息,对于游戏设计者及相应的编程人员来说,是一本非常有价值的参考书。 版权信息书 名: 3D游戏引擎设计(实时计算机图形学的应用方法) 作 者:(美国)DavidH.Eberly 出版社: 人民邮电出版社 出版时间: 2009 ISBN: 9787115195531 开本: 16 定价: 138.00 元 内容简介《3D游戏引擎设计实时计算机图形学的应用方法(英文版·第二版)》深入剖析了3D游戏引擎的设计,书中许多内容对于更好地理解3D计算机图形学也极有帮助。《3D游戏引擎设计实时计算机图形学的应用方法(英文版·第二版)》首先介绍了几何转换和坐标系统等较基础的内容,然后介绍曲线、渲染、效果等高级知识。《3D游戏引擎设计实时计算机图形学的应用方法(英文版·第二版)》基于作者自身在游戏产业中的工作、研究经验,提供了算法、编程技术、代码等大量实用信息,对于游戏设计者及相应的编程人员来说,是一本非常有价值的参考书。 《3D游戏引擎设计实时计算机图形学的应用方法(英文版·第二版)》适合高等院校相关专业的师生、接受游戏软件开发培训的学生、相关技术人员及游戏开发人员阅读。 作者简介DavidH.Eberly著名游戏开发大师。实时三维游戏引擎Netlmmerse和Gamebryo(支持了文明、辐射和战锤等著名游戏)的核心开发者之一。目前是GeometricTools公司总裁,主持设计了实时三维游戏引擎WildMagic。他拥有数学和计算机科学两个博士学位。除本书外,他还著有GamePhysics和3DGameEngineArchitecture等名著。 编辑推荐《3D游戏引擎设计实时计算机图形学的应用方法(英文版·第二版)》是3D游戏引擎设计的经典著作,是作者多年游戏开发工作经验的结晶。书中以一个真实的引擎WildMagic为例,对3D游戏引擎的开发进行了全面而且深入的阐释,不仅讲述了必要的数学、物理和图形学理论知识和基本算法,还第一次揭示了设计和构建一个真实的实时图形引擎所需的各种复杂技术和过程。内容涵盖图形系统、软件和硬件渲染、场景图形、基于控制器的动画、空间排序、碰撞检测、数值方法、内存管理等。书中附有大量代码示例,完整实现了核心算法。 国内第1本讲述3D游戏引擎设计的书。 目录Chapter1 Introduction 1 1.1 TheEvolutionofGraphicsHardwareandGames 1 1.2 TheEvolutionofThisBookandItsSoftware 2 1.3 ASummaryoftheChapters 3 Chapter2 TheGraphicsSystem 7 2.1 TheFoundation 8 2.1.1 CoordinateSystems 9 2.1.2 HandednessandCrossProducts 10 2.1.3 PointsandVectors 15 2.2 Transformations 18 2.2.1 LinearTransformations 18 2.2.2 AffineTransformations 29 2.2.3 ProjectiveTransformations 31 2.2.4 PropertiesofPerspectiveProjection 35 2.2.5 HomogeneousPointsandMatrices 40 2.3 Cameras 43 2.3.1 ThePerspectiveCameraModel 43 2.3.2 ModelorObjectSpace 48 2.3.3 WorldSpace 48 2.3.4 View,Camera,orEyeSpace 50 2.3.5 Clip,Projection,orHomogeneousSpace 52 2.3.6 WindowSpace 56 2.3.7 PuttingThemAllTogether 58 2.4 CullingandClipping 66 2.4.1 ObjectCulling 66 2.4.2 Back-FaceCulling 67 2.4.3 ClippingtotheViewFrustum 70 2.5 Rasterizing 77 2.5.1 LineSegments 77 2.5.2 Circles 82 2.5.3 Ellipses 84 2.5.4 Triangles 89 2.6 VertexAttributes 92 2.6.1 Colors 92 2.6.2 LightingandMaterials 92 2.6.3 Textures 99 2.6.4 Transparency,Opacity,andBlending 117 2.6.5 Fog 122 2.6.6 AndManyMore 123 2.6.7 RasterizingAttributes 124 2.7 IssuesofSoftware,Hardware,andAPIs 125 2.7.1 AGeneralDiscussion 125 2.7.2 PortabilityversusPerformance 127 2.8 APIConventions 128 2.8.1 MatrixRepresentationandStorage 129 2.8.2 MatrixComposition 134 2.8.3 ViewMatrices 134 2.8.4 ProjectionMatrices 136 2.8.5 WindowHandedness 139 2.8.6 Rotations 140 2.8.7 FastComputationsUsingtheGraphicsAPI 143 Chapter3 Renderers 147 3.1 SoftwareRendering 149 3.1.1 VertexShaders 149 3.1.2 Back-FaceCulling 151 3.1.3 Clipping 154 3.1.4 Rasterizing 158 3.1.5 EdgeBuffers 159 3.1.6 ScanLineProcessing 161 3.1.7 PixelShaders 164 3.1.8 StencilBuffering 167 3.1.9 DepthBuffering 169 3.1.10 AlphaBlending 170 3.1.11 ColorMasking 171 3.1.12 TextureSampling 171 3.1.13 FrameBuffers 172 3.2 HardwareRendering 173 3.3 AnAbstractRenderingAPI 175 3.3.1 ConstructionandDestruction 175 3.3.2 CameraManagement 176 3.3.3 Global-StateManagement 177 3.3.4 BufferClearing 178 3.3.5 ObjectDrawing 179 3.3.6 Textand2DDrawing 180 3.3.7 Miscellaneous 180 3.3.8 ResourceManagement 182 3.4 TheHeartoftheRenderer 194 3.4.1 DrawingaScene 195 3.4.2 DrawingaGeometricPrimitive 198 3.4.3 ApplyinganEffect 199 3.4.4 LoadingandParsingShaderPrograms 201 3.4.5 ValidationofShaderPrograms 213 Chapter4 SceneGraphs 217 4.1 SceneGraphDesignIssues 217 4.1.1 TheCoreClasses 221 4.1.2 SpatialHierarchyDesign 226 4.1.3 SharingofObjects 230 4.2 GeometricState 233 4.2.1 VertexBuffersandIndexBuffers 233 4.2.2 Transformations 234 4.2.3 BoundingVolumes 244 4.2.4 GeometricTypes 251 4.3 RenderState 259 4.3.1 GlobalState 259 4.3.2 Lights 261 4.3.3 Effects 266 4.4 TheUpdatePass 268 4.4.1 Geometric-StateUpdates 268 4.4.2 Render-StateUpdates 280 4.5 TheCullingPass 289 4.5.1 HierarchicalCulling 293 4.5.2 SortedCulling 296 4.6 TheDrawingPass 297 4.6.1 Single-PassDrawing 298 4.6.2 Single-Effect,MultipassDrawing 302 4.6.3 Multiple-EffectDrawing 304 4.7 SceneGraphCompilers 305 4.7.1 ASceneGraphasanExpression 307 4.7.2 SemanticsofCompilation 311 Chapter5 Controller-BasedAnimation 315 5.1 KeyframeAnimation 317 5.1.1 InterpolationofPosition 317 5.1.2 InterpolationofOrientation 318 5.1.3 InterpolationofScale 318 5.2 KeyframeCompression 320 5.2.1 FittingPointswithaB-SplineCurve 321 5.2.2 EvaluationofaB-SplineCurve 325 5.2.3 OptimizedEvaluationforDegree3 333 5.3 InverseKinematics 339 5.3.1 NumericalSolutionbyJacobianMethods 341 5.3.2 NumericalSolutionbyNonlinearOptimization 342 5.3.3 NumericalSolutionbyCyclicCoordinateDescent 342 5.4 Skinning 347 5.5 VertexMorphing 349 5.6 ParticleSystems 350 Chapter6 SpatialSorting 353 6.1 BinarySpacePartitioningTrees 354 6.1.1 BSPTreeConstruction 355 6.1.2 BSPTreeUsage 357 6.2 Node-BasedSorting 365 6.3 Portals 366 6.4 User-DefinedMaps 375 6.5 OcclusionCulling 375 Chapter7 LevelofDetail 377 7.1 SpritesandBillboards 378 7.2 DiscreteLevelofDetail 379 7.3 ContinuousLevelofDetail 380 7.3.1 SimplificationUsingQuadricErrorMetrics 380 7.3.2 ReorderingofVerticesandIndices 385 7.3.3 Terrain 386 7.4 InfiniteLevelofDetail 387 Chapter8 CollisionDetection 389 8.1 TheMethodofSeparatingAxes 393 8.1.1 ExtremaofConvexPolygonsorConvexPolyhedra 394 8.1.2 StationaryObjects 404 8.1.3 ObjectsMovingwithConstantLinearVelocity 412 8.1.4 OrientedBoundingBoxes 436 8.2 FindingCollisionsbetweenMovingObjects 444 8.2.1 Pseudodistance 444 8.2.2 ContactbetweenMovingIntervals 446 8.2.3 ComputingtheFirstTimeofContact 448 8.2.4 EstimatingtheFirstDerivative 453 8.3 ADynamicCollisionDetectionSystem 455 8.3.1 TheAbstractBaseClass 455 8.3.2 PseudodistancesforSpecificPairsofObjectTypes 461 8.3.3 CollisionCullingwithAxis-AlignedBoundingBoxes 465 8.4 ObjectPicking 472 8.4.1 ConstructingaPickRay 472 8.4.2 SceneGraphSupport 475 8.4.3 StayingonTopofThings 479 8.4.4 StayingOutofThings 481 8.5 PathfindingtoAvoidCollisions 481 8.5.1 Environments,Levels,andRooms 482 8.5.2 MovingbetweenRooms 486 8.5.3 MovingbetweenLevels 486 8.5.4 MovingthroughtheOutdoorEnvironment 488 8.5.5 Blueprints 488 8.5.6 VisibilityGraphs 489 8.5.7 EnvelopeConstruction 494 8.5.8 BasicDataStructures 503 8.5.9 EfficientCalculationoftheVisibilityGraph 504 Chapter9 Physics 507 9.1 ParticleSystems 508 9.2 Mass-SpringSystems 510 9.2.1 CurveMasses 510 9.2.2 SurfaceMasses 513 9.2.3 VolumeMasses 516 9.2.4 ArbitraryConfigurations 519 9.3 DeformableBodies 521 9.4 RigidBodies 522 9.4.1 TheRigidBodyClass 525 9.4.2 ComputingtheInertiaTensor 527 Chapter10 StandardObjects 529 10.1 LinearComponents 529 10.2 PlanarComponents 532 10.3 Boxes 534 10.4 Quadrics 535 10.4.1 Spheres 535 10.4.2 Ellipsoids 535 10.4.3 Cylinders 537 10.4.4 Cones 537 10.5 Sphere-SweptVolumes 538 10.5.1 Capsules 539 10.5.2 Lozenges 539 Chapter11 Curves 541 11.1 Definitions 542 11.2 ReparameterizationbyArcLength 543 11.3 B′ezierCurves 545 11.3.1 Definitions 545 11.3.2 Evaluation 545 11.3.3 DegreeElevation 546 11.3.4 DegreeReduction 546 11.4 Natural,Clamped,andClosedCubicSplines 548 11.4.1 NaturalSplines 550 11.4.2 ClampedSplines 550 11.4.3 ClosedSplines 550 11.5 B-SplineCurves 551 11.5.1 TypesofKnotVectors 552 11.5.2 Evaluation 553 11.5.3 LocalControl 558 11.5.4 ClosedCurves 558 11.6 NURBSCurves 560 11.7 Tension-Continuity-BiasSplines 562 11.8 ParametricSubdivision 566 11.8.1 SubdivisionbyUniformSampling 566 11.8.2 SubdivisionbyArcLength 566 11.8.3 SubdivisionbyMidpointDistance 567 11.8.4 FastSubdivisionforCubicCurves 568 11.9 OrientationofObjectsonCurvedPaths 570 11.9.1 OrientationUsingtheFrenetFrame 571 11.9.2 OrientationUsingaFixedUp-Vector 571 Chapter12 Surfaces 573 12.1 Introduction 573 12.2 B′ezierRectanglePatches 574 12.2.1 Definitions 574 12.2.2 Evaluation 575 12.2.3 DegreeElevation 575 12.2.4 DegreeReduction 576 12.3 B′ezierTrianglePatches 578 12.3.1 Definitions 578 12.3.2 Evaluation 578 12.3.3 DegreeElevation 580 12.3.4 DegreeReduction 580 12.4 B-SplineRectanglePatches 582 12.5 NURBSRectanglePatches 583 12.6 SurfacesBuiltfromCurves 584 12.6.1 CylinderSurfaces 584 12.6.2 GeneralizedCylinderSurfaces 585 12.6.3 RevolutionSurfaces 586 12.6.4 TubeSurfaces 586 12.7 ParametricSubdivision 587 12.7.1 SubdivisionofRectanglePatches 587 12.7.2 SubdivisionofTrianglePatches 602 Chapter13 ContainmentMethods 609 13.1 Spheres 609 13.1.1 PointinSphere 609 13.1.2 SphereContainingPoints 610 13.1.3 MergingSpheres 616 13.2 Boxes 617 13.2.1 PointinBox 617 13.2.2 BoxContainingPoints 618 13.2.3 MergingBoxes 625 13.3 Capsules 627 13.3.1 PointinCapsule 627 13.3.2 CapsuleContainingPoints 628 13.3.3 MergingCapsules 629 13.4 Lozenges 630 13.4.1 PointinLozenge 631 13.4.2 LozengeContainingPoints 631 13.4.3 MergingLozenges 633 13.5 Cylinders 634 13.5.1 PointinCylinder 634 13.5.2 CylinderContainingPoints 634 13.5.3 Least-SquaresLineMovedtoMinimum-AreaCenter 635 13.5.4 MergingCylinders 635 13.6 Ellipsoids 636 13.6.1 PointinEllipsoid 636 13.6.2 EllipsoidContainingPoints 637 13.6.3 MergingEllipsoids 638 Chapter14 DistanceMethods 639 14.1 PointtoLinearComponent 639 14.1.1 PointtoLine 640 14.1.2 PointtoRay 640 14.1.3 PointtoSegment 641 14.2 LinearComponenttoLinearComponent 642 14.2.1 LinetoLine 642 14.2.2 LinetoRay 643 14.2.3 LinetoSegment 644 14.2.4 RaytoRay 645 14.2.5 RaytoSegment 645 14.2.6 SegmenttoSegment 645 14.3 PointtoTriangle 646 14.4 LinearComponenttoTriangle 651 14.4.1 LinetoTriangle 651 14.4.2 RaytoTriangle 654 14.4.3 SegmenttoTriangle 654 14.5 PointtoRectangle 655 14.6 LinearComponenttoRectangle 657 14.6.1 LinetoRectangle 657 14.6.2 RaytoRectangle 659 14.6.3 SegmenttoRectangle 660 14.7 TriangleorRectangletoTriangleorRectangle 661 14.8 PointtoOrientedBox 663 14.9 LinearComponenttoOrientedBox 663 14.9.1 LinetoOrientedBox 664 14.9.2 RaytoOrientedBox 666 14.9.3 SegmenttoOrientedBox 666 14.10 TriangletoOrientedBox 667 14.11 RectangletoOrientedBox 669 14.12 OrientedBoxtoOrientedBox 670 14.13 Miscellaneous 672 14.13.1 PointtoEllipse 672 14.13.2 PointtoEllipsoid 673 14.13.3 PointtoQuadraticCurveortoQuadricSurface 674 14.13.4 PointtoCirclein3D 675 14.13.5 CircletoCirclein3D 676 Chapter15 IntersectionMethods 681 15.1 LinearComponentsandConvexObjects 681 15.2 LinearComponentandPlanarComponent 684 15.3 LinearComponentandOrientedBox 686 15.3.1 Test-IntersectionQuery 686 15.3.2 Find-IntersectionQuery 693 15.4 LinearComponentandSphere 698 15.4.1 LineandSphere 698 15.4.2 RayandSphere 700 15.4.3 SegmentandSphere 701 15.5 LineandSphere-SweptVolume 703 15.5.1 LineandCapsule 703 15.5.2 LineandLozenge 708 15.6 LineandQuadricSurface 709 15.6.1 LineandEllipsoid 709 15.6.2 LineandCylinder 710 15.6.3 LineandCone 710 15.7 CullingObjectsbyPlanes 710 15.7.1 OrientedBoxes 711 15.7.2 Spheres 712 15.7.3 Capsules 712 15.7.4 Lozenges 713 15.7.5 Ellipsoids 713 15.7.6 Cylinders 715 15.7.7 Cones 716 15.7.8 ConvexPolygonsorConvexPolyhedra 717 Chapter16 NumericalMethods 719 16.1 SystemsofEquations 719 16.1.1 LinearSystems 719 16.1.2 PolynomialSystems 720 16.2 Eigensystems 722 16.2.1 ExtremaofQuadraticForms 722 16.2.2 ExtremaofConstrainedQuadraticForms 723 16.3 Least-SquaresFitting 724 16.3.1 LinearFittingofPoints(x,f(x)) 724 16.3.2 LinearFittingofPointsUsingOrthogonalRegression 725 16.3.3 PlanarFittingofPoints(x,y,f(x,y)) 726 16.3.4 PlanarFittingofPointsUsingOrthogonalRegression 726 16.3.5 FittingaCircleto2DPoints 727 16.3.6 FittingaSphereto3DPoints 729 16.3.7 FittingaQuadraticCurveto2DPoints 731 16.3.8 FittingaQuadricSurfaceto3DPoints 731 16.4 Minimization 732 16.4.1 MethodsinOneDimension 732 16.4.2 MethodsinManyDimensions 733 16.5 RootFinding 736 16.5.1 MethodsinOneDimension 736 16.5.2 MethodsinManyDimensions 740 16.6 Integration 742 16.6.1 RombergIntegration 742 16.6.2 GaussianQuadrature 746 16.7 DifferentialEquations 747 16.7.1 OrdinaryDifferentialEquations 747 16.7.2 PartialDifferentialEquations 750 16.8 FastFunctionEvaluation 754 16.8.1 SquareRootandInverseSquareRoot 754 16.8.2 Sine,Cosine,andTangent 755 16.8.3 InverseTangent 756 Chapter17 Rotations 759 17.1 RotationMatrices 759 17.1.1 Axis/AngletoMatrix 760 17.1.2 MatrixtoAxis/Angle 762 17.1.3 Interpolation 763 17.2 Quaternions 764 17.2.1 TheLinearAlgebraicViewofQuaternions 766 17.2.2 RotationofaVector 769 17.2.3 ProductofRotations 769 17.2.4 TheClassicalViewofQuaternions 770 17.2.5 Axis/AngletoQuaternion 772 17.2.6 QuaterniontoAxis/Angle 773 17.2.7 MatrixtoQuaternion 773 17.2.8 QuaterniontoMatrix 773 17.2.9 Interpolation 774 17.3 EulerAngles 774 17.4 PerformanceIssues 777 17.5 TheCurseofNonuniformScaling 778 17.5.1 Gram-SchmidtOrthonormalization 779 17.5.2 Eigendecomposition 781 17.5.3 PolarDecomposition 781 17.5.4 SingularValueDecomposition 781 Chapter18 Object-OrientedInfrastructure 783 18.1 Object-OrientedSoftwareConstruction 783 18.1.1 SoftwareQuality 784 18.1.2 Modularity 785 18.1.3 Reusability 787 18.1.4 FunctionsandData 788 18.1.5 ObjectOrientation 789 18.2 Style,NamingConventions,andNamespaces 790 18.3 Run-TimeTypeInformation 793 18.3.1 Single-InheritanceSystems 793 18.3.2 Multiple-InheritanceSystems 797 18.3.3 MacroSupport 799 18.4 Templates 800 18.5 SharedObjectsandReferenceCounting 802 18.6 Streaming 808 18.6.1 TheStreamAPI 809 18.6.2 TheObjectAPI 812 18.7 NamesandUniqueIdentifiers 819 18.7.1 NameString 820 18.7.2 UniqueIdentification 820 18.8 InitializationandTermination 822 18.8.1 PotentialProblems 822 18.8.2 AGenericSolutionforClasses 825 18.9 AnApplicationLayer 831 18.9.1 ProcessingCommand-LineParameters 832 18.9.2 TheApplicationClass 836 18.9.3 TheConsoleApplicationClass 839 18.9.4 TheWindowApplicationClass 842 18.9.5 TheWindowApplication3Class 849 18.9.6 ManagingtheEngines 867 Chapter19 MemoryManagement 873 19.1 MemoryBudgetsforGameConsoles 873 19.2 LeakDetectionandCollectingStatistics 875 19.3 GeneralMemoryManagementConcepts 882 19.3.1 AllocationUsingSequential-FitMethods 882 19.3.2 AllocationUsingBuddy-SystemMethods 891 19.3.3 AllocationUsingSegregated-StorageMethods 895 19.3.4 MemoryCompaction 895 Chapter20 SpecialEffectsUsingShaders 897 20.1 VertexColors 897 20.2 LightingandMaterials 899 20.2.1 AmbientLights 901 20.2.2 DirectionalLights 902 20.2.3 PointLights 903 20.2.4 Spotlights 904 20.3 Textures 909 20.4 Multitextures 911 20.5 BumpMaps 914 20.5.1 GeneratingNormalMaps 914 20.5.2 GeneratingTangent-SpaceInformation 916 20.5.3 TheShaderPrograms 919 20.6 GlossMaps 923 20.7 SphereMaps 926 20.8 CubeMaps 929 20.9 Refraction 932 20.10 PlanarReflection 935 20.11 PlanarShadows 939 20.12 ProjectedTextures 943 20.13 ShadowMaps 945 20.14 VolumetricFog 947 20.15 Skinning 950 20.16 Iridescence 951 20.17 WaterEffects 955 Appendix CreatingaShaderinWildMagic 957 A.1 ShaderProgramsforanIllustrativeApplication 958 A.2 CreatingtheGeometricData 963 A.3 AClasslessShaderEffect 965 A.4 CreatingaClassDerivedfromShaderEffect 968 A.5 DynamicUpdatesfortheShaderConstants 970 References 973 Index 981 AbouttheCD-ROM 1017 …… |
随便看 |
百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。