𝔖 Scriptorium
✦   LIBER   ✦

πŸ“

3D Game Engine Design: A Practical Approach to Real-Time Computer Graphics

✍ Scribed by Eberly, David H


Publisher
CRC Press
Year
2006
Tongue
English
Leaves
1043
Series
The Morgan Kaufmann Series in Interactive 3D Technology
Category
Library

⬇  Acquire This Volume

No coin nor oath required. For personal study only.

✦ Synopsis


A major revision of the international bestseller on game programming!

Graphics hardware has evolved enormously in the last decade. Hardware can now be directly controlled through techniques such as shader programming, which requires an entirely new thought process of a programmer. 3D Game Engine Design, Second Edition shows step-by-step how to make a shader-based graphics engine and how to tame the new technology. Much new material has been added, including more than twice the coverage of the essential techniques of scene graph management, as well as new methods for managing memory usage in the new generation of game consoles and portable game players. There are expanded discussions of collision detection, collision avoidance, and physics β€” all challenging subjects for developers.

β€’ Revision of the classic work on game engines β€” the core of any game.
β€’ Includes Wild Magic, a commercial quality game engine in source code that illustrates how to build a real-time rendering system from the lowest-level details all the way to a working game.
β€’ Fully revised and updated in 4 colors, including major new content on shader programming, physics,
and memory management for the next generation game consoles and portables.

✦ Table of Contents


Front Cover......Page 1
3D Game Engine Design: A Practical Approach to Real-Time Computer Graphics......Page 4
Copyright Page......Page 5
Trademarks......Page 6
About the Author......Page 7
CONTENTS......Page 8
Preface......Page 22
1.1 The Evolution of Graphics Hardware and Games......Page 24
1.2 The Evolution of This Book and Its Software......Page 25
1.3 A Summary of the Chapters......Page 26
Chapter 2 The Graphics System......Page 30
2.1 The Foundation......Page 31
2.2 Transformations......Page 41
2.3 Cameras......Page 66
2.4 Culling and Clipping......Page 89
2.5 Rasterizing......Page 100
2.6 Vertex Attributes......Page 115
2.7 Issues of Software, Hardware, and APIs......Page 148
2.8 API Conventions......Page 151
Chapter 3 Renderers......Page 170
3.1 Software Rendering......Page 172
3.2 Hardware Rendering......Page 196
3.3 An Abstract Rendering API......Page 198
3.4 The Heart of the Renderer......Page 217
4.1 Scene Graph Design Issues......Page 240
4.2 Geometric State......Page 256
4.3 Render State......Page 282
4.4 The Update Pass......Page 291
4.5 The Culling Pass......Page 312
4.6 The Drawing Pass......Page 320
4.7 Scene Graph Compilers......Page 328
Chapter 5 Controller-Based Animation......Page 338
5.1 Keyframe Animation......Page 340
5.2 Keyframe Compression......Page 343
5.3 Inverse Kinematics......Page 362
5.4 Skinning......Page 370
5.5 Vertex Morphing......Page 372
5.6 Particle Systems......Page 373
Chapter 6 Spatial Sorting......Page 376
6.1 Binary Space Partitioning Trees......Page 377
6.2 Node-Based Sorting......Page 388
6.3 Portals......Page 389
6.5 Occlusion Culling......Page 398
Chapter 7 Level of Detail......Page 400
7.1 Sprites and Billboards......Page 401
7.2 Discrete Level of Detail......Page 402
7.3 Continuous Level of Detail......Page 403
7.4 Infinite Level of Detail......Page 410
Chapter 8 Collision Detection......Page 412
8.1 The Method of Separating Axes......Page 416
8.2 Finding Collisions between Moving Objects......Page 467
8.3 A Dynamic Collision Detection System......Page 478
8.4 Object Picking......Page 495
8.5 Pathfinding to Avoid Collisions......Page 504
Chapter 9 Physics......Page 530
9.1 Particle Systems......Page 531
9.2 Mass-Spring Systems......Page 533
9.3 Deformable Bodies......Page 544
9.4 Rigid Bodies......Page 545
10.1 Linear Components......Page 552
10.2 Planar Components......Page 555
10.3 Boxes......Page 557
10.4 Quadrics......Page 558
10.5 Sphere-Swept Volumes......Page 561
Chapter 11 Curves......Page 564
11.1 Definitions......Page 565
11.2 Reparameterization by Arc Length......Page 566
11.3 BΓ©zier Curves......Page 568
11.4 Natural, Clamped, and Closed Cubic Splines......Page 571
11.5 B-Spline Curves......Page 574
11.6 NURBS Curves......Page 583
11.7 Tension-Continuity-Bias Splines......Page 585
11.8 Parametric Subdivision......Page 589
11.9 Orientation of Objects on Curved Paths......Page 593
12.1 Introduction......Page 596
12.2 BΓ©zier Rectangle Patches......Page 597
12.3 BΓ©zier Triangle Patches......Page 601
12.4 B-Spline Rectangle Patches......Page 605
12.5 NURBS Rectangle Patches......Page 606
12.6 Surfaces Built from Curves......Page 607
12.7 Parametric Subdivision......Page 610
13.1 Spheres......Page 632
13.2 Boxes......Page 640
13.3 Capsules......Page 650
13.4 Lozenges......Page 653
13.5 Cylinders......Page 657
13.6 Ellipsoids......Page 659
14.1 Point to Linear Component......Page 662
14.2 Linear Component to Linear Component......Page 665
14.3 Point to Triangle......Page 669
14.4 Linear Component to Triangle......Page 674
14.5 Point to Rectangle......Page 678
14.6 Linear Component to Rectangle......Page 680
14.7 Triangle or Rectangle to Triangle or Rectangle......Page 684
14.9 Linear Component to Oriented Box......Page 686
14.10 Triangle to Oriented Box......Page 690
14.11 Rectangle to Oriented Box......Page 692
14.12 Oriented Box to Oriented Box......Page 693
14.13 Miscellaneous......Page 695
15.1 Linear Components and Convex Objects......Page 704
15.2 Linear Component and Planar Component......Page 707
15.3 Linear Component and Oriented Box......Page 709
15.4 Linear Component and Sphere......Page 721
15.5 Line and Sphere-Swept Volume......Page 726
15.6 Line and Quadric Surface......Page 732
15.7 Culling Objects by Planes......Page 733
16.1 Systems of Equations......Page 742
16.2 Eigensystems......Page 745
16.3 Least-Squares Fitting......Page 747
16.4 Minimization......Page 755
16.5 Root Finding......Page 759
16.6 Integration......Page 765
16.7 Differential Equations......Page 770
16.8 Fast Function Evaluation......Page 777
17.1 Rotation Matrices......Page 782
17.2 Quaternions......Page 787
17.3 Euler Angles......Page 797
17.4 Performance Issues......Page 800
17.5 The Curse of Nonuniform Scaling......Page 801
18.1 Object-Oriented Software Construction......Page 806
18.2 Style, Naming Conventions, and Namespaces......Page 813
18.3 Run-Time Type Information......Page 816
18.4 Templates......Page 823
18.5 Shared Objects and Reference Counting......Page 825
18.6 Streaming......Page 831
18.7 Names and Unique Identifiers......Page 842
18.8 Initialization and Termination......Page 845
18.9 An Application Layer......Page 854
19.1 Memory Budgets for Game Consoles......Page 896
19.2 Leak Detection and Collecting Statistics......Page 898
19.3 General Memory Management Concepts......Page 905
20.1 Vertex Colors......Page 920
20.2 Lighting and Materials......Page 922
20.3 Textures......Page 932
20.4 Multitextures......Page 934
20.5 Bump Maps......Page 937
20.6 Gloss Maps......Page 946
20.7 Sphere Maps......Page 949
20.8 Cube Maps......Page 952
20.9 Refraction......Page 955
20.10 Planar Reflection......Page 958
20.11 Planar Shadows......Page 962
20.12 Projected Textures......Page 966
20.13 Shadow Maps......Page 968
20.14 Volumetric Fog......Page 970
20.15 Skinning......Page 973
20.16 Iridescence......Page 974
20.17 Water Effects......Page 978
Appendix Creating a Shader in Wild Magic......Page 980
A.1 Shader Programs for an Illustrative Application......Page 981
A.2 Creating the Geometric Data......Page 986
A.3 A Classless Shader Effect......Page 988
A.4 Creating a Class Derived from ShaderEffect......Page 991
A.5 Dynamic Updates for the Shader Constants......Page 993
References......Page 996
Index......Page 1004
About the CD-ROM......Page 1040

✦ Subjects


Computer Science;Programming;Technical


πŸ“œ SIMILAR VOLUMES


3D Game Engine Design: A Practical Appro
✍ David H. Eberly πŸ“‚ Library πŸ“… 2000 πŸ› Morgan Kaufmann 🌐 English

Now considered an essential reference in the game industry, <b>3D Game Engine Design is the first book to go beyond basic descriptions of algorithms and accurately demonstrate the complex engineering process required to design and build a real-time graphics engine to support physical realism. Faste

3D Game Engine Design. A Practical Appro
✍ Eberly D.H. πŸ“‚ Library πŸ“… 2000 πŸ› Morgan Kaufmann 🌐 English

3D Game Engine Design is the first book to go beyond basic descriptions of algorithms and accurately demonstrate the complex engineering process required to design and build a real-time graphics engine to support physical realism. Faster algorithms will always win out over faster processors and asse

3D game engine design: a practical appro
✍ David H. Eberly πŸ“‚ Library πŸ“… 2000 πŸ› Morgan Kaufmann 🌐 English

3D Game Engine Design is the first book to go beyond basic descriptions of algorithms and accurately demonstrate the complex engineering process required to design and build a real-time graphics engine to support physical realism. Faster algorithms will always win out over faster processors and asse

Wild Magic 0.2 (CD with example C++ sour
✍ David H. Eberly πŸ“‚ Library πŸ“… 2000 πŸ› Morgan Kaufman 🌐 English

# ReleaseNotes0p1.txt Release Notes for Wild Magic Version 0.1 This CD-ROM contains the initial release of the source code that accompanies the book "3D Game Engine Design: A Practical Approach to Real-Time Computer Graphics". There are a number of known issues about the code. As these issu