3D遊戲引擎設計(實時計算機圖形學的套用方法)

3D遊戲引擎設計(實時計算機圖形學的套用方法)

《3D遊戲引擎設計實時計算機圖形學的套用方法(英文版·第二版)》深入剖析了3D遊戲引擎的設計,書中許多內容對於更好地理解3D計算機圖形學也極有幫助。《3D遊戲引擎設計實時計算機圖形學的套用方法(英文版·第二版)》首先介紹了幾何轉換和坐標系統等較基礎的內容,然後介紹曲線、渲染、效果等高級知識。《3D遊戲引擎設計實時計算機圖形學的套用方法(英文版·第二版)》基於作者自身在遊戲產業中的工作、研究經驗,提供了算法、編程技術、代碼等大量實用信息,對於遊戲設計者及相應的編程人員來說,是一本非常有價值的參考書。

基本介紹

  • 書名:3D遊戲引擎設計(實時計算機圖形學的套用方法)
  • 作者:(美國)DavidH.Eberly
  • ISBN:9787115195531
  • 定價:138.00 元
  • 出版社人民郵電出版社
  • 出版時間:2009年
  • 開本:16
內容簡介,作者簡介,編輯推薦,目錄,

內容簡介

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
……

相關詞條

熱門詞條

聯絡我們