请输入您要查询的百科知识:

 

词条 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条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。

 

Copyright © 2004-2023 Cnenc.net All Rights Reserved
更新时间:2025/2/7 18:10:52