
Because Knetbooks knows college students. Our rental program is designed to save you time and money. Whether you need a textbook for a semester, quarter or even a summer session, we have an option for you. Simply select a rental period, enter your information and your book will be on its way!
| Introduction | p. 1 |
| Classic OpenGL | |
| Introduction to 3D Graphics and OpenGL | p. 11 |
| What's This All About? | p. 11 |
| A Brief History of Computer Graphics | p. 11 |
| A Survey of 3D Effects | p. 15 |
| Common Uses for 3D Graphics | p. 21 |
| Basic 3D Programming Principles | p. 24 |
| Summary | p. 32 |
| Using OpenGL | p. 33 |
| ... MORE | p. 33 |
| How Does OpenGL Work? | p. 41 |
| OpenGL: An API, Not a Language | p. 44 |
| API Specifics | p. 45 |
| Platform Independence | p. 48 |
| Animation with OpenGL and GLUT | p. 62 |
| The OpenGL State Machine | p. 68 |
| OpenGL Errors | p. 69 |
| Identifying the Version | p. 71 |
| Getting a Clue with glHint | p. 71 |
| Using Extensions | p. 72 |
| Summary | p. 74 |
| Reference | p. 75 |
| Drawing in Space: Geometric Primitives and Buffers | p. 89 |
| Drawing Points in 3D | p. 90 |
| Setting Up a 3D Canvas | p. 90 |
| A 3D Point: The Vertex | p. 92 |
| Draw Something! | p. 93 |
| Setting the Point Size | p. 97 |
| Drawing Lines in 3D | p. 100 |
| Drawing Triangles in 3D | p. 109 |
| Building Solid Objects | p. 112 |
| Other Primitives | p. 122 |
| Other Buffer Tricks | p. 132 |
| Summary | p. 141 |
| Reference | p. 142 |
| Geometric Transformations: The Pipeline | p. 159 |
| Is This the Dreaded Math Chapter? | p. 159 |
| Understanding Transformations | p. 160 |
| The Matrix: Mathematical Currency for 3D Graphics | p. 166 |
| Using Projections | p. 178 |
| Advanced Matrix Manipulation | p. 186 |
| Moving Around in OpenGL Using Cameras and Actors | p. 193 |
| Bringing It All Together | p. 196 |
| Summary | p. 203 |
| Reference | p. 204 |
| Color, Materials, and Lighting: The Basics | p. 211 |
| What Is Color? | p. 212 |
| PC Color Hardware | p. 215 |
| PC Display Modes | p. 216 |
| Using Color in OpenGL | p. 218 |
| Color in the Real World | p. 224 |
| Materials in the Real World | p. 227 |
| Adding Light to a Scene | p. 229 |
| Using a Light Source | p. 234 |
| Lighting Effects | p. 244 |
| Putting It All Together | p. 250 |
| Shadows | p. 258 |
| Summary | p. 265 |
| Reference | p. 266 |
| More on Colors and Materials | p. 275 |
| Blending | p. 275 |
| Fog | p. 286 |
| Accumulation Buffer | p. 289 |
| Other Color Operations | p. 292 |
| Summary | p. 294 |
| Reference | p. 295 |
| Imaging with OpenGL | p. 301 |
| Bitmaps | p. 301 |
| Pixel Packing | p. 309 |
| Pixmaps | p. 310 |
| More Fun with Pixels | p. 320 |
| The Imaging "Subset" | p. 335 |
| Summary | p. 353 |
| Reference | p. 353 |
| Texture Mapping: The Basics | p. 375 |
| Loading Textures | p. 376 |
| Mapping Textures to Geometry | p. 380 |
| A Simple 2D Example | p. 383 |
| Texture Environment | p. 390 |
| Texture Parameters | p. 392 |
| Texture Objects | p. 405 |
| Summary | p. 416 |
| Reference | p. 416 |
| Texture Mapping: Beyond the Basics | p. 435 |
| Secondary Color | p. 435 |
| Anisotropic Filtering | p. 438 |
| Texture Compression | p. 440 |
| Texture Coordinate Generation | p. 443 |
| Multitexture | p. 457 |
| Texture Combiners | p. 465 |
| Summary | p. 467 |
| Reference | p. 467 |
| Curves and Surfaces | p. 477 |
| Built-in Surfaces | p. 478 |
| Bezier Curves and Surfaces | p. 487 |
| NURBS | p. 501 |
| Tessellation | p. 508 |
| Summary | p. 518 |
| Reference | p. 519 |
| It's All About the Pipeline: Faster Geometry Throughput | p. 547 |
| Model Assembly 101 | p. 548 |
| Display Lists | p. 563 |
| Measuring Performance | p. 567 |
| Vertex Arrays | p. 574 |
| Summary | p. 596 |
| Reference | p. 596 |
| Interactive Graphics | p. 611 |
| Selection | p. 612 |
| A Feedback Example | p. 627 |
| Summary | p. 634 |
| Reference | p. 634 |
| OpenGL Everywhere | |
| Wiggle: OpenGL on Windows | p. 643 |
| OpenGL Implementations on Windows | p. 644 |
| Basic Windows Rendering | p. 647 |
| Putting It All Together | p. 658 |
| Windows Palettes | p. 669 |
| OpenGL and Windows Fonts | p. 679 |
| Full-Screen Rendering | p. 685 |
| Multithreaded Rendering | p. 689 |
| OpenGL and WGL Extensions | p. 690 |
| Summary | p. 725 |
| Reference | p. 725 |
| OpenGL on MacOS X | p. 743 |
| The Basics | p. 743 |
| Using the AGL and Carbon APIs | p. 744 |
| Using the Cocoa API | p. 775 |
| Summary | p. 788 |
| Reference | p. 788 |
| GLX: OpenGL on Linux | p. 793 |
| The Basics | p. 793 |
| The OpenGL Extension for the X Window System | p. 797 |
| Creating Bitmap Fonts for OpenGL | p. 812 |
| Offscreen Rendering | p. 825 |
| Using the Motif Library | p. 839 |
| Summary | p. 855 |
| Reference | p. 855 |
| OpenGL: The Next Generation | |
| Buffer Objects: It's Your Video Memory; You Manage It! | p. 865 |
| First, You Need Vertex Arrays | p. 867 |
| Migration to Buffer Objects | p. 872 |
| Loading Data into Buffer Objects | p. 874 |
| A Few Loose Ends | p. 881 |
| Summary | p. 882 |
| Reference | p. 882 |
| Occlusion Queries: Why Do More Work Than You Need To? | p. 891 |
| The World Before Occlusion Queries | p. 892 |
| Bounding Boxes | p. 895 |
| Querying the Query Object | p. 900 |
| Summary | p. 903 |
| Reference | p. 903 |
| Depth Textures and Shadows | p. 907 |
| Be That Light | p. 908 |
| A New Kind of Texture | p. 913 |
| Draw the Shadows First?! | p. 913 |
| And Then There Was Light | p. 914 |
| Two Out of Three Ain't Bad | p. 925 |
| A Few Words About Polygon Offset | p. 926 |
| Summary | p. 927 |
| Reference | p. 928 |
| Programmable Pipeline: This Isn't Your Father's OpenGL | p. 931 |
| Out with the Old | p. 932 |
| In with the New | p. 936 |
| Introduction to Shader Extensions | p. 940 |
| Summary | p. 944 |
| Low-Level Shading: Coding to the Metal | p. 945 |
| Managing Low-Level Shaders | p. 946 |
| Instruction Sets | p. 950 |
| Variable Types | p. 954 |
| Input and Output Modifiers | p. 961 |
| Resource Consumption and Queries | p. 963 |
| Shader Options | p. 966 |
| Summary | p. 967 |
| Reference | p. 967 |
| High-Level Shading: The Real Slim Shader | p. 981 |
| Managing High-Level Shaders | p. 982 |
| Variables | p. 987 |
| Expressions | p. 991 |
| Control Flow | p. 995 |
| Summary | p. 999 |
| Reference | p. 999 |
| Vertex Shading: Do-It-Yourself Transform, Lighting, and Texgen | p. 1015 |
| Getting Your Feet Wet | p. 1015 |
| Diffuse Lighting | p. 1018 |
| Specular Lighting | p. 1021 |
| Improved Specular Lighting | p. 1024 |
| Per-Vertex Fog | p. 1032 |
| Per-Vertex Point Size | p. 1037 |
| Customized Vertex Transformation | p. 1040 |
| Vertex Blending | p. 1043 |
| Summary | p. 1049 |
| Fragment Shading: Empower Your Pixel Processing | p. 1051 |
| Color Conversion | p. 1052 |
| Image Processing | p. 1061 |
| Lighting | p. 1072 |
| Procedural Texture Mapping | p. 1083 |
| Summary | p. 1103 |
| Further Reading | p. 1105 |
| Other Good OpenGL Books | p. 1105 |
| 3D Graphics Books | p. 1105 |
| Web Sites | p. 1106 |
| Glossary | p. 1107 |
| OpenGL ES | p. 1113 |
| Reduction of Data Types | p. 1113 |
| Totally Gone | p. 1114 |
| Greatly Reduced Functionality | p. 1115 |
| Texture Mapping | p. 1115 |
| Raster Operations | p. 1115 |
| Lighting | p. 1115 |
| Conclusion | p. 1116 |
| Index | p. 1117 |
| Table of Contents provided by Ingram. All Rights Reserved. |