3D game engine design: a practical approach to real-time computer graphics
Gespeichert in:
1. Verfasser: | |
---|---|
Format: | Buch |
Sprache: | English |
Veröffentlicht: |
Amsterdam [u.a.]
Morgan Kaufman
2007
Boca Raton CRC Press, Taylor & Francis Group [2007] |
Ausgabe: | 2. ed. |
Schriftenreihe: | The Morgan Kaufmann series in interactive 3D technology
|
Schlagworte: | |
Online-Zugang: | Inhaltsverzeichnis |
Beschreibung: | XXII, 1018 Seiten Illustrationen, Diagramme |
ISBN: | 9780122290633 0122290631 |
Internformat
MARC
LEADER | 00000nam a2200000 c 4500 | ||
---|---|---|---|
001 | BV022465632 | ||
003 | DE-604 | ||
005 | 20231116 | ||
007 | t | ||
008 | 070614s2007 a||| |||| 00||| eng d | ||
020 | |a 9780122290633 |9 978-0-12-229063-3 | ||
020 | |a 0122290631 |9 0-12-229063-1 | ||
035 | |a (OCoLC)1074721191 | ||
035 | |a (DE-599)BVBBV022465632 | ||
040 | |a DE-604 |b ger |e rda | ||
041 | 0 | |a eng | |
049 | |a DE-92 |a DE-91G |a DE-523 |a DE-20 |a DE-473 | ||
082 | 0 | |a 006.66 | |
084 | |a ST 324 |0 (DE-625)143660: |2 rvk | ||
084 | |a ST 320 |0 (DE-625)143657: |2 rvk | ||
084 | |a DAT 758f |2 stub | ||
084 | |a 1 CD-ROM (12 cm) |2 sdnb | ||
100 | 1 | |a Eberly, David H. |e Verfasser |0 (DE-588)137009100 |4 aut | |
245 | 1 | 0 | |a 3D game engine design |b a practical approach to real-time computer graphics |c David H. Eberly |
250 | |a 2. ed. | ||
264 | 1 | |a Amsterdam [u.a.] |b Morgan Kaufman |c 2007 | |
264 | 1 | |a Boca Raton |b CRC Press, Taylor & Francis Group |c [2007] | |
300 | |a XXII, 1018 Seiten |b Illustrationen, Diagramme | ||
336 | |b txt |2 rdacontent | ||
337 | |b n |2 rdamedia | ||
338 | |b nc |2 rdacarrier | ||
490 | 0 | |a The Morgan Kaufmann series in interactive 3D technology | |
650 | 0 | 7 | |a Dreidimensionale Computergrafik |0 (DE-588)4133691-4 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a Programmierung |0 (DE-588)4076370-5 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a Computerspiel |0 (DE-588)4010457-6 |2 gnd |9 rswk-swf |
689 | 0 | 0 | |a Dreidimensionale Computergrafik |0 (DE-588)4133691-4 |D s |
689 | 0 | 1 | |a Computerspiel |0 (DE-588)4010457-6 |D s |
689 | 0 | 2 | |a Programmierung |0 (DE-588)4076370-5 |D s |
689 | 0 | |5 DE-604 | |
856 | 4 | 2 | |m GBV Datenaustausch |q application/pdf |u http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=015673225&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |3 Inhaltsverzeichnis |
999 | |a oai:aleph.bib-bvb.de:BVB01-015673225 |
Datensatz im Suchindex
_version_ | 1804136550584287232 |
---|---|
adam_text | 3D GAME ENGINE DESIGN A PRACTICAL APPROACH TO REAL-TIME COMPUTER
GRAPHICS SECOND EDITION DAVID H. EBERLY GEOMETRIE TOOLS, INC. AHHB _ JFW
H NEW YORK-OXFORD-PARIS-SAN DIEGO FL^^H 4M ARFCRGSBJLILHG, SAN
FRANCISCO * SINGAPORE * SYDNEY * TOKYO B^^H ^ ^ ELSEVIER MORGAN KAUFMANN
IS AN IMPRINT OF ELSEVIER MORGAN KAUFMANN PUBLISHERS CONTENTS TRADEMARKS
ABOUT THE AUTHOR PREFACE V VI XXI CHAPTER I INTRODUCTION 1.1 THE
EVOLUTION OF GRAPHICS HARDWARE AND GAMES 1.2 THE EVOLUTION OF THIS BOOK
AND ITS SOFTWARE 1.3 A SUMMARY OF THE CHAPTERS CHAPTER 2 THE GRAPHICS
SYSTEM 2.1 THE FOUNDATION 2.1.1 COORDINATE SYSTEMS 2.1.2 HANDEDNESS AND
CROSS PRODUCTS 2.1.3 POINTS AND VECTORS 2.2 TRANSFORMATIONS 2.2.1 LINEAR
TRANSFORMATIONS 2.2.2 AFFINE TRANSFORMATIONS 2.2.3 PROJECTIVE
TRANSFORMATIONS 2.2.4 PROPERTIES OF PERSPECTIVE PROJECTION 2.2.5
HOMOGENEOUS POINTS AND MATRICES 2.3 CAMERAS 2.3.1 THE PERSPECTIVE CAMERA
MODEL 2.3.2 MODEL OR OBJECT SPACE 2.3.3 WORLD SPACE 2.3.4 VIEW, CAMERA,
OR EYE SPACE 2.3.5 CLIP, PROJECTION, OR HOMOGENEOUS SPACE 2.3.6 WINDOW
SPACE 2.3.7 PUTTING THEM ALL TOGETHER 2.4 CULLING AND CLIPPING 2.4.1
OBJECT CULLING 9 10 15 18 18 29 31 35 40 43 43 48 48 50 52 56 58 66 66
VU VUEI CONTENTS CHAPTER 3 2.4.2 BACK-FACE CULLING 67 2.4.3 CLIPPING TO
THE VIEW FRUSTUM 70 2.5 RASTERIZING 77 2.5.1 LINE SEGMENTS 77 2.5.2
CIRCLES 82 2.5.3 ELLIPSES 84 2.5.4 TRIANGLES 89 2.6 VERTEX ATTRIBUTES 92
2.6.1 COLORS 92 2.6.2 LIGHTING AND MATERIALS 92 2.6.3 TEXTURES 99 2.6.4
TRANSPARENCY, OPACITY, AND BLENDING 117 2.6.5 FOG 122 2.6.6 AND MANY
MORE 123 2.6.7 RASTERIZING ATTRIBUTES 124 2.7 ISSUES OF SOFTWARE,
HARDWARE, AND APIS 125 2.7.1 A GENERAL DISCUSSION 125 2.7.2 PORTABILITY
VERSUS PERFORMANCE 127 2.8 API CONVENTIONS 128 2.8.1 MATRIX
REPRESENTATION AND STORAGE 129 2.8.2 MATRIX COMPOSITION 134 2.8.3
VIEWMATRICES 134 2.8.4 PROJECTION MATRICES 136 2.8.5 WINDOW HANDEDNESS
139 2.8.6 ROTATIONS 140 2.8.7 FAST COMPUTATIONS USING THE GRAPHICS API
143 RENDERERS 147 3.1 SOFTWARE RENDERING 149 149 151 154 158 159 161 164
167 169 3.1.10 ALPHA BLENDING 170 SOFTWARE RENDERING 3.1.1 3.1.2 3.1.3
3.1.4 3.1.5 3.1.6 3.1.7 3.1.8 3.1.9 VERTEX SHADERS BACK-FACE CULLING
CLIPPING RASTERIZING EDGE BUFFERS SCAN LINE PROCESSI* PIXEL SHADERS
STENCIL BUFFERING DEPTH BUFFERING CONTENTS IX CHAPTER 3.1.11 COLOR
MASKING 171 3.1.12 TEXTURE SAMPLING 171 3.1.13 FRAME BUFFERS 172 3.2
HARDWARE RENDERING 173 3.3 AN ABSTRACT RENDERING API 175 3.3.1
CONSTRUCTION AND DESTRUCTION 175 3.3.2 CAMERA MANAGEMENT 176 3.3.3
GLOBAL-STATE MANAGEMENT 177 3.3.4 BUFFER CLEARING 178 3.3.5 OBJECT
DRAWING 179 3.3.6 TEXT AND 2D DRAWING 180 3.3.7 MISCELLANEOUS 180 3.3.8
RESOURCE MANAGEMENT 182 3.4 THE HEART OF THE RENDERER 194 3.4.1 DRAWING
A SCENE 195 3.4.2 DRAWING A GEOMETRIE PRIMITIVE 198 3.4.3 APPLYING AN
EFFECT 199 3.4.4 LOADING AND PARSING SHADER PROGRAMS 201 3.4.5
VALIDATION OF SHADER PROGRAMS 213 SCENE GRAPHS 217 4.1 SCENE GRAPH
DESIGN ISSUES 217 4.1.1 THE CORE CLASSES 221 4.1.2 SPATIAL HIERARCHY
DESIGN 226 4.1.3 SHARING OFOBJECTS 230 4.2 GEOMETRIC STATE 233 4.2.1
VERTEX BUFFERS AND INDEX BUFFERS 233 4.2.2 TRANSFORMATIONS 234 4.2.3
BOUNDING VOLUMES 244 4.2.4 GEOMETRIC TYPES 251 4.3 RENDER STATE 259
4.3.1 GLOBAL STATE 259 4.3.2 LIGHTS 261 4.3.3 EFFECTS 266 4.4 THE UPDATE
PASS 268 4.4.1 GEOMETRIC-STATE UPDATES 268 4.4.2 RENDER-STATE UPDATES
280 X CONTENTS 4.5 THE CULLING PASS 4.5.1 HIERARCHICAL CULLING 4.5.2
SORTED CULLING 4.6 THE DRAWING PASS 4.6.1 SINGLE-PASS DRAWING 4.6.2
SINGLE-EFFECT, MULTIPASS DRAWING 4.6.3 MULTIPLE-EFFECT DRAWING 4.7 SCENE
GRAPH COMPILERS 4.7.1 A SCENE GRAPH AS AN EXPRESSION 4.7.2 SEMANTICS OF
COMPILATION 289 293 296 297 298 302 304 305 307 311 CHAPTER 5
CONTROLLER-BASED ANIMATION 5.1 KEYFRAME ANIMATION 5.1.1 INTERPOLATION OF
POSITION 5.1.2 INTERPOLATION OF ORIENTATION 5.1.3 INTERPOLATION OF SCALE
5.2 KEYFRAME COMPRESSION 5.2.1 FITTING POINTS WITH A B-SPLINE CURVE
5.2.2 EVALUATION OFAB-SPLINE CURVE 5.2.3 OPTIMIZED EVALUATION FOR DEGREE
3 5.3 INVERSE KLNEMATICS 5.3.1 NUMERICAL SOLUTION BY JACOBIAN METHODS
5.3.2 NUMERICAL SOLUTION BY NONLINEAR OPTIMIZATION 5.3.3 NUMERICAL
SOLUTION BY CYCLIC COORDINATE DESCENT 5.4 SKINNING 5.5 VERTEX MORPHING
5.6 PARTICLE SYSTEMS 315 317 317 318 318 320 321 325 333 339 341 342 342
347 349 350 CHAPTER SPATIAL SORTING 353 6.1 6.2 6.3 BINARY SPACE
PARTITIONING TREES 6.1.1 BSP TREE CONSTRUCTION 6.1.2 BSP TREE USAGE
NODE-BASED SORTING PORTALS 354 355 357 365 366 CONTENTS XI 6.4
USER-DEFINED MAPS 375 6.5 OCCLUSION CULLING 375 LEVEL OF DETAIL 377 7.1
SPRITES AND BILLBOARDS 378 7.2 DISCRETE LEVEL OF DETAIL 379 7.3
CONTINUOUS LEVEL OF DETAIL 380 7.3.1 SIMPLIFICATION USING QUADRIC ERROR
METRICS 380 7.3.2 REORDERING OFVERTICES AND INDICES 385 7.3.3 TERRAIN
386 7.4 INFINITE LEVEL OF DETAIL 387 COLLISION DETECTION 389 8.1 THE
METHOD OF SEPARATING AXES 393 8.1.1 EXTREMA OF CONVEX POLYGONS OR CONVEX
POLYHEDRA 394 8.1.2 STATIONARY OBJECTS 404 8.1.3 OBJECTS MOVING WITH
CONSTANT LINEAR VELOCITY 412 8.1.4 ORIENTED BOUNDING BOXES 436 8.2
FINDING COLLISIONS BETWEEN MOVING OBJECTS 444 8.2.1 PSEUDODISTANCE 444
8.2.2 CONTACT BETWEEN MOVING INTERVALS 446 8.2.3 COMPUTING THE FIRST
TIME OF CONTACT 448 8.2.4 ESTIMATING THE FIRST DERIVATIVE 453 8.3 A
DYNAMIC COLLISION DETECTION SYSTEM 455 8.3.1 THE ABSTRACT BASE CLASS 455
8.3.2 PSEUDODISTANCES FOR SPECIFIC PAIRS OF OBJECT TYPES 461 8.3.3
COLLISION CULLING WITH AXIS-ALIGNED BOUNDING BOXES 465 8.4 OBJECT
PICKING 472 8.4.1 CONSTRUCTING A PICK RAY 472 8.4.2 SCENE GRAPH SUPPORT
475 8.4.3 STAYING ON TOP OF THINGS 479 8.4.4 STAYING OUT OF THINGS 481
8.5 PATHFINDING TO AVOID COLLISIONS 481 8.5.1 ENVIRONMENTS, LEVELS, AND
ROOMS 482 XII CONTENTS CHAPTER CHAPTER I 8.5.2 MOVING BETWEEN ROOMS 486
8.5.3 MOVING BETWEEN LEVELS 486 8.5.4 MOVING THROUGH THE OUTDOOR
ENVIRONMENT 488 8.5.5 BLUEPRINTS 488 8.5.6 VISIBILITY GRAPHS 489 8.5.7
ENVELOPE CONSTRUCTION 494 8.5.8 BASIC DATA STRUCTURES 503 8.5.9
EFFICIENT CALCULATION OFTHE VISIBILITY GRAPH 504 PHYSICS 507 9.1
PARTICLE SYSTEMS 508 9.2 MASS-SPRING SYSTEMS 510 9.2.1 CURVE MASSES 510
9.2.2 SURFACE MASSES 513 9.2.3 VOLUME MASSES 516 9.2.4 ARBITRARY
CONFIGURATIONS 519 9.3 DEFORMABLE BODIES 521 9.4 RIGID BODIES 522 9.4.1
THE RIGID BODY CLASS 525 9.4.2 COMPUTING THE INERTIA TENSOR 527 STANDARD
OBJECTS 529 10.1 LINEAR COMPONENTS 529 10.2 PLANAR COMPONENTS 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-SWEPT VOLUMES 538
10.5.1 CAPSULES 539 10.5.2 LOZENGES 539 CONTENTS XIII CHAPTER CHAPTER
CURVES 541 11.1 DEFINITIONS 542 11.2 REPARAMETERIZATION BY ARC LENGTH
543 11.3 BEZIER CURVES 545 11.3.1 DEFINITIONS 545 11.3.2 EVALUATION 545
11.3.3 DEGREE ELEVATION 546 11.3.4 DEGREE REDUCTION 546 11.4 NATURAL,
CLAMPED, AND CLOSED CUBIC SPLINES 548 11.4.1 NATURAL SPLINES 550 11.4.2
CLAMPED SPLINES 550 11.4.3 CLOSED SPLINES 550 11.5 B-SPLINE CURVES 551
11.5.1 TYPES OF KNOT VECTORS 552 11.5.2 EVALUATION 553 11.5.3
LOCALCONTROL 558 11.5.4 CLOSED CURVES 558 11.6 NURBS CURVES 560 11.7
TENSION-CONTINUITY-BIAS SPLINES 562 11.8 PARAMETRIC SUBDIVISION 566
11.8.1 SUBDIVISION BY UNIFORM SAMPLING 566 11.8.2 SUBDIVISION BY ARC
LENGTH 566 11.8.3 SUBDIVISION BY MIDPOINT DISTANCE 567 11.8.4 FAST
SUBDIVISION FOR CUBIC CURVES 568 11.9 ORIENTATION OF OBJECTS ON CURVED
PATHS 570 11.9.1 ORIENTATION USING THE FRENET FRAME 571 11.9.2
ORIENTATION USING A FIXED UP-VECTOR 571 SURFACES 573 12.1 INTRODUCTION
573 12.2 BEZIER RECTANGLE PATCHES 574 12.2.1 DEFINITIONS 574 12.2.2
EVALUATION 575 XIV CONTENTS 12.2.3 DEGREE ELEVATION 575 12.2.4 DEGREE
REDUCTION 576 12.3 BEZIER TRIANGLE PATCHES 578 12.3.1 DEFINITIONS 578
12.3.2 EVALUATION 578 12.3.3 DEGREE ELEVATION 580 12.3.4 DEGREE
REDUCTION 580 12.4 B-SPLINE RECTANGLE PATCHES 582 12.5 NURBS RECTANGLE
PATCHES 583 12.6 SURFACES BUILT FROM CURVES 584 12.6.1 CYLINDER SURFACES
584 12.6.2 GENERALIZED CYLINDER SURFACES 585 12.6.3 REVOLUTION SURFACES
586 12.6.4 TUBE SURFACES 586 12.7 PARAMETRIC SUBDIVISION 587 12.7.1
SUBDIVISION OF RECTANGLE PATCHES 587 12.7.2 SUBDIVISION OF TRIANGLE
PATCHES 602 CHAPTER CONTAINMENT METHODS 609 13.1 SPHERES 609 13.1.1
POINT IN SPHERE 609 13.1.2 SPHERE CONTAINING POINTS 610 13.1.3 MERGING
SPHERES 616 13.2 BOXES 617 13.2.1 POINT IN BOX 617 13.2.2 BOX CONTAINING
POINTS 618 13.2.3 MERGING BOXES 625 13.3 CAPSULES 627 13.3.1 POINT IN
CAPSULE 627 13.3.2 CAPSULE CONTAINING POINTS 628 13.3.3 MERGING CAPSULES
629 13.4 LOZENGES 630 13.4.1 POINT IN LOZENGE 631 13.4.2 LOZENGE
CONTAINING POINTS 631 13.4.3 MERGING LOZENGES 633 13.5 CYLINDERS 634
13.5.1 POINT IN CYLINDER 634 CONTENTS XV CHAPTER U 13.5.2 CYLINDER
CONTAINING POINTS 634 13.5.3 LEAST-SQUARES LINE MOVED TO MINIMUM-AREA
CENTER 635 13.5.4 MERGING CYLINDERS * 635 13.6 ELLIPSOIDS 636 13.6.1
POINT IN ELLIPSOID 636 13.6.2 ELLIPSOID CONTAINING POINTS 637 13.6.3
MERGING ELLIPSOIDS 638 DISTANCE METHODS 639 14.1 POINT TO LINEAR
COMPONENT 639 14.1.1 POINT TO LINE 640 14.1.2 POINT TO RAY 640 14.1.3
POINT TO SEGMENT 641 14.2 LINEAR COMPONENT TO LINEAR COMPONENT 642
14.2.1 LINE TO LINE 642 14.2.2 LINE TO RAY 643 14.2.3 LINE TO SEGMENT
644 14.2.4 RAY TO RAY 645 14.2.5 RAY TO SEGMENT 645 14.2.6 SEGMENT TO
SEGMENT 645 14.3 POINT TO TRIANGLE 646 14.4 LINEAR COMPONENT TO TRIANGLE
651 14.4.1 LINE TO TRIANGLE 651 14.4.2 RAY TO TRIANGLE 654 14.4.3
SEGMENT TO TRIANGLE 654 14.5 POINT TO RECTANGLE 655 14.6 LINEAR
COMPONENT TO RECTANGLE 657 14.6.1 LINE TO RECTANGLE 657 14.6.2 RAY TO
RECTANGLE 659 14.6.3 SEGMENT TO RECTANGLE 660 14.7 TRIANGLE OR RECTANGLE
TO TRIANGLE OR RECTANGLE 661 14.8 POINT TO ORIENTED BOX 663 14.9 LINEAR
COMPONENT TO ORIENTED BOX 663 14.9.1 LINE TO ORIENTED BOX 664 14.9.2 RAY
TO ORIENTED BOX 666 14.9.3 SEGMENT TO ORIENTED BOX 666 14.10 TRIANGLE TO
ORIENTED BOX 667 XVI CONTENTS 14.11 RECTANGLE TO ORIENTED BOX 669 14.12
ORIENTED BOX TO ORIENTED BOX 670 14.13 MLSCELLANEOUS 672 14.13.1 POINT
TO ELLIPSE 672 14.13.2 POINT TO ELLIPSOID 673 14.13.3 POINT TO QUADRATIC
CURVE OR TO QUADRIC SURFACE 674 14.13.4POINTTOCIRCLEIN3D 675 14.13.5
CIRCLE TO CIRCLE IN 3D 676 CHAPTER INTERSECTION METHODS 681 15.1 LINEAR
COMPONENTS AND CONVEX OBJECTS 681 15.2 LINEAR COMPONENT AND PLANAR
COMPONENT 684 15.3 LINEAR COMPONENT AND ORIENTED BOX 686 15.3.1
TEST-INTERSECTION QUERY 686 15.3.2 FIND-INTERSECTION QUERY 693 15.4
LINEAR COMPONENT AND SPHERE 69 8 15.4.1 LINE AND SPHERE 698 15.4.2 RAY
AND SPHERE 700 15.4.3 SEGMENT AND SPHERE 701 15.5 LINE AND SPHERE-SWEPT
VOLUME 703 15.5.1 LINE AND CAPSULE 703 15.5.2 LINE AND LOZENGE 708 15.6
LINE AND QUADRIC SURFACE 709 15.6.1 LINE AND ELLIPSOID 709 15.6.2 LINE
AND CYLINDER 710 15.6.3 LINE AND CONE 710 15.7 CULLING OBJECTS BY PLANES
710 15.7.1 ORIENTED BOXES 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 CONVEX POLYGONS OR CONVEX POLYHEDRA 717 CONTENTS XVUE
NUMERICAL METHODS 719 16.1 SYSTEMS OF EQUATIONS 719 16.1.1 LINEAR
SYSTEMS 719 16.1.2 POLYNOMIAL SYSTEMS 720 16.2 EIGENSYSTEMS 722 16.2.1
EXTREMA OF QUADRATIC FORMS 722 16.2.2 EXTREMA OF CONSTRAINED QUADRATIC
FORMS 723 16.3 LEAST-SQUARES FITTING 724 16.3.1 LINEAR FITTING OF POINTS
(X, /(*)) 724 16.3.2 LINEAR FITTING OF POINTS USING ORTHOGONAL
REGRESSION 725 16.3.3 PLANAR FITTING OF POINTS (X,Y,F{X,Y)) 726 16.3.4
PLANAR FITTING OF POINTS USING ORTHOGONAL REGRESSION 726 16.3.5 FITTING
A CIRCLE TO 2D POINTS 727 16.3.6 FITTING A SPHERE TO 3D POINTS 729
16.3.7 FITTING A QUADRATIC CURVE TO 2D POINTS 731 16.3.8 FITTING A
QUADRIC SURFACE TO 3D POINTS 731 16.4 MLNIMIZATLON 732 16.4.1 METHODS IN
ONE DIMENSION 732 16.4.2 METHODS IN MANY DIMENSIONS 733 16.5 ROOT
FLNDLNG 736 16.5.1 METHODS IN ONE DIMENSION 736 16.5.2 METHODS IN MANY
DIMENSIONS 740 16.6 INTEGRATION 742 16.6.1 ROMBERG INTEGRATION 742
16.6.2 GAUSSIAN QUADRATURE 746 16.7 DIFFERENTIAL EQUATIONS 747 16.7.1
ORDINARY DIFFERENTIAL EQUATIONS 747 16.7.2 PARTIAL DIFFERENTIAL
EQUATIONS 750 16.8 FAST FUNCTION EVALUATION 754 16.8.1 SQUARE ROOT AND
INVERSE SQUARE ROOT 754 16.8.2 SINE, COSINE, AND TANGENT 755 16.8.3
INVERSE TANGENT 756 XVLLL CONTENTS CHAPTER 17 ROTATIONS 759 17.1
ROTATION MATRICES 759 17.1.1 AXIS/ANGLE TO MATRIX 760 17.1.2 MATRIX TO
AXIS/ANGLE 762 17.1.3 INTERPOLATION 763 17.2 QUATERNIONS 764 17.2.1 THE
LINEAR ALGEBRAIC VIEW OF QUATERNIONS 766 17.2.2 ROTATION OFAVECTOR 769
17.2.3 PRODUCTOF ROTATIONS 769 17.2.4 THE CLASSICAL VIEW OF QUATERNIONS
770 17.2.5 AXIS/ANGLE TO QUATERNION 772 17.2.6 QUATERNION TO AXIS/ANGLE
773 17.2.7 MATRIX TO QUATERNION 773 17.2.8 QUATERNION TO MATRIX 773
17.2.9 INTERPOLATION 774 17.3 EULER ANGLES 774 17.4 PERFORMANCE ISSUES
777 17.5 THE CURSE OF NONUNIFORM SCALING 778 17.5.1 GRAM-SCHMIDT
ORTHONORMALIZATION 779 17.5.2 EIGENDECOMPOSITION 781 17.5.3 POLAR
DECOMPOSITION 781 17.5.4 SINGULAR VALUE DECOMPOSITION 781 LO CHAPTER
OBJECT-ORIENTED INFRASTRUCTURE 783 18.1 OBJECT-ORIENTED SOFTWARE
CONSTRUCTION 783 18.1.1 SOFTWARE QUALITY 784 18.1.2 MODULARITY 785
18.1.3 REUSABILITY 787 18.1.4 FUNCTIONS AND DATA 788 18.1.5 OBJECT
ORIENTATION 789 18.2 STYLE, NAMING CONVENTIONS, AND NAMESPACES 790 18.3
RUN-TIME TYPE INFORMATION 793 18.3.1 SINGLE-INHERITANCE SYSTEMS 793
18.3.2 MULTIPLE-INHERITANCE SYSTEMS 797 18.3.3 MACRO SUPPORT 799 18.4
TEMPLATES 800 CONTENTS XIX 18.5 SHARED OBJECTS AND REFERENCE COUNTING
802 18.6 STREAMING 80 8 18.6.1 THE STREAM API 809 18.6.2 THEOBJECTAPI
812 18.7 NAMES AND UNIQUE IDENTIFIERS 819 18.7.1 NAMESTRING 820 18.7.2
UNIQUE IDENTIFICATION 820 18.8 INITIALIZATION AND TERMINATION 822 18.8.1
POTENTIAL PROBLEMS 822 18.8.2 A GENERIC SOLUTION FOR CLASSES 825 18.9 AN
APPLICATION LAYER 831 18.9.1 PROCESSING COMMAND-LINE PARAMETERS 832
18.9.2 THE APPLICATION CLASS 836 18.9.3 THE CONSOLEAPPLICATION CLASS 839
18.9.4 THE WINDOWAPPLICATION CLASS 842 18.9.5 THE WINDOWAPPLICATION3
CLASS 849 18.9.6 MANAGING THE ENGINES 867 MEMORY MANAGEMENT 873 19.1
MEMORY BUDGETS FOR GAME CONSOLES 873 19.2 LEAK DETECTION AND COLLECTING
STATISTICS 875 19.3 GENERAL MEMORY MANAGEMENT CONCEPTS 882 19.3.1
ALLOCATION USING SEQUENTIAL-FIT METHODS 882 19.3.2 ALLOCATION USING
BUDDY-SYSTEM METHODS 891 19.3.3 ALLOCATION USING SEGREGATED-STORAGE
METHODS 895 19.3.4 MEMORY COMPACTION 895 SPECIAL EFFECTS USING SHADERS
897 20.1 VERTEX COLORS 897 20.2 LLGHTING AND MATERIALS 899 20.2.1
AMBIENT LIGHTS 901 20.2.2 DIRECTIONAL LIGHTS 902 20.2.3 POINT LIGHTS 903
20.2.4 SPOTLIGHTS 904 20.3 TEXTURES 909 XX CONTENTS 20.4 MULTITEXTURES
911 20.5 BUMP MAPS 914 20.5.1 GENERATING NORMAL MAPS 914 20.5.2
GENERATING TANGENT-SPACE INFORMATION 916 20.5.3 THE SHADER PROGRAMS 919
20.6 GLOSS MAPS 923 20.7 SPHERE MAPS 926 20.8 CUBE MAPS 929 20.9
REFRACTION 932 20.10 PLANAR REFLECTION 935 20.11 PLANAR SHADOWS 939
20.12 PROJECTED TEXTURES 943 20.13 SHADOW MAPS 945 20.14 VOLUMETRIC FOG
947 20.15 SKINNING 950 20.16 IRIDESCENCE 951 20.17 WATER EFFECTS 955
APPENDIX CREATING A SHADER IN WILD MAGIC 957 A.1 SHADER PROGRAMS FOR AN
ILLUSTRATIVE APPLICATION 958 A.2 CREATING THE GEOMETRIC DATA 963 A.3 A
CLASSLESS SHADER EFFECT 965 A.4 CREATING A CLASS DERIVED FROM
SHADEREFFECT 968 A.5 DYNAMIC UPDATES FOR THE SHADER CONSTANTS 970
REFERENCES 973 INDEX 981 ABOUT THE CD-ROM 1017
|
adam_txt |
3D GAME ENGINE DESIGN A PRACTICAL APPROACH TO REAL-TIME COMPUTER
GRAPHICS SECOND EDITION DAVID H. EBERLY GEOMETRIE TOOLS, INC. AHHB _ JFW
H NEW YORK-OXFORD-PARIS-SAN DIEGO FL^^H ' 4M ARFCRGSBJLILHG, SAN
FRANCISCO * SINGAPORE * SYDNEY * TOKYO B^^H ^ ^ ELSEVIER MORGAN KAUFMANN
IS AN IMPRINT OF ELSEVIER MORGAN KAUFMANN PUBLISHERS CONTENTS TRADEMARKS
ABOUT THE AUTHOR PREFACE V VI XXI CHAPTER I INTRODUCTION 1.1 THE
EVOLUTION OF GRAPHICS HARDWARE AND GAMES 1.2 THE EVOLUTION OF THIS BOOK
AND ITS SOFTWARE 1.3 A SUMMARY OF THE CHAPTERS CHAPTER 2 THE GRAPHICS
SYSTEM 2.1 THE FOUNDATION 2.1.1 COORDINATE SYSTEMS 2.1.2 HANDEDNESS AND
CROSS PRODUCTS 2.1.3 POINTS AND VECTORS 2.2 TRANSFORMATIONS 2.2.1 LINEAR
TRANSFORMATIONS 2.2.2 AFFINE TRANSFORMATIONS 2.2.3 PROJECTIVE
TRANSFORMATIONS 2.2.4 PROPERTIES OF PERSPECTIVE PROJECTION 2.2.5
HOMOGENEOUS POINTS AND MATRICES 2.3 CAMERAS 2.3.1 THE PERSPECTIVE CAMERA
MODEL 2.3.2 MODEL OR OBJECT SPACE 2.3.3 WORLD SPACE 2.3.4 VIEW, CAMERA,
OR EYE SPACE 2.3.5 CLIP, PROJECTION, OR HOMOGENEOUS SPACE 2.3.6 WINDOW
SPACE 2.3.7 PUTTING THEM ALL TOGETHER 2.4 CULLING AND CLIPPING 2.4.1
OBJECT CULLING 9 10 15 18 18 29 31 35 40 43 43 48 48 50 52 56 58 66 66
VU VUEI CONTENTS CHAPTER 3 2.4.2 BACK-FACE CULLING 67 2.4.3 CLIPPING TO
THE VIEW FRUSTUM 70 2.5 RASTERIZING 77 2.5.1 LINE SEGMENTS 77 2.5.2
CIRCLES 82 2.5.3 ELLIPSES 84 2.5.4 TRIANGLES 89 2.6 VERTEX ATTRIBUTES 92
2.6.1 COLORS 92 2.6.2 LIGHTING AND MATERIALS 92 2.6.3 TEXTURES 99 2.6.4
TRANSPARENCY, OPACITY, AND BLENDING 117 2.6.5 FOG 122 2.6.6 AND MANY
MORE 123 2.6.7 RASTERIZING ATTRIBUTES 124 2.7 ISSUES OF SOFTWARE,
HARDWARE, AND APIS 125 2.7.1 A GENERAL DISCUSSION 125 2.7.2 PORTABILITY
VERSUS PERFORMANCE 127 2.8 API CONVENTIONS 128 2.8.1 MATRIX
REPRESENTATION AND STORAGE 129 2.8.2 MATRIX COMPOSITION 134 2.8.3
VIEWMATRICES 134 2.8.4 PROJECTION MATRICES 136 2.8.5 WINDOW HANDEDNESS
139 2.8.6 ROTATIONS 140 2.8.7 FAST COMPUTATIONS USING THE GRAPHICS API
143 RENDERERS 147 3.1 SOFTWARE RENDERING 149 149 151 154 158 159 161 164
167 169 3.1.10 ALPHA BLENDING 170 SOFTWARE RENDERING 3.1.1 3.1.2 3.1.3
3.1.4 3.1.5 3.1.6 3.1.7 3.1.8 3.1.9 VERTEX SHADERS BACK-FACE CULLING
CLIPPING RASTERIZING EDGE BUFFERS SCAN LINE PROCESSI* PIXEL SHADERS
STENCIL BUFFERING DEPTH BUFFERING CONTENTS IX CHAPTER 3.1.11 COLOR
MASKING 171 3.1.12 TEXTURE SAMPLING 171 3.1.13 FRAME BUFFERS 172 3.2
HARDWARE RENDERING 173 3.3 AN ABSTRACT RENDERING API 175 3.3.1
CONSTRUCTION AND DESTRUCTION 175 3.3.2 CAMERA MANAGEMENT 176 3.3.3
GLOBAL-STATE MANAGEMENT 177 3.3.4 BUFFER CLEARING 178 3.3.5 OBJECT
DRAWING 179 3.3.6 TEXT AND 2D DRAWING 180 3.3.7 MISCELLANEOUS 180 3.3.8
RESOURCE MANAGEMENT 182 3.4 THE HEART OF THE RENDERER 194 3.4.1 DRAWING
A SCENE 195 3.4.2 DRAWING A GEOMETRIE PRIMITIVE 198 3.4.3 APPLYING AN
EFFECT 199 3.4.4 LOADING AND PARSING SHADER PROGRAMS 201 3.4.5
VALIDATION OF SHADER PROGRAMS 213 SCENE GRAPHS 217 4.1 SCENE GRAPH
DESIGN ISSUES 217 4.1.1 THE CORE CLASSES 221 4.1.2 SPATIAL HIERARCHY
DESIGN 226 4.1.3 SHARING OFOBJECTS 230 4.2 GEOMETRIC STATE 233 4.2.1
VERTEX BUFFERS AND INDEX BUFFERS 233 4.2.2 TRANSFORMATIONS 234 4.2.3
BOUNDING VOLUMES 244 4.2.4 GEOMETRIC TYPES 251 4.3 RENDER STATE 259
4.3.1 GLOBAL STATE 259 4.3.2 LIGHTS 261 4.3.3 EFFECTS 266 4.4 THE UPDATE
PASS 268 4.4.1 GEOMETRIC-STATE UPDATES 268 4.4.2 RENDER-STATE UPDATES
280 X CONTENTS 4.5 THE CULLING PASS 4.5.1 HIERARCHICAL CULLING 4.5.2
SORTED CULLING 4.6 THE DRAWING PASS 4.6.1 SINGLE-PASS DRAWING 4.6.2
SINGLE-EFFECT, MULTIPASS DRAWING 4.6.3 MULTIPLE-EFFECT DRAWING 4.7 SCENE
GRAPH COMPILERS 4.7.1 A SCENE GRAPH AS AN EXPRESSION 4.7.2 SEMANTICS OF
COMPILATION 289 293 296 297 298 302 304 305 307 311 CHAPTER 5
CONTROLLER-BASED ANIMATION 5.1 KEYFRAME ANIMATION 5.1.1 INTERPOLATION OF
POSITION 5.1.2 INTERPOLATION OF ORIENTATION 5.1.3 INTERPOLATION OF SCALE
5.2 KEYFRAME COMPRESSION 5.2.1 FITTING POINTS WITH A B-SPLINE CURVE
5.2.2 EVALUATION OFAB-SPLINE CURVE 5.2.3 OPTIMIZED EVALUATION FOR DEGREE
3 5.3 INVERSE KLNEMATICS 5.3.1 NUMERICAL SOLUTION BY JACOBIAN METHODS
5.3.2 NUMERICAL SOLUTION BY NONLINEAR OPTIMIZATION 5.3.3 NUMERICAL
SOLUTION BY CYCLIC COORDINATE DESCENT 5.4 SKINNING 5.5 VERTEX MORPHING
5.6 PARTICLE SYSTEMS 315 317 317 318 318 320 321 325 333 339 341 342 342
347 349 350 CHAPTER SPATIAL SORTING 353 6.1 6.2 6.3 BINARY SPACE
PARTITIONING TREES 6.1.1 BSP TREE CONSTRUCTION 6.1.2 BSP TREE USAGE
NODE-BASED SORTING PORTALS 354 355 357 365 366 CONTENTS XI 6.4
USER-DEFINED MAPS 375 6.5 OCCLUSION CULLING 375 LEVEL OF DETAIL 377 7.1
SPRITES AND BILLBOARDS 378 7.2 DISCRETE LEVEL OF DETAIL 379 7.3
CONTINUOUS LEVEL OF DETAIL 380 7.3.1 SIMPLIFICATION USING QUADRIC ERROR
METRICS 380 7.3.2 REORDERING OFVERTICES AND INDICES 385 7.3.3 TERRAIN
386 7.4 INFINITE LEVEL OF DETAIL 387 COLLISION DETECTION 389 8.1 THE
METHOD OF SEPARATING AXES 393 8.1.1 EXTREMA OF CONVEX POLYGONS OR CONVEX
POLYHEDRA 394 8.1.2 STATIONARY OBJECTS 404 8.1.3 OBJECTS MOVING WITH
CONSTANT LINEAR VELOCITY 412 8.1.4 ORIENTED BOUNDING BOXES 436 8.2
FINDING COLLISIONS BETWEEN MOVING OBJECTS 444 8.2.1 PSEUDODISTANCE 444
8.2.2 CONTACT BETWEEN MOVING INTERVALS 446 8.2.3 COMPUTING THE FIRST
TIME OF CONTACT 448 8.2.4 ESTIMATING THE FIRST DERIVATIVE 453 8.3 A
DYNAMIC COLLISION DETECTION SYSTEM 455 8.3.1 THE ABSTRACT BASE CLASS 455
8.3.2 PSEUDODISTANCES FOR SPECIFIC PAIRS OF OBJECT TYPES 461 8.3.3
COLLISION CULLING WITH AXIS-ALIGNED BOUNDING BOXES 465 8.4 OBJECT
PICKING 472 8.4.1 CONSTRUCTING A PICK RAY 472 8.4.2 SCENE GRAPH SUPPORT
475 8.4.3 STAYING ON TOP OF THINGS 479 8.4.4 STAYING OUT OF THINGS 481
8.5 PATHFINDING TO AVOID COLLISIONS 481 8.5.1 ENVIRONMENTS, LEVELS, AND
ROOMS 482 XII CONTENTS CHAPTER CHAPTER I 8.5.2 MOVING BETWEEN ROOMS 486
8.5.3 MOVING BETWEEN LEVELS 486 8.5.4 MOVING THROUGH THE OUTDOOR
ENVIRONMENT 488 8.5.5 BLUEPRINTS 488 8.5.6 VISIBILITY GRAPHS 489 8.5.7
ENVELOPE CONSTRUCTION 494 8.5.8 BASIC DATA STRUCTURES 503 8.5.9
EFFICIENT CALCULATION OFTHE VISIBILITY GRAPH 504 PHYSICS 507 9.1
PARTICLE SYSTEMS 508 9.2 MASS-SPRING SYSTEMS 510 9.2.1 CURVE MASSES 510
9.2.2 SURFACE MASSES 513 9.2.3 VOLUME MASSES 516 9.2.4 ARBITRARY
CONFIGURATIONS 519 9.3 DEFORMABLE BODIES 521 9.4 RIGID BODIES 522 9.4.1
THE RIGID BODY CLASS 525 9.4.2 COMPUTING THE INERTIA TENSOR 527 STANDARD
OBJECTS 529 10.1 LINEAR COMPONENTS 529 10.2 PLANAR COMPONENTS 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-SWEPT VOLUMES 538
10.5.1 CAPSULES 539 10.5.2 LOZENGES 539 CONTENTS XIII CHAPTER CHAPTER
CURVES 541 11.1 DEFINITIONS 542 11.2 REPARAMETERIZATION BY ARC LENGTH
543 11.3 BEZIER CURVES 545 11.3.1 DEFINITIONS 545 11.3.2 EVALUATION 545
11.3.3 DEGREE ELEVATION 546 11.3.4 DEGREE REDUCTION 546 11.4 NATURAL,
CLAMPED, AND CLOSED CUBIC SPLINES 548 11.4.1 NATURAL SPLINES 550 11.4.2
CLAMPED SPLINES 550 11.4.3 CLOSED SPLINES 550 11.5 B-SPLINE CURVES 551
11.5.1 TYPES OF KNOT VECTORS 552 11.5.2 EVALUATION 553 11.5.3
LOCALCONTROL 558 11.5.4 CLOSED CURVES 558 11.6 NURBS CURVES 560 11.7
TENSION-CONTINUITY-BIAS SPLINES 562 11.8 PARAMETRIC SUBDIVISION 566
11.8.1 SUBDIVISION BY UNIFORM SAMPLING 566 11.8.2 SUBDIVISION BY ARC
LENGTH 566 11.8.3 SUBDIVISION BY MIDPOINT DISTANCE 567 11.8.4 FAST
SUBDIVISION FOR CUBIC CURVES 568 11.9 ORIENTATION OF OBJECTS ON CURVED
PATHS 570 11.9.1 ORIENTATION USING THE FRENET FRAME 571 11.9.2
ORIENTATION USING A FIXED UP-VECTOR 571 SURFACES 573 12.1 INTRODUCTION
573 12.2 BEZIER RECTANGLE PATCHES 574 12.2.1 DEFINITIONS 574 12.2.2
EVALUATION 575 XIV CONTENTS 12.2.3 DEGREE ELEVATION 575 12.2.4 DEGREE
REDUCTION 576 12.3 BEZIER TRIANGLE PATCHES 578 12.3.1 DEFINITIONS 578
12.3.2 EVALUATION 578 12.3.3 DEGREE ELEVATION 580 12.3.4 DEGREE
REDUCTION 580 12.4 B-SPLINE RECTANGLE PATCHES 582 12.5 NURBS RECTANGLE
PATCHES 583 12.6 SURFACES BUILT FROM CURVES 584 12.6.1 CYLINDER SURFACES
584 12.6.2 GENERALIZED CYLINDER SURFACES 585 12.6.3 REVOLUTION SURFACES
586 12.6.4 TUBE SURFACES 586 12.7 PARAMETRIC SUBDIVISION 587 12.7.1
SUBDIVISION OF RECTANGLE PATCHES 587 12.7.2 SUBDIVISION OF TRIANGLE
PATCHES 602 CHAPTER CONTAINMENT METHODS 609 13.1 SPHERES 609 13.1.1
POINT IN SPHERE 609 13.1.2 SPHERE CONTAINING POINTS 610 13.1.3 MERGING
SPHERES 616 13.2 BOXES 617 13.2.1 POINT IN BOX 617 13.2.2 BOX CONTAINING
POINTS 618 13.2.3 MERGING BOXES 625 13.3 CAPSULES 627 13.3.1 POINT IN
CAPSULE 627 13.3.2 CAPSULE CONTAINING POINTS 628 13.3.3 MERGING CAPSULES
629 13.4 LOZENGES 630 13.4.1 POINT IN LOZENGE 631 13.4.2 LOZENGE
CONTAINING POINTS 631 13.4.3 MERGING LOZENGES 633 13.5 CYLINDERS 634
13.5.1 POINT IN CYLINDER 634 CONTENTS XV CHAPTER U 13.5.2 CYLINDER
CONTAINING POINTS 634 13.5.3 LEAST-SQUARES LINE MOVED TO MINIMUM-AREA
CENTER 635 13.5.4 MERGING CYLINDERS * 635 13.6 ELLIPSOIDS 636 13.6.1
POINT IN ELLIPSOID 636 13.6.2 ELLIPSOID CONTAINING POINTS 637 13.6.3
MERGING ELLIPSOIDS 638 DISTANCE METHODS 639 14.1 POINT TO LINEAR
COMPONENT 639 14.1.1 POINT TO LINE 640 14.1.2 POINT TO RAY 640 14.1.3
POINT TO SEGMENT 641 14.2 LINEAR COMPONENT TO LINEAR COMPONENT 642
14.2.1 LINE TO LINE 642 14.2.2 LINE TO RAY 643 14.2.3 LINE TO SEGMENT
644 14.2.4 RAY TO RAY 645 14.2.5 RAY TO SEGMENT 645 14.2.6 SEGMENT TO
SEGMENT 645 14.3 POINT TO TRIANGLE 646 14.4 LINEAR COMPONENT TO TRIANGLE
651 14.4.1 LINE TO TRIANGLE 651 14.4.2 RAY TO TRIANGLE 654 14.4.3
SEGMENT TO TRIANGLE 654 14.5 POINT TO RECTANGLE 655 14.6 LINEAR
COMPONENT TO RECTANGLE 657 14.6.1 LINE TO RECTANGLE 657 14.6.2 RAY TO
RECTANGLE 659 14.6.3 SEGMENT TO RECTANGLE 660 14.7 TRIANGLE OR RECTANGLE
TO TRIANGLE OR RECTANGLE 661 14.8 POINT TO ORIENTED BOX 663 14.9 LINEAR
COMPONENT TO ORIENTED BOX 663 14.9.1 LINE TO ORIENTED BOX 664 14.9.2 RAY
TO ORIENTED BOX 666 14.9.3 SEGMENT TO ORIENTED BOX 666 14.10 TRIANGLE TO
ORIENTED BOX 667 XVI CONTENTS 14.11 RECTANGLE TO ORIENTED BOX 669 14.12
ORIENTED BOX TO ORIENTED BOX 670 14.13 MLSCELLANEOUS 672 14.13.1 POINT
TO ELLIPSE 672 14.13.2 POINT TO ELLIPSOID 673 14.13.3 POINT TO QUADRATIC
CURVE OR TO QUADRIC SURFACE 674 14.13.4POINTTOCIRCLEIN3D 675 14.13.5
CIRCLE TO CIRCLE IN 3D 676 CHAPTER INTERSECTION METHODS 681 15.1 LINEAR
COMPONENTS AND CONVEX OBJECTS 681 15.2 LINEAR COMPONENT AND PLANAR
COMPONENT 684 15.3 LINEAR COMPONENT AND ORIENTED BOX 686 15.3.1
TEST-INTERSECTION QUERY 686 15.3.2 FIND-INTERSECTION QUERY 693 15.4
LINEAR COMPONENT AND SPHERE 69 8 15.4.1 LINE AND SPHERE 698 15.4.2 RAY
AND SPHERE 700 15.4.3 SEGMENT AND SPHERE 701 15.5 LINE AND SPHERE-SWEPT
VOLUME 703 15.5.1 LINE AND CAPSULE 703 15.5.2 LINE AND LOZENGE 708 15.6
LINE AND QUADRIC SURFACE 709 15.6.1 LINE AND ELLIPSOID 709 15.6.2 LINE
AND CYLINDER 710 15.6.3 LINE AND CONE 710 15.7 CULLING OBJECTS BY PLANES
710 15.7.1 ORIENTED BOXES 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 CONVEX POLYGONS OR CONVEX POLYHEDRA 717 CONTENTS XVUE
NUMERICAL METHODS 719 16.1 SYSTEMS OF EQUATIONS 719 16.1.1 LINEAR
SYSTEMS 719 16.1.2 POLYNOMIAL SYSTEMS 720 16.2 EIGENSYSTEMS 722 16.2.1
EXTREMA OF QUADRATIC FORMS 722 16.2.2 EXTREMA OF CONSTRAINED QUADRATIC
FORMS 723 16.3 LEAST-SQUARES FITTING 724 16.3.1 LINEAR FITTING OF POINTS
(X, /(*)) 724 16.3.2 LINEAR FITTING OF POINTS USING ORTHOGONAL
REGRESSION 725 16.3.3 PLANAR FITTING OF POINTS (X,Y,F{X,Y)) 726 16.3.4
PLANAR FITTING OF POINTS USING ORTHOGONAL REGRESSION 726 16.3.5 FITTING
A CIRCLE TO 2D POINTS 727 16.3.6 FITTING A SPHERE TO 3D POINTS 729
16.3.7 FITTING A QUADRATIC CURVE TO 2D POINTS 731 16.3.8 FITTING A
QUADRIC SURFACE TO 3D POINTS 731 16.4 MLNIMIZATLON 732 16.4.1 METHODS IN
ONE DIMENSION 732 16.4.2 METHODS IN MANY DIMENSIONS 733 16.5 ROOT
FLNDLNG 736 16.5.1 METHODS IN ONE DIMENSION 736 16.5.2 METHODS IN MANY
DIMENSIONS 740 16.6 INTEGRATION 742 16.6.1 ROMBERG INTEGRATION 742
16.6.2 GAUSSIAN QUADRATURE 746 16.7 DIFFERENTIAL EQUATIONS 747 16.7.1
ORDINARY DIFFERENTIAL EQUATIONS 747 16.7.2 PARTIAL DIFFERENTIAL
EQUATIONS 750 16.8 FAST FUNCTION EVALUATION 754 16.8.1 SQUARE ROOT AND
INVERSE SQUARE ROOT 754 16.8.2 SINE, COSINE, AND TANGENT 755 16.8.3
INVERSE TANGENT 756 XVLLL CONTENTS CHAPTER 17 ROTATIONS 759 17.1
ROTATION MATRICES 759 17.1.1 AXIS/ANGLE TO MATRIX 760 17.1.2 MATRIX TO
AXIS/ANGLE 762 17.1.3 INTERPOLATION 763 17.2 QUATERNIONS 764 17.2.1 THE
LINEAR ALGEBRAIC VIEW OF QUATERNIONS 766 17.2.2 ROTATION OFAVECTOR 769
17.2.3 PRODUCTOF ROTATIONS 769 17.2.4 THE CLASSICAL VIEW OF QUATERNIONS
770 17.2.5 AXIS/ANGLE TO QUATERNION 772 17.2.6 QUATERNION TO AXIS/ANGLE
773 17.2.7 MATRIX TO QUATERNION 773 17.2.8 QUATERNION TO MATRIX 773
17.2.9 INTERPOLATION 774 17.3 EULER ANGLES 774 17.4 PERFORMANCE ISSUES
777 17.5 THE CURSE OF NONUNIFORM SCALING 778 17.5.1 GRAM-SCHMIDT
ORTHONORMALIZATION 779 17.5.2 EIGENDECOMPOSITION 781 17.5.3 POLAR
DECOMPOSITION 781 17.5.4 SINGULAR VALUE DECOMPOSITION 781 LO CHAPTER
OBJECT-ORIENTED INFRASTRUCTURE 783 18.1 OBJECT-ORIENTED SOFTWARE
CONSTRUCTION 783 18.1.1 SOFTWARE QUALITY 784 18.1.2 MODULARITY 785
18.1.3 REUSABILITY 787 18.1.4 FUNCTIONS AND DATA 788 18.1.5 OBJECT
ORIENTATION 789 18.2 STYLE, NAMING CONVENTIONS, AND NAMESPACES 790 18.3
RUN-TIME TYPE INFORMATION 793 18.3.1 SINGLE-INHERITANCE SYSTEMS 793
18.3.2 MULTIPLE-INHERITANCE SYSTEMS 797 18.3.3 MACRO SUPPORT 799 18.4
TEMPLATES 800 CONTENTS XIX 18.5 SHARED OBJECTS AND REFERENCE COUNTING
802 18.6 STREAMING 80 8 18.6.1 THE STREAM API 809 18.6.2 THEOBJECTAPI
812 18.7 NAMES AND UNIQUE IDENTIFIERS 819 18.7.1 NAMESTRING 820 18.7.2
UNIQUE IDENTIFICATION 820 18.8 INITIALIZATION AND TERMINATION 822 18.8.1
POTENTIAL PROBLEMS 822 18.8.2 A GENERIC SOLUTION FOR CLASSES 825 18.9 AN
APPLICATION LAYER 831 18.9.1 PROCESSING COMMAND-LINE PARAMETERS 832
18.9.2 THE APPLICATION CLASS 836 18.9.3 THE CONSOLEAPPLICATION CLASS 839
18.9.4 THE WINDOWAPPLICATION CLASS 842 18.9.5 THE WINDOWAPPLICATION3
CLASS 849 18.9.6 MANAGING THE ENGINES 867 MEMORY MANAGEMENT 873 19.1
MEMORY BUDGETS FOR GAME CONSOLES 873 19.2 LEAK DETECTION AND COLLECTING
STATISTICS 875 19.3 GENERAL MEMORY MANAGEMENT CONCEPTS 882 19.3.1
ALLOCATION USING SEQUENTIAL-FIT METHODS 882 19.3.2 ALLOCATION USING
BUDDY-SYSTEM METHODS 891 19.3.3 ALLOCATION USING SEGREGATED-STORAGE
METHODS 895 19.3.4 MEMORY COMPACTION 895 SPECIAL EFFECTS USING SHADERS
897 20.1 VERTEX COLORS 897 20.2 LLGHTING AND MATERIALS 899 20.2.1
AMBIENT LIGHTS 901 20.2.2 DIRECTIONAL LIGHTS 902 20.2.3 POINT LIGHTS 903
20.2.4 SPOTLIGHTS 904 20.3 TEXTURES 909 XX CONTENTS 20.4 MULTITEXTURES
911 20.5 BUMP MAPS 914 20.5.1 GENERATING NORMAL MAPS 914 20.5.2
GENERATING TANGENT-SPACE INFORMATION 916 20.5.3 THE SHADER PROGRAMS 919
20.6 GLOSS MAPS 923 20.7 SPHERE MAPS 926 20.8 CUBE MAPS 929 20.9
REFRACTION 932 20.10 PLANAR REFLECTION 935 20.11 PLANAR SHADOWS 939
20.12 PROJECTED TEXTURES 943 20.13 SHADOW MAPS 945 20.14 VOLUMETRIC FOG
947 20.15 SKINNING 950 20.16 IRIDESCENCE 951 20.17 WATER EFFECTS 955
APPENDIX CREATING A SHADER IN WILD MAGIC 957 A.1 SHADER PROGRAMS FOR AN
ILLUSTRATIVE APPLICATION 958 A.2 CREATING THE GEOMETRIC DATA 963 A.3 A
CLASSLESS SHADER EFFECT 965 A.4 CREATING A CLASS DERIVED FROM
SHADEREFFECT 968 A.5 DYNAMIC UPDATES FOR THE SHADER CONSTANTS 970
REFERENCES 973 INDEX 981 ABOUT THE CD-ROM 1017 |
any_adam_object | 1 |
any_adam_object_boolean | 1 |
author | Eberly, David H. |
author_GND | (DE-588)137009100 |
author_facet | Eberly, David H. |
author_role | aut |
author_sort | Eberly, David H. |
author_variant | d h e dh dhe |
building | Verbundindex |
bvnumber | BV022465632 |
classification_rvk | ST 324 ST 320 |
classification_tum | DAT 758f |
ctrlnum | (OCoLC)1074721191 (DE-599)BVBBV022465632 |
dewey-full | 006.66 |
dewey-hundreds | 000 - Computer science, information, general works |
dewey-ones | 006 - Special computer methods |
dewey-raw | 006.66 |
dewey-search | 006.66 |
dewey-sort | 16.66 |
dewey-tens | 000 - Computer science, information, general works |
discipline | Informatik |
discipline_str_mv | Informatik |
edition | 2. ed. |
format | Book |
fullrecord | <?xml version="1.0" encoding="UTF-8"?><collection xmlns="http://www.loc.gov/MARC21/slim"><record><leader>01877nam a2200457 c 4500</leader><controlfield tag="001">BV022465632</controlfield><controlfield tag="003">DE-604</controlfield><controlfield tag="005">20231116 </controlfield><controlfield tag="007">t</controlfield><controlfield tag="008">070614s2007 a||| |||| 00||| eng d</controlfield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">9780122290633</subfield><subfield code="9">978-0-12-229063-3</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">0122290631</subfield><subfield code="9">0-12-229063-1</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(OCoLC)1074721191</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(DE-599)BVBBV022465632</subfield></datafield><datafield tag="040" ind1=" " ind2=" "><subfield code="a">DE-604</subfield><subfield code="b">ger</subfield><subfield code="e">rda</subfield></datafield><datafield tag="041" ind1="0" ind2=" "><subfield code="a">eng</subfield></datafield><datafield tag="049" ind1=" " ind2=" "><subfield code="a">DE-92</subfield><subfield code="a">DE-91G</subfield><subfield code="a">DE-523</subfield><subfield code="a">DE-20</subfield><subfield code="a">DE-473</subfield></datafield><datafield tag="082" ind1="0" ind2=" "><subfield code="a">006.66</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">ST 324</subfield><subfield code="0">(DE-625)143660:</subfield><subfield code="2">rvk</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">ST 320</subfield><subfield code="0">(DE-625)143657:</subfield><subfield code="2">rvk</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">DAT 758f</subfield><subfield code="2">stub</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">1 CD-ROM (12 cm)</subfield><subfield code="2">sdnb</subfield></datafield><datafield tag="100" ind1="1" ind2=" "><subfield code="a">Eberly, David H.</subfield><subfield code="e">Verfasser</subfield><subfield code="0">(DE-588)137009100</subfield><subfield code="4">aut</subfield></datafield><datafield tag="245" ind1="1" ind2="0"><subfield code="a">3D game engine design</subfield><subfield code="b">a practical approach to real-time computer graphics</subfield><subfield code="c">David H. Eberly</subfield></datafield><datafield tag="250" ind1=" " ind2=" "><subfield code="a">2. ed.</subfield></datafield><datafield tag="264" ind1=" " ind2="1"><subfield code="a">Amsterdam [u.a.]</subfield><subfield code="b">Morgan Kaufman</subfield><subfield code="c">2007</subfield></datafield><datafield tag="264" ind1=" " ind2="1"><subfield code="a">Boca Raton</subfield><subfield code="b">CRC Press, Taylor & Francis Group</subfield><subfield code="c">[2007]</subfield></datafield><datafield tag="300" ind1=" " ind2=" "><subfield code="a">XXII, 1018 Seiten</subfield><subfield code="b">Illustrationen, Diagramme</subfield></datafield><datafield tag="336" ind1=" " ind2=" "><subfield code="b">txt</subfield><subfield code="2">rdacontent</subfield></datafield><datafield tag="337" ind1=" " ind2=" "><subfield code="b">n</subfield><subfield code="2">rdamedia</subfield></datafield><datafield tag="338" ind1=" " ind2=" "><subfield code="b">nc</subfield><subfield code="2">rdacarrier</subfield></datafield><datafield tag="490" ind1="0" ind2=" "><subfield code="a">The Morgan Kaufmann series in interactive 3D technology</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Dreidimensionale Computergrafik</subfield><subfield code="0">(DE-588)4133691-4</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Programmierung</subfield><subfield code="0">(DE-588)4076370-5</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Computerspiel</subfield><subfield code="0">(DE-588)4010457-6</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="689" ind1="0" ind2="0"><subfield code="a">Dreidimensionale Computergrafik</subfield><subfield code="0">(DE-588)4133691-4</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2="1"><subfield code="a">Computerspiel</subfield><subfield code="0">(DE-588)4010457-6</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2="2"><subfield code="a">Programmierung</subfield><subfield code="0">(DE-588)4076370-5</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2=" "><subfield code="5">DE-604</subfield></datafield><datafield tag="856" ind1="4" ind2="2"><subfield code="m">GBV Datenaustausch</subfield><subfield code="q">application/pdf</subfield><subfield code="u">http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=015673225&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA</subfield><subfield code="3">Inhaltsverzeichnis</subfield></datafield><datafield tag="999" ind1=" " ind2=" "><subfield code="a">oai:aleph.bib-bvb.de:BVB01-015673225</subfield></datafield></record></collection> |
id | DE-604.BV022465632 |
illustrated | Illustrated |
index_date | 2024-07-02T17:42:12Z |
indexdate | 2024-07-09T20:58:11Z |
institution | BVB |
isbn | 9780122290633 0122290631 |
language | English |
oai_aleph_id | oai:aleph.bib-bvb.de:BVB01-015673225 |
oclc_num | 1074721191 |
open_access_boolean | |
owner | DE-92 DE-91G DE-BY-TUM DE-523 DE-20 DE-473 DE-BY-UBG |
owner_facet | DE-92 DE-91G DE-BY-TUM DE-523 DE-20 DE-473 DE-BY-UBG |
physical | XXII, 1018 Seiten Illustrationen, Diagramme |
publishDate | 2007 |
publishDateSearch | 2007 |
publishDateSort | 2007 |
publisher | Morgan Kaufman CRC Press, Taylor & Francis Group |
record_format | marc |
series2 | The Morgan Kaufmann series in interactive 3D technology |
spelling | Eberly, David H. Verfasser (DE-588)137009100 aut 3D game engine design a practical approach to real-time computer graphics David H. Eberly 2. ed. Amsterdam [u.a.] Morgan Kaufman 2007 Boca Raton CRC Press, Taylor & Francis Group [2007] XXII, 1018 Seiten Illustrationen, Diagramme txt rdacontent n rdamedia nc rdacarrier The Morgan Kaufmann series in interactive 3D technology Dreidimensionale Computergrafik (DE-588)4133691-4 gnd rswk-swf Programmierung (DE-588)4076370-5 gnd rswk-swf Computerspiel (DE-588)4010457-6 gnd rswk-swf Dreidimensionale Computergrafik (DE-588)4133691-4 s Computerspiel (DE-588)4010457-6 s Programmierung (DE-588)4076370-5 s DE-604 GBV Datenaustausch application/pdf http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=015673225&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA Inhaltsverzeichnis |
spellingShingle | Eberly, David H. 3D game engine design a practical approach to real-time computer graphics Dreidimensionale Computergrafik (DE-588)4133691-4 gnd Programmierung (DE-588)4076370-5 gnd Computerspiel (DE-588)4010457-6 gnd |
subject_GND | (DE-588)4133691-4 (DE-588)4076370-5 (DE-588)4010457-6 |
title | 3D game engine design a practical approach to real-time computer graphics |
title_auth | 3D game engine design a practical approach to real-time computer graphics |
title_exact_search | 3D game engine design a practical approach to real-time computer graphics |
title_exact_search_txtP | 3D game engine design a practical approach to real-time computer graphics |
title_full | 3D game engine design a practical approach to real-time computer graphics David H. Eberly |
title_fullStr | 3D game engine design a practical approach to real-time computer graphics David H. Eberly |
title_full_unstemmed | 3D game engine design a practical approach to real-time computer graphics David H. Eberly |
title_short | 3D game engine design |
title_sort | 3d game engine design a practical approach to real time computer graphics |
title_sub | a practical approach to real-time computer graphics |
topic | Dreidimensionale Computergrafik (DE-588)4133691-4 gnd Programmierung (DE-588)4076370-5 gnd Computerspiel (DE-588)4010457-6 gnd |
topic_facet | Dreidimensionale Computergrafik Programmierung Computerspiel |
url | http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=015673225&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |
work_keys_str_mv | AT eberlydavidh 3dgameenginedesignapracticalapproachtorealtimecomputergraphics |