Advanced Graphics Programming Using OpenGL -  David Blythe,  Tom McReynolds

Advanced Graphics Programming Using OpenGL (eBook)

eBook Download: PDF | EPUB
2005 | 1. Auflage
672 Seiten
Elsevier Science (Verlag)
978-0-08-047572-1 (ISBN)
Systemvoraussetzungen
Systemvoraussetzungen
73,95 inkl. MwSt
  • Download sofort lieferbar
  • Zahlungsarten anzeigen
Today truly useful and interactive graphics are available on affordable computers. While hardware progress has been impressive, widespread gains in software expertise have come more slowly. Information about advanced techniques-beyond those learned in introductory computer graphics texts-is not as easy to come by as inexpensive hardware.

This book brings the graphics programmer beyond the basics and introduces them to advanced knowledge that is hard to obtain outside of an intensive CG work environment. The book is about graphics techniques-those that don't require esoteric hardware or custom graphics libraries-that are written in a comprehensive style and do useful things. It covers graphics that are not covered well in your old graphics textbook. But it also goes further, teaching you how to apply those techniques in real world applications, filling real world needs.

* Emphasizes the algorithmic side of computer graphics, with a practical application focus, and provides usable techniques for real world problems.
* Serves as an introduction to the techniques that are hard to obtain outside of an intensive computer graphics work environment.
* Sophisticated and novel programming techniques are implemented in C using the OpenGL library, including coverage of color and lighting, texture mapping, blending and compositing, antialiasing, image processing, special effects, natural phenomena, artistic and non-photorealistic techniques, and many others.
* Code fragments are used in the book, and full blown example programs for virtually every algorithm are available at www.mkp.com/opengl
Today truly useful and interactive graphics are available on affordable computers. While hardware progress has been impressive, widespread gains in software expertise have come more slowly. Information about advanced techniques-beyond those learned in introductory computer graphics texts-is not as easy to come by as inexpensive hardware. This book brings the graphics programmer beyond the basics and introduces them to advanced knowledge that is hard to obtain outside of an intensive CG work environment. The book is about graphics techniques-those that don't require esoteric hardware or custom graphics libraries-that are written in a comprehensive style and do useful things. It covers graphics that are not covered well in your old graphics textbook. But it also goes further, teaching you how to apply those techniques in real world applications, filling real world needs. Emphasizes the algorithmic side of computer graphics, with a practical application focus, and provides usable techniques for real world problems. Serves as an introduction to the techniques that are hard to obtain outside of an intensive computer graphics work environment. Sophisticated and novel programming techniques are implemented in C using the OpenGL library, including coverage of color and lighting; texture mapping; blending and compositing; antialiasing; image processing; special effects; natural phenomena; artistic and non-photorealistic techniques, and many others.

Front Cover 1
Advanced Graphics Programming Using OpenGL 4
Copyright Page 5
Contents 7
Preface 24
Acknowledgments 28
Biographies 29
Part I: Concepts 30
Chapter 1. Geometry Representation and Modeling 32
1.1 Polygonal Representation 32
1.2 Decomposition and Tessellation 33
1.3 Shading Normals 37
1.4 Triangle Stripping 41
1.5 Vertices and Vertex Arrays 43
1.6 Modeling vs. Rendering Revisited 46
Chapter 2. 3D Transformations 48
2.1 Data Representation 48
2.2 Overview of the Transformation Pipeline 49
2.3 Normal Transformation 52
2.4 Texture Coordinate Generation and Transformation 54
2.5 Modeling Transforms 56
2.6 Visualizing Transform Sequences 57
2.7 Projection Transform 59
2.8 The Z Coordinate and Perspective Projection 59
2.9 Vertex Programs 61
2.10 Summary 63
Chapter 3. Color, Shading, and Lighting 64
3.1 Representing Color 64
3.2 Shading 69
3.3 Lighting 72
3.4 Fixed-Point and Floating-Point Arithmetic 82
3.5 Summary 85
Chapter 4.Digital Images and Image Manipulation 86
4.1 Image Representation 86
4.2 Digital Filtering 89
4.3 Convolution 91
4.4 Images in OpenGL 92
4.5 Positioning Images 94
4.6 Pixel Store Operations 94
4.7 Pixel Transfer Operations 96
4.8 ARB Imaging Subset 97
4.9 Off-Screen Processing 101
4.10 Summary 101
Chapter 5. Texture Mapping 102
5.1 Loading Texture Images 102
5.2 Texture Coordinates 106
5.3 Loading Texture Images from the Frame Buffer 108
5.4 Environment Mapping 109
5.5 3D Texture 117
5.6 Filtering 119
5.7 Additional Control of Texture Level of Detail 120
5.8 Texture Objects 122
5.9 Multitexture 124
5.10 Texture Environment 127
5.11 Summary 131
Chapter 6. Rasterization and Fragment Processing 132
6.1 Rasterization 133
6.2 Fragment Operations 139
6.3 Framebuffer Operations 144
6.4 Summary 146
Chapter 7. Window System and Platform Integration 148
7.1 Renderer and Window State 149
7.2 Address Space and Threads 150
7.3 Anatomy of a Window 151
7.4 Off-Screen Rendering 153
7.5 Rendering to Texture Maps 155
7.6 Direct and Indirect Rendering 156
Chapter 8. OpenGL Implementations 158
8.1 OpenGL Versions 158
8.2 OpenGL Extensions 160
8.3 OpenGL ES for Embedded Systems 160
8.4 OpenGL Pipeline Evolution 166
8.5 Hardware Implementations of the Pipeline 167
8.6 The Future 180
Part II: Basic Techniques 182
Chapter 9. Multiple Rendering Passes 184
9.1 Invariance 184
9.2 Multipass Overview 185
9.3 The Multipass Toolbox 188
9.4 Multipass Limitations 194
9.5 Multipass vs. Micropass 194
9.6 Deferred Shading 196
9.7 Summary 196
Chapter 10. Antialiasing 198
10.1 Full-Scene Antialiasing 199
10.2 Supersampling 200
10.3 Area Sampling 206
10.4 Line and Point Antialiasing 207
10.5 Antialiasing with Textures 209
10.6 Polygon Antialiasing 210
10.7 Temporal Antialiasing 211
10.8 Summary 213
Chapter 11. Compositing, Blending, and Transparency 214
11.1 Combining Two Images 214
11.2 Other Compositing Operators 219
11.3 Keying and Matting 221
11.4 Blending Artifacts 221
11.5 Compositing Images with Depth 223
11.6 Other Blending Operations 224
11.7 Dissolves 225
11.8 Transparency 228
11.9 Alpha-Blended Transparency 229
11.10 Screen-Door Transparency 234
11.11 Summary 237
Chapter 12. Image Processing Techniques 240
12.1 OpenGL Imaging Support 240
12.2 Image Storage 241
12.3 Point Operations 242
12.4 Region-based Operations 252
12.5 Reduction Operations 254
12.6 Convolution 256
12.7 Geometric Operations 264
12.8 Image-Based Depth of Field 267
12.9 High Dynamic Range Imaging 270
12.10 Summary 274
Chapter 13. Basic Transform Techniques 276
13.1 Computing Inverse Transforms Efficiently 276
13.2 Stereo Viewing 278
13.3 Depth of Field 281
13.4 Image Tiling 283
13.5 Billboarding Geometry 286
13.6 Texture Coordinate vs. Geometric Transformations 290
13.7 Interpolating Vertex Components through a Perspective Transformation 294
13.8 Summary 297
Chapter 14. Texture Mapping Techniques 298
14.1 Loading Texture Images into a Framebuffer 299
14.2 Optimizing Texture Coordinate Assignment 299
14.3 3D Textures 300
14.4 Texture Mosaics 303
14.5 Texture Tiling 306
14.6 Texture Paging 308
14.7 Prefiltered Textures 316
14.8 Dual-Paraboloid Environment Mapping 320
14.9 Texture Projection 325
14.10 Texture Color Coding and Contouring 327
14.11 2D Image Warping 329
14.12 Texture Animation 331
14.13 Detail Textures 335
14.14 Texture Sharpening 341
14.15 Mipmap Generation 342
14.16 Texture Map Limits 344
14.17 Summary 345
Chapter 15. Lighting Techniques 346
15.1 Limitations in Vertex Lighting 346
15.2 Fragment Lighting Using Texture Mapping 350
15.3 Spotlight Effects Using Projective Textures 351
15.4 Specular Lighting Using Environment Maps 354
15.5 Light Maps 356
15.6 BRDF-based Lighting 361
15.7 Reflectance Maps 361
15.8 Per-fragment Lighting Computations 363
15.9 Other Lighting Models 364
15.10 Bump Mapping with Textures 372
15.11 Normal Maps 381
15.12 Bump-mapped Reflections 382
15.13 High Dynamic Range Lighting 383
15.14 Global Illumination 384
15.15 Summary 388
Part III: Advanced Techniques 390
Chapter 16. CAD and Modeling Techniques 392
16.1 Picking and Highlighting 392
16.2 Culling Techniques 398
16.3 Occlusion Culling 399
16.4 Geometric Level of Detail 402
16.5 Visualizing Surface Orientation 406
16.7 Line Rendering Techniques 409
16.8 Coplanar Polygons and Decaling 419
16.9 Capping Clipped Solids 421
16.10 Constructive Solid Geometry 422
Chapter 17. Scene Realism 432
17.1 Reflections 433
17.2 Refraction 453
17.3 Creating Environment Maps 461
17.4 Shadows 478
17.5 Summary 494
Chapter 18. Natural Detail 496
18.1 Particle Systems 496
18.2 Dynamic Meshes 513
18.3 Procedural Texture Generation 516
18.4 Summary 529
Chapter 19. Illustration and Artistic Techniques 530
19.1 Projections for Illustration 530
19.2 Nonphotorealistic Lighting Models 534
19.3 Edge Lines 536
19.4 Cutaway Views 537
19.5 Depth Cuing 540
19.6 Patterns and Hatching 541
19.7 2D Drawing Techniques 545
19.8 Text Rendering 549
19.9 Drawing and Painting 554
19.10 Summary 559
Chapter 20. Scientific Visualization 560
20.1 Mapping Numbers to Pictures 560
20.2 Visual Cues and Perception 560
20.3 Data Characterization 561
20.4 Point Data Visualization 563
20.5 Scalar Field Visualization 567
20.6 Vector Field Visualization 589
20.7 Tensor Field Visualization 597
20.8 Summary 599
Chapter 21. Structuring Applications for Performance 600
21.1 Structuring Graphics Processing 600
21.2 Managing Frame Time 606
21.3 Application Performance Tuning 610
21.4 Summary 621
Appendix A. Using OpenGL Extensions 622
A.1 How OpenGL Extensions are Documented 622
A.2 Finding OpenGL Extension Specifications 623
A.3 How to Read an OpenGL Extension Specification 623
A.4 Portable Use of OpenGL Extensions 628
A.5 Using Extension Function Pointers 631
Appendix B Equations 634
B.1 3D Vectors 634
B.2 Projection Matrices 636
B.3 Viewing Transforms 637
B.4 Modeling Transforms 638
B.5 Parallel and Perpendicular Vectors 639
B.6 Reflection Vector 639
B.7 Lighting Equations 639
B.8 Function Approximations 641
Bibliography 644
Subject Index 658

PDFPDF (Adobe DRM)
Größe: 9,8 MB

Kopierschutz: Adobe-DRM
Adobe-DRM ist ein Kopierschutz, der das eBook vor Mißbrauch schützen soll. Dabei wird das eBook bereits beim Download auf Ihre persönliche Adobe-ID autorisiert. Lesen können Sie das eBook dann nur auf den Geräten, welche ebenfalls auf Ihre Adobe-ID registriert sind.
Details zum Adobe-DRM

Dateiformat: PDF (Portable Document Format)
Mit einem festen Seiten­layout eignet sich die PDF besonders für Fach­bücher mit Spalten, Tabellen und Abbild­ungen. Eine PDF kann auf fast allen Geräten ange­zeigt werden, ist aber für kleine Displays (Smart­phone, eReader) nur einge­schränkt geeignet.

Systemvoraussetzungen:
PC/Mac: Mit einem PC oder Mac können Sie dieses eBook lesen. Sie benötigen eine Adobe-ID und die Software Adobe Digital Editions (kostenlos). Von der Benutzung der OverDrive Media Console raten wir Ihnen ab. Erfahrungsgemäß treten hier gehäuft Probleme mit dem Adobe DRM auf.
eReader: Dieses eBook kann mit (fast) allen eBook-Readern gelesen werden. Mit dem amazon-Kindle ist es aber nicht kompatibel.
Smartphone/Tablet: Egal ob Apple oder Android, dieses eBook können Sie lesen. Sie benötigen eine Adobe-ID sowie eine kostenlose App.
Geräteliste und zusätzliche Hinweise

Zusätzliches Feature: Online Lesen
Dieses eBook können Sie zusätzlich zum Download auch online im Webbrowser lesen.

Buying eBooks from abroad
For tax law reasons we can sell eBooks just within Germany and Switzerland. Regrettably we cannot fulfill eBook-orders from other countries.

EPUBEPUB (Adobe DRM)
Größe: 15,2 MB

Kopierschutz: Adobe-DRM
Adobe-DRM ist ein Kopierschutz, der das eBook vor Mißbrauch schützen soll. Dabei wird das eBook bereits beim Download auf Ihre persönliche Adobe-ID autorisiert. Lesen können Sie das eBook dann nur auf den Geräten, welche ebenfalls auf Ihre Adobe-ID registriert sind.
Details zum Adobe-DRM

Dateiformat: EPUB (Electronic Publication)
EPUB ist ein offener Standard für eBooks und eignet sich besonders zur Darstellung von Belle­tristik und Sach­büchern. Der Fließ­text wird dynamisch an die Display- und Schrift­größe ange­passt. Auch für mobile Lese­geräte ist EPUB daher gut geeignet.

Systemvoraussetzungen:
PC/Mac: Mit einem PC oder Mac können Sie dieses eBook lesen. Sie benötigen eine Adobe-ID und die Software Adobe Digital Editions (kostenlos). Von der Benutzung der OverDrive Media Console raten wir Ihnen ab. Erfahrungsgemäß treten hier gehäuft Probleme mit dem Adobe DRM auf.
eReader: Dieses eBook kann mit (fast) allen eBook-Readern gelesen werden. Mit dem amazon-Kindle ist es aber nicht kompatibel.
Smartphone/Tablet: Egal ob Apple oder Android, dieses eBook können Sie lesen. Sie benötigen eine Adobe-ID sowie eine kostenlose App.
Geräteliste und zusätzliche Hinweise

Zusätzliches Feature: Online Lesen
Dieses eBook können Sie zusätzlich zum Download auch online im Webbrowser lesen.

Buying eBooks from abroad
For tax law reasons we can sell eBooks just within Germany and Switzerland. Regrettably we cannot fulfill eBook-orders from other countries.

Mehr entdecken
aus dem Bereich
Explore powerful modeling and character creation techniques used for …

von Lukas Kutschera

eBook Download (2024)
Packt Publishing (Verlag)
43,19
Discover the smart way to polish your digital imagery skills by …

von Gary Bradley

eBook Download (2024)
Packt Publishing (Verlag)
45,59
Generate creative images from text prompts and seamlessly integrate …

von Margarida Barreto

eBook Download (2024)
Packt Publishing (Verlag)
32,39