ENGINEERING GRAPHICS
CONTENTS PART I CONCEPTS CHAPTER GEOMETRY REPRESENTATION AND MODELING POLYGONAL REPRESENTATION DECOMPOSITION AND TESSELLATION SHADING NORMALS SMOOTH SHADING VERTEX WINDING ORDER TRIANGLE STRIPPING GREEDY TRI-STRIPPING VERTICES AND VERTEX ARRAYS VERTEX BUFFER OBJECTS TRIANGLE LISTS MODELING VS RENDERING REVISITED 3D TRANSFORMATIONS DATA REPRESENTATION OVERVIEW OF THE TRANSFORMATION PIPELINE OBJECT SPACE AND THE MODELVIEW TRANSFORM EYE SPACE AND PROJECTION TRANSFORM CLIP SPACE AND PERSPECTIVE DIVIDE NDC SPACE AND THE VIEWPORT TRANSFORM WINDOW SPACE NORMAL TRANSFORMATION TEXTURE COORDINATE GENERATION AND TRANSFORMATION TEXTURE MATRIX TEXTURE COORDINATE GENERATION MODELING TRANSFORMS VISUALIZING TRANSFORM SEQUENCES PROJECTION TRANSFORM THE Z COORDINATE AND PERSPECTIVE PROJECTION Z COORDINATES AND FOG VERTEX PROGRAMS SUMMARY COLOR, SHADING, AND LIGHTING REPRESENTING COLOR RESOLUTION AND DYNAMIC RANGE GAMMA ALPHA COLOR INDEX SHADING LIGHTING INTENSITIES, COLORS, AND MATERIALS LIGHT SOURCE PROPERTIES MATERIAL PROPERTIES VERTEX AND FRAGMENT LIGHTING FIXED-POINT AND FLOATING-POINT ARITHMETIC BIASED ARITHMETIC DIGITAL IMAGES AND IMAGE MANIPULATION IMAGE REPRESENTATION DIGITAL FILTERING CONVOLUTION IMAGES IN OPENGL POSITIONING IMAGES PIXEL STORE OPERATIONS PIXEL TRANSFER OPERATIONS SCALE AND BIAS PIXEL MAPPING OPERATIONS ARB IMAGING SUBSET COLOR MATRIX TRANSFORM HISTOGRAM MINMAX COLOR TABLES BLEND EQUATION AND CONSTANT COLOR BLENDING OFF-SCREEN PROCESSING TEXTURE MAPPING LOADING TEXTURE IMAGES TEXTURE BORDERS INTERNAL TEXTURE FORMATS COMPRESSED TEXTURES PROXY TEXTURES TEXTURE COORDINATES LOADING TEXTURE IMAGES FROM THE FRAME BUFFER ENVIRONMENT MAPPING GENERATING ENVIRONMENT MAP TEXTURE COORDINATES TEXTURE MAPS USED IN ENVIRONMENT MAPPING CUBE MAPPING SPHERE MAPPING 3D TEXTURE USING 3D TEXTURES TO RENDER SOLID MATERIALS FILTERING ADDITIONAL CONTROL OF TEXTURE LEVEL OF DETAIL TEXTURE OBJECTS MULTITEXTURE MULTITEXTURE MODEL MULTITEXTURE TEXTURE ENVIRONMENTS TEXTURE ENVIRONMENT ADVANCED TEXTURE ENVIRONMENT FUNCTIONALITY FRAGMENT PROGRAMS RASTERIZATION AND FRAGMENT PROCESSING RASTERIZATION RASTERIZATION CONSISTENCY Z-FIGHTING BITMAPS AND PIXEL RECTANGLES TEXTURE, COLOR, AND DEPTH INTERPOLATION W BUFFERING FRAGMENT OPERATIONS MULTISAMPLE OPERATIONS ALPHA TEST STENCIL TEST BLENDING LOGIC OP FRAMEBUFFER OPERATIONS ACCUMULATION BUFFER WINDOW SYSTEM AND PLATFORM INTEGRATION RENDERER AND WINDOW STATE ADDRESS SPACE AND THREADS ANATOMY OF A WINDOW OVERLAY AND UNDERLAY WINDOWS MULTIPLE DISPLAYS OFF-SCREEN RENDERING GLX PBUFFERS WGL PBUFFERS RENDERING TO TEXTURE MAPS DIRECT AND INDIRECT RENDERING OPENGL IMPLEMENTATIONS OPENGL VERSIONS OPENGL EXTENSIONS OPENGL ES FOR EMBEDDED SYSTEMS EMBEDDED PRO?LES COMMON AND COMMON-LITE PRO?LES SAFETY CRITICAL PRO?LE OPENGL ES REVISIONS OPENGL PIPELINE EVOLUTION HARDWARE IMPLEMENTATIONS OF THE PIPELINE RASTERIZATION ACCELERATION PRIMITIVE SETUP ACCELERATION TRANSFORM AND LIGHTING ACCELERATION PIPELINE BALANCE PARALLELISM OPPORTUNITIES REORDERING THE PIPELINE MIXED SOFTWARE AND HARDWARE IMPLEMENTATIONS THE FUTURE PART II BASIC TECHNIQUES MULTIPLE RENDERING PASSES INVARIANCE MULTIPASS OVERVIEW THE MULTIPASS TOOLBOX ARITHMETIC OPERATIONS ARBITRARY FUNCTIONS CONDITIONALS VARIABLES PARAMETERS MULTIPASS LIMITATIONS MULTIPASS VS MICROPASS DEFERRED SHADING ANTIALIASING FULL-SCENE ANTIALIASING SUPERSAMPLING SUPERSAMPLING BY OVERDRAWING SUPERSAMPLING WITH THE ACCUMULATION BUFFER MULTISAMPLE ANTIALIASING DRAWBACKS BASIC TRANSFORM TECHNIQUES COMPUTING INVERSE TRANSFORMS EFFICIENTLY STEREO VIEWING DEPTH OF FIELD IMAGE TILING BILLBOARDING GEOMETRY TEXTURE COORDINATE VS GEOMETRIC TRANSFORMATIONS DIRECT VERTEX TO TEXTURE COORDINATE MAPPING OVERLAYING AN ENTIRE SCENE WITH A TEXTURE OVERLAYING A SCENE WITH AN INDEPENDENT TEXTURE PROJECTION INTERPOLATING VERTEX COMPONENTS THROUGH A PERSPECTIVE TRANSFORMATION TRANSFORMING VERTICES IN THE APPLICATION INTERPOLATING VERTEX COMPONENTS COMPUTING LOD TEXTURE MAPPING TECHNIQUES LOADING TEXTURE IMAGES INTO A FRAMEBUFFER OPTIMIZING TEXTURE COORDINATE ASSIGNMENT 3D TEXTURES TEXTURE MOSAICS TEXTURE TILING TEXTURE PAGING TEXTURE SUBIMAGE LOADING PAGING IMAGES IN SYSTEM MEMORY HARDWARE SUPPORT FOR TEXTURE PAGING PREFILTERED TEXTURES COMPUTING TEXEL ASPECT RATIOS AREA SAMPLING LINE AND POINT ANTIALIASING ANTIALIASING WITH TEXTURES POLYGON ANTIALIASING TEMPORAL ANTIALIASING MOTION BLUR COMPOSITING, BLENDING, AND TRANSPARENCY COMBINING TWO IMAGES COMPOSITING COMPOSITING MULTIPLE IMAGES ALPHA DIVISION OTHER COMPOSITING OPERATORS KEYING AND MATTING BLENDING ARTIFACTS ARITHMETIC ERRORS BLENDING WITH THE ACCUMULATION BUFFER APPROXIMATION ERRORS GAMMA CORRECTION ERRORS COMPOSITING IMAGES WITH DEPTH OTHER BLENDING OPERATIONS DISSOLVES TRANSPARENCY ALPHA-BLENDED TRANSPARENCY DYNAMIC OBJECT TRANSPARENCY TRANSPARENCY MAPPING TRANSPARENCY SORTING DEPTH PEELING SCREEN-DOOR TRANSPARENCY MULTISAMPLE TRANSPARENCY IMAGE PROCESSING TECHNIQUES OPENGL IMAGING SUPPORT IMAGE STORAGE POINT OPERATIONS COLOR ADJUSTMENT INTERPOLATION AND EXTRAPOLATION THRESHOLDING CONVERSION TO LUMINANCE MANIPULATING SATURATION ROTATING HUE COLOR SPACE CONVERSION REGION-BASED OPERATIONS CONTRAST STRETCHING HISTOGRAM EQUALIZATION REDUCTION OPERATIONS SEPARABLE FILTERS CONVOLUTIONS USING THE ACCUMULATION BUFFER CONVOLUTION USING EXTENSIONS USEFUL CONVOLUTION FILTERS CORRELATION AND FEATURE DETECTION GEOMETRIC OPERATIONS PIXEL ZOOM SCALING USING TEXTURE MAPPING ROTATION USING TEXTURE MAPPING DISTORTION CORRECTION IMAGE-BASED DEPTH OF FIELD HIGH DYNAMIC RANGE IMAGING DYNAMIC RANGE TONE MAPPING MODELING ADAPTATION DUAL-PARABOLOID ENVIRONMENT MAPPING THE MATHEMATICS OF DUAL-PARABOLOID MAPS USING DUAL-PARABOLOID MAPS OPENGL DUAL-PARABOLOID SUPPORT TEXTURE PROJECTION TEXTURE COLOR CODING AND CONTOURING 2D IMAGE WARPING TEXTURE ANIMATION DETAIL TEXTURES SIGNED INTENSITY DETAIL TEXTURES CREATING DETAIL TEXTURES TEXTURE SHARPENING MIPMAP GENERATION TEXTURE MAP LIMITS LIGHTING TECHNIQUES LIMITATIONS IN VERTEX LIGHTING STATIC AND ADAPTIVE TESSELLATION LOCAL LIGHT AND SPOTLIGHT ATTENUATION FRAGMENT LIGHTING USING TEXTURE MAPPING SPOTLIGHT EFFECTS USING PROJECTIVE TEXTURES SPECULAR LIGHTING USING ENVIRONMENT MAPS LIGHT MAPS 2D TEXTURE LIGHT MAPS 3D TEXTURE LIGHT MAPS BRDF-BASED LIGHTING REFLECTANCE MAPS GLOSS MAPS EMISSION MAPS PER-FRAGMENT LIGHTING COMPUTATIONS OTHER LIGHTING MODELS FRESNEL RE?ECTION GAUSSIAN RE?ECTION ANISOTROPIC LIGHTING OREN-NAYAR MODEL COOK-TORRANCE MODEL BUMP MAPPING WITH TEXTURES APPROXIMATING BUMP MAPPING USING TEXTURE TANGENT SPACE FORWARD DIFFERENCING LIMITATIONS NORMAL MAPS VECTOR NORMALIZATION BUMP-MAPPED REFLECTIONS HIGH DYNAMIC RANGE LIGHTING BLOOM AND GLARE EFFECTS GLOBAL ILLUMINATION VIRTUAL LIGHT TECHNIQUE COMBINING OPENGL LIGHTING WITH RADIOSITY AMBIENT OCCLUSION PART III ADVANCED TECHNIQUES CAD AND MODELING TECHNIQUES PICKING AND HIGHLIGHTING OPENGL SELECTION OBJECT TAGGING IN THE COLOR BUFFER PROXY GEOMETRY MAPPING FROM WINDOW TO OBJECT COORDINATES OTHER PICKING METHODS HIGHLIGHTING XOR HIGHLIGHTING FOREGROUND OBJECT MANIPULATION CULLING TECHNIQUES OCCLUSION CULLING CHOOSING OCCLUDERS BUILDING THE OCCLUSION MAP BUILDING THE DEPTH ESTIMATION BUFFER OCCLUSION TESTING OTHER OCCLUSION TESTING METHODS GEOMETRIC LEVEL OF DETAIL CHANGING DETAIL TRANSITION TECHNIQUES VISUALIZING SURFACE ORIENTATION VISUALIZING SURFACE CURVATURE LINE RENDERING TECHNIQUES WIREFRAME MODELS HIDDEN LINES POLYGON OFFSET DEPTH RANGE HALOED LINES SILHOUETTE EDGES PREVENTING ANTIALIASING ARTIFACTS END CAPS ON WIDE LINES COPLANAR POLYGONS AND DECALING CAPPING CLIPPED SOLIDS CONSTRUCTIVE SOLID GEOMETRY SCENE REALISM REFLECTIONS OBJECT VS IMAGE TECHNIQUES PLANAR RE?ECTORS CURVED RE?ECTORS INTERRE?ECTIONS IMPERFECT RE?ECTORS REFRACTION REFRACTION EQUATION PLANAR REFRACTION TEXTURE MAPPED REFRACTION ENVIRONMENT MAPPED REFRACTION MODELING MULTIPLE REFRACTION BOUNDARIES CLIPPING REFRACTED OBJECTS CREATING ENVIRONMENT MAPS CREATING ENVIRONMENT MAPS WITH RAY CASTING CREATING ENVIRONMENT MAPS WITH TEXTURE WARPING CUBE MAP TEXTURES SPHERE MAP TEXTURES DUAL-PARABOLOID MAPS UPDATING ENVIRONMENT MAPS DYNAMICALLY SHADOWS PROJECTIVE SHADOWS SHADOW VOLUMES SHADOW MAPS CREATING SOFT SHADOWS NATURAL DETAIL PARTICLE SYSTEMS REPRESENTING PARTICLES NUMBER OF PARTICLES MODELING PARTICLE INTERACTIONS UPDATING AND RENDERING PARTICLES APPLICATIONS DYNAMIC MESHES PROCEDURAL TEXTURE GENERATION FILTERED NOISE FUNCTIONS GENERATING NOISE FUNCTIONS FILTERING USING TEXTURE CONVOLUTION OPTIMIZING THE CONVOLUTION PROCESS SPECTRAL SYNTHESIS TURBULENCE RANDOM IMAGE WARPING GENERATING 3D NOISE ILLUSTRATION AND ARTISTIC TECHNIQUES PROJECTIONS FOR ILLUSTRATION AXONOMETRIC PROJECTION OBLIQUE PROJECTION NONPHOTOREALISTIC LIGHTING MODELS MATTE SURFACES METALLIC SURFACES EDGE LINES CUTAWAY VIEWS SURFACE TEXTURE DEPTH CUING PATTERNS AND HATCHING CROSS HATCHING AND 3D HALFTONES HALFTONING 2D DRAWING TECHNIQUES ACCURACY IN 2D DRAWING LINE JOINS 2D TRIM CURVES TEXT RENDERING IMAGE-BASED TEXT GEOMETRY-BASED TEXT DRAWING AND PAINTING UNDO AND RESOLUTION INDEPENDENCE PAINTING IN 3D PAINTING ON IMAGES SCIENTIFIC VISUALIZATION MAPPING NUMBERS TO PICTURES VISUAL CUES AND PERCEPTION DATA CHARACTERIZATION POINT DATA VISUALIZATION SCATTER PLOTS ICONOGRAPHIC DISPLAY ANDREWS PLOTS HISTOGRAMS AND CHARTS SCALAR FIELD VISUALIZATION LINE GRAPHS CONTOUR LINES ANNOTATING METRICS IMAGE DISPLAY SURFACE DISPLAY ISOSURFACES VOLUME SLICING VOLUME RENDERING TEXTURE SLICING SPLATTING CREATING VOLUME DATA VECTOR FIELD VISUALIZATION ICONS PARTICLE TRACING STREAM LINES ILLUMINATED STREAM LINES LINE INTEGRAL CONVOLUTION TENSOR FIELD VISUALIZATION HYPERSTREAMLINES STRUCTURING APPLICATIONS FOR PERFORMANCE STRUCTURING GRAPHICS PROCESSING SCENE GRAPHS VERTEX UPDATES TEXTURE UPDATES MANAGING FRAME TIME INPUT PHASE RENDERING PHASE COMPUTATION PHASE THE SAFETY MARGIN APPLICATION PERFORMANCE TUNING LOCATING BOTTLENECKS FINDING APPLICATION BOTTLENECKS MEASURING PERFORMANCE MEASURING DEPTH COMPLEXITY PIPELINE INTERLEAVING