| |

| |

Preface | |

| |

| |

| |

Graphics Systems and Models | |

| |

| |

| |

Applications of Computer Graphics | |

| |

| |

| |

Display of Information | |

| |

| |

| |

Design | |

| |

| |

| |

Simulation and Animation | |

| |

| |

| |

User Interfaces | |

| |

| |

| |

A Graphics System | |

| |

| |

| |

Pixels and the Frame Buffer | |

| |

| |

| |

The CPU and the GPU | |

| |

| |

| |

Output Devices | |

| |

| |

| |

Input Devices | |

| |

| |

| |

Physical Input Devices | |

| |

| |

| |

Logical Devices | |

| |

| |

| |

Input Modes | |

| |

| |

| |

Images: Physical and Synthetic | |

| |

| |

| |

Objects and Viewers | |

| |

| |

| |

Light and Images | |

| |

| |

| |

Imaging Models | |

| |

| |

| |

Imaging Systems | |

| |

| |

| |

The Pinhole Camera | |

| |

| |

| |

The Human Visual System | |

| |

| |

| |

The Synthetic-Camera Model | |

| |

| |

| |

The Programmer's Interface | |

| |

| |

| |

The Pen-Plotter Model | |

| |

| |

| |

Three-Dimensional APIs | |

| |

| |

| |

A Sequence of Images | |

| |

| |

| |

The Modeling Rendering Paradigm | |

| |

| |

| |

Graphics Architectures | |

| |

| |

| |

Display Processors | |

| |

| |

| |

Pipeline Architectures | |

| |

| |

| |

The Graphics Pipeline | |

| |

| |

| |

Vertex Processing | |

| |

| |

| |

Clipping and Primitive Assembly | |

| |

| |

| |

Rasterization | |

| |

| |

| |

Fragment Processing | |

| |

| |

| |

Programmable Pipelines | |

| |

| |

| |

Performance Characteristics | |

| |

| |

Summary and Notes | |

| |

| |

Suggested Readings | |

| |

| |

Exercises | |

| |

| |

| |

Graphics Programming | |

| |

| |

| |

The Sierpinski Gasket | |

| |

| |

| |

Programming Two-Dimensional Applications | |

| |

| |

| |

The OpenGL Application Programming Interface | |

| |

| |

| |

Graphics Functions | |

| |

| |

| |

The Graphics Pipeline and State Machines | |

| |

| |

| |

The OpenGL Interface | |

| |

| |

| |

Coordinate Systems | |

| |

| |

| |

Primitives and Attributes | |

| |

| |

| |

Polygon Basics | |

| |

| |

| |

Polygons in OpenGL | |

| |

| |

| |

Approximating a Sphere | |

| |

| |

| |

Triangulation | |

| |

| |

| |

Text | |

| |

| |

| |

Curved Objects | |

| |

| |

| |

Attributes | |

| |

| |

| |

Color | |

| |

| |

| |

RGB Color | |

| |

| |

| |

Indexed Color | |

| |

| |

| |

Setting of Color Attributes | |

| |

| |

| |

Viewing | |

| |

| |

| |

The Orthographic View | |

| |

| |

| |

Two-Dimensional Viewing | |

| |

| |

| |

Control Functions | |

| |

| |

| |

Interaction with the Window System | |

| |

| |

| |

Aspect Ratio and Viewports | |

| |

| |

| |

The main, display, and init Functions | |

| |

| |

| |

Program Structure | |

| |

| |

| |

The Gasket Program | |

| |

| |

| |

Rendering the Points | |

| |

| |

| |

The Vertex Shader | |

| |

| |

| |

The Fragment Shader | |

| |

| |

| |

Combining the Parts | |

| |

| |

| |

The initShader Function | |

| |

| |

| |

Polygons and Recursion | |

| |

| |

| |

The Three-Dimensional Gasket | |

| |

| |

| |

Use of Three-Dimensional Points | |

| |

| |

| |

Use of Polygons in Three Dimensions | |

| |

| |

| |

Hidden-Surface Removal | |

| |

| |

| |

Adding Interaction | |

| |

| |

| |

Using the Pointing Device | |

| |

| |

| |

Window Events | |

| |

| |

| |

Keyboard Events | |

| |

| |

| |

The Idle Callback | |

| |

| |

| |

Double Buffering | |

| |

| |

| |

Window Management | |

| |

| |

| |

Menus | |

| |

| |

Summary and Notes | |

| |

| |

Suggested Readings | |

| |

| |

Exercises | |

| |

| |

| |

Geometric Objects and Transformations | |

| |

| |

| |

Scalars, Points, and Vectors | |

| |

| |

| |

Geometric Objects | |

| |

| |

| |

Coordinate-Free Geometry | |

| |

| |

| |

The Mathematical View: Vector and Affine Spaces | |

| |

| |

| |

The Computer Science View | |

| |

| |

| |

Geometric ADTs | |

| |

| |

| |

Lines | |

| |

| |

| |

Affine Sums | |

| |

| |

| |

Convexity | |

| |

| |

| |

Dot and Cross Products | |

| |

| |

| |

Planes | |

| |

| |

| |

Three-Dimensional Primitives | |

| |

| |

| |

Coordinate Systems and Frames | |

| |

| |

| |

Representations and N-Tuples | |

| |

| |

| |

Change of Coordinate Systems | |

| |

| |

| |

Example Change of Representation | |

| |

| |

| |

Homogeneous Coordinates | |

| |

| |

| |

Example Change in Frames | |

| |

| |

| |

Working with Representations | |

| |

| |

| |

Frames in OpenGL | |

| |

| |

| |

Matrix and Vector Classes | |

| |

| |

| |

Modeling a Colored Cube | |

| |

| |

| |

Modeling the Faces | |

| |

| |

| |

Inward- and Outward-Pointing Faces | |

| |

| |

| |

Data Structures for Object Representation | |

| |

| |

| |

The Color Cube | |

| |

| |

| |

Interpolation | |

| |

| |

| |

Displaying the Cube | |

| |

| |

| |

Affine Transformations | |

| |

| |

| |

Translation, Rotation, and Scaling | |

| |

| |

| |

Translation | |

| |

| |

| |

Rotation | |

| |

| |

| |

Scaling | |

| |

| |

| |

Transformations in Homogeneous Coordinates | |

| |

| |

| |

Translation | |

| |

| |

| |

Scaling | |

| |

| |

| |

Rotation | |

| |

| |

| |

Shear | |

| |

| |

| |

Concatenation of Transformations | |

| |

| |

| |

Rotation About a Fixed Point | |

| |

| |

| |

General Rotation | |

| |

| |

| |

The Instance Transformation | |

| |

| |

| |

Rotation About an Arbitrary Axis | |

| |

| |

| |

Transformation Matrices in OpenGL | |

| |

| |

| |

Current Transformation Matrices | |

| |

| |

| |

Rotation, Translation, and Scaling | |

| |

| |

| |

Rotation About a Fixed Point | |

| |

| |

| |

Order of Transformations | |

| |

| |

| |

Spinning of the Cube | |

| |

| |

| |

Updating in the Display Callback | |

| |

| |

| |

Uniform Variables | |

| |

| |

| |

Interfaces to Three-Dimensional Applications | |

| |

| |

| |

Using Areas of the Screen | |

| |

| |

| |

A Virtual Trackball | |

| |

| |

| |

Smooth Rotations | |

| |

| |

| |

Incremental Rotation | |

| |

| |

| |

Quaternions | |

| |

| |

| |

Complex Numbers and Quaternions | |

| |

| |

| |

Quaternions and Rotation | |

| |

| |

Summary and Notes | |

| |

| |

Suggested Readings | |

| |

| |

Exercises | |

| |

| |

| |

Viewing | |

| |

| |

| |

Classical and Computer Viewing | |

| |

| |

| |

Classical Viewing | |

| |

| |

| |

Orthographic Projections | |

| |

| |

| |

Axonometric Projections | |

| |

| |

| |

Oblique Projections | |

| |

| |

| |

Perspective Viewing | |

| |

| |

| |

Viewing with a Computer | |

| |

| |

| |

Positioning of the Camera | |

| |

| |

| |

Positioning of the Camera Frame | |

| |

| |

| |

Two Viewing APIs | |

| |

| |

| |

The Look-At Function | |

| |

| |

| |

Other Viewing APIs | |

| |

| |

| |

Parallel Projections | |

| |

| |

| |

Orthogonal Projections | |

| |

| |

| |

Parallel Viewing with OpenGL | |

| |

| |

| |

Projection Normalization | |

| |

| |

| |

Orthogonal-Projection Matrices | |

| |

| |

| |

Oblique Projections | |

| |

| |

| |

An Interactive Viewer | |

| |

| |

| |

Perspective Projections | |

| |

| |

| |

Simple Perspective Projections | |

| |

| |

| |

Perspective Projections with OpenGL | |

| |

| |

| |

Perspective Functions | |

| |

| |

| |

Perspective-Projection Matrices | |

| |

| |

| |

Perspective Normalization | |

| |

| |

| |

OpenGL Perspective Transformations | |

| |

| |

| |

Perspective Example | |

| |

| |

| |

Hidden-Surface Removal | |

| |

| |

| |

Culling | |

| |

| |

| |

Displaying Meshes | |

| |

| |

| |

Displaying Meshes as a Surface | |

| |

| |

| |

Polygon Offset | |

| |

| |

| |

Walking Through a Scene | |

| |

| |

| |

Projections and Shadows | |

| |

| |

Summary and Notes | |

| |

| |

Suggested Readings | |

| |

| |

Exercises | |

| |

| |

| |

Lighting and Shading | |

| |

| |

| |

Light and Matter | |

| |

| |

| |

Light Sources | |

| |

| |

| |

Color Sources | |

| |

| |

| |

Ambient Light | |

| |

| |

| |

Point Sources | |

| |

| |

| |

Spotlights | |

| |

| |

| |

Distant Light Sources | |

| |

| |

| |

The Phong Reflection Model | |

| |

| |

| |

Ambient Reflection | |

| |

| |

| |

Diffuse Reflection | |

| |

| |

| |

Specular Reflection | |

| |

| |

| |

The Modified Phong Model | |

| |

| |

| |

Computation of Vectors | |

| |

| |

| |

Normal Vectors | |

| |

| |

| |

Angle of Reflection | |

| |

| |

| |

Polygonal Shading | |

| |

| |

| |

Flat Shading | |

| |

| |

| |

Smooth and Gouraud Shading | |

| |

| |

| |

Phong Shading | |

| |

| |

| |

Approximation of a Sphere by Recursive Subdivision | |

| |

| |

| |

Specifying Lighting Parameters | |

| |

| |

| |

Light Sources | |

| |

| |

| |

Materials | |

| |

| |

| |

Implementing a Lighting Model | |

| |

| |

| |

Applying the Lighting Model in the Application | |

| |

| |

| |

Efficiency | |

| |

| |

| |

Lighting in the Vertex Shader | |

| |

| |

| |

Shading of the Sphere Model | |

| |

| |

| |

Per-Fragment Lighting | |

| |

| |

| |

Nonphotorealistic Shading | |

| |

| |

| |

Global Illumination | |

| |

| |

Summary and Notes | |

| |

| |

Suggested Readings | |

| |

| |

Exercises | |

| |

| |

| |

From Vertices to Fragments | |

| |

| |

| |

Basic Implementation Strategies | |

| |

| |

| |

Four Major Tasks | |

| |

| |

| |

Modeling | |

| |

| |

| |

Geometry Processing | |

| |

| |

| |

Rasterization | |

| |

| |

| |

Fragment Processing | |

| |

| |

| |

Clipping | |

| |

| |

| |

Line-Segment Clipping | |

| |

| |

| |

Cohen-Sutherland Clipping | |

| |

| |

| |

Liang-Barsky Clipping | |

| |

| |

| |

Polygon Clipping | |

| |

| |

| |

Clipping of Other Primitives | |

| |

| |

| |

Bounding Boxes and Volumes | |

| |

| |

| |

Curves, Surfaces, and Text | |

| |

| |

| |

Clipping in the Frame Buffer | |

| |

| |

| |

Clipping in Three Dimensions | |

| |

| |

| |

Rasterization | |

| |

| |

| |

Bresenham's Algorithm | |

| |

| |

| |

Polygon Rasterization | |

| |

| |

| |

Inside Outside Testing | |

| |

| |

| |

OpenGL and Concave Polygons | |

| |

| |

| |

Fill and Sort | |

| |

| |

| |

Flood Fill | |

| |

| |

| |

Singularities | |

| |

| |

| |

Hidden-Surface Removal | |

| |

| |

| |

Object-Space and Image-Space Approaches | |

| |

| |

| |

Sorting and Hidden-Surface Removal | |

| |

| |

| |

Scanline Algorithms | |

| |

| |

| |

Back-Face Removal | |

| |

| |

| |

The z-Buffer Algorithm | |

| |

| |

| |

Scan Conversion with the z-Buffer | |

| |

| |

| |

Depth Sort and the Painter's Algorithm | |

| |

| |

| |

Antialiasing | |

| |

| |

| |

Display Considerations | |

| |

| |

| |

Color Systems | |

| |

| |

| |

The Color Matrix | |

| |

| |

| |

Gamma Correction | |

| |

| |

| |

Dithering and Halftoning | |

| |

| |

Summary and Notes | |

| |

| |

Suggested Readings | |

| |

| |

Exercises | |

| |

| |

| |

Discrete Techniques | |

| |

| |

| |

Buffers | |

| |

| |

| |

Digital Images | |

| |

| |

| |

Writing into Buffers | |

| |

| |

| |

Writing Modes | |

| |

| |

| |

Writing with XOR | |

| |

| |

| |

Mapping Methods | |

| |

| |

| |

Texture Mapping | |

| |

| |

| |

Two-Dimensional Texture Mapping | |

| |

| |

| |

Texture Mapping in OpenGL | |

| |

| |

| |

Two-Dimensional Texture Mapping | |

| |

| |

| |

Texture Objects | |

| |

| |

| |

The Texture Array | |

| |

| |

| |

Texture Coordinates and Samplers | |

| |

| |

| |

Texture Sampling | |

| |

| |

| |

Working with Texture Coordinates | |

| |

| |

| |

Multitexturing | |

| |

| |

| |

Texture Generation | |

| |

| |

| |

Environment Maps | |

| |

| |

| |

Reflection Map Example | |

| |

| |

| |

Bump Mapping | |

| |

| |

| |

Finding Bump Maps | |

| |

| |

| |

Bump Map Example | |

| |

| |

| |

Compositing Techniques | |

| |

| |

| |

Opacity and Blending | |

| |

| |

| |

Image Compositing | |

| |

| |

| |

Blending and Compositing in OpenGL | |

| |

| |

| |

Antialiasing Revisited | |

| |

| |

| |

Back-to-Front and Front-to-Back Rendering | |

| |

| |

| |

Scene Antialiasing and Multisampling | |

| |

| |

| |

Image Processing | |

| |

| |

| |

Other Multipass Methods | |

| |

| |

| |

Sampling and Aliasing | |

| |

| |

| |

Sampling Theory | |

| |

| |

| |

Reconstruction | |

| |

| |

| |

Quantization | |

| |

| |

Summary and Notes | |

| |

| |

Suggested Readings | |

| |

| |

Exercises | |

| |

| |

| |

Modeling and Hierarchy | |

| |

| |

| |

Symbols and Instances | |

| |

| |

| |

Hierarchical Models | |

| |

| |

| |

A Robot Arm | |

| |

| |

| |

Trees and Traversal | |

| |

| |

| |

A Stack-Based Traversal | |

| |

| |

| |

Use of Tree Data Structures | |

| |

| |

| |

Animation | |

| |

| |

| |

Graphical Objects | |

| |

| |

| |

Methods, Attributes, and Messages | |

| |

| |

| |

A Cube Object | |

| |

| |

| |

Implementing the Cube Object | |

| |

| |

| |

Objects and Hierarchy | |

| |

| |

| |

Geometric Objects | |

| |

| |

| |

Scene Graphs | |

| |

| |

| |

Open Scene Graph | |

| |

| |

| |

Graphics and the Internet | |

| |

| |

| |

Hypermedia and HTML | |

| |

| |

| |

Java and Applets | |

| |

| |

| |

Interactive Graphics and the Web | |

| |

| |

| |

WebGL | |

| |

| |

| |

Other Tree Structures | |

| |

| |

| |

CSG Trees | |

| |

| |

| |

BSP Trees | |

| |

| |

| |

Quadtrees and Octrees | |

| |

| |

Summary and Notes | |

| |

| |

Suggested Readings | |

| |

| |

Exercises | |

| |

| |

| |

Procedural Methods | |

| |

| |

| |

Algorithmic Models | |

| |

| |

| |

Physically Based Models and Particle Systems | |

| |

| |

| |

Newtonian Particles | |

| |

| |

| |

Independent Particles | |

| |

| |

| |

Spring Forces | |

| |

| |

| |

Attractive and Repulsive Forces | |

| |

| |

| |

Solving Particle Systems | |

| |

| |

| |

Constraints | |

| |

| |

| |

Collisions | |

| |

| |

| |

Soft Constraints | |

| |

| |

| |

A Simple Particle System | |

| |

| |

| |

Displaying the Particles | |

| |

| |

| |

Updating Particle Positions | |

| |

| |

| |

Collisions | |

| |

| |

| |

Forces | |

| |

| |

| |

Flocking | |

| |

| |

| |

Language-Based Models | |

| |

| |

| |

Recursive Methods and Fractals | |

| |

| |

| |

Rulers and Length | |

| |

| |

| |

Fractal Dimension | |

| |

| |

| |

Midpoint Division and Brownian Motion | |

| |

| |

| |

Fractal Mountains | |

| |

| |

| |

The Mandelbrot Set | |

| |

| |

| |

Procedural Noise | |

| |

| |

Summary and Notes | |

| |

| |

Suggested Readings | |

| |

| |

Exercises | |

| |

| |

| |

Curves and Surfaces | |

| |

| |

| |

Representation of Curves and Surfaces | |

| |

| |

| |

Explicit Representation | |

| |

| |

| |

Implicit Representations | |

| |

| |

| |

Parametric Form | |

| |

| |

| |

Parametric Polynomial Curves | |

| |

| |

| |

Parametric Polynomial Surfaces | |

| |

| |

| |

Design Criteria | |

| |

| |

| |

Parametric Cubic Polynomial Curves | |

| |

| |

| |

Interpolation | |

| |

| |

| |

Blending Functions | |

| |

| |

| |

The Cubic Interpolating Patch | |

| |

| |

| |

Hermite Curves and Surfaces | |

| |

| |

| |

The Hermite Form | |

| |

| |

| |

Geometric and Parametric Continuity | |

| |

| |

| |

BÃ¿zier Curves and Surfaces | |

| |

| |

| |

BÃ¿zier Curves | |

| |

| |

| |

BÃ¿zier Surface Patches | |

| |

| |

| |

Cubic B-Splines | |

| |

| |

| |

The Cubic B-Spline Curve | |

| |

| |

| |

B-Splines and Basis | |

| |

| |

| |

Spline Surfaces | |

| |

| |

| |

General B-Splines | |

| |

| |

| |

Recursively Defined B-Splines | |

| |

| |

| |

Uniform Splines | |

| |

| |

| |

Nonuniform B-Splines | |

| |

| |

| |

NURBS | |

| |

| |

| |

Catmull-Rom Splines | |

| |

| |

| |

Rendering Curves and Surfaces | |

| |

| |

| |

Polynomial Evaluation Methods | |

| |

| |

| |

Recursive Subdivision of BÃ¿zier Polynomials | |

| |

| |

| |

Rendering Other Polynomial Curves by Subdivision | |

| |

| |

| |

Subdivision of BÃ¿zier Surfaces | |

| |

| |

| |

The Utah Teapot | |

| |

| |

| |

Algebraic Surfaces | |

| |

| |

| |

Quadrics | |

| |

| |

| |

Rendering of Surfaces by Ray Casting | |

| |

| |

| |

Subdivision Curves and Surfaces | |

| |

| |

| |

Mesh Subdivision | |

| |

| |

| |

Mesh Generation from Data | |

| |

| |

| |

Height Fields Revisited | |

| |

| |

| |

Delaunay Triangulation | |

| |

| |

| |

Point Clouds | |

| |

| |

Summary and Notes | |

| |

| |

Suggested Readings | |

| |

| |

Exercises | |

| |

| |

| |

Advanced Rendering | |

| |

| |

| |

Going Beyond Pipeline Rendering | |

| |

| |

| |

Ray Tracing | |

| |

| |

| |

Building a Simple Ray Tracer | |

| |

| |

| |

Recursive Ray Tracing | |

| |

| |

| |

Calculating Intersections | |

| |

| |

| |

Ray-Tracing Variations | |

| |

| |

| |

The Rendering Equation | |

| |

| |

| |

Radiosity | |

| |

| |

| |

The Radiosity Equation | |

| |

| |

| |

Solving the Radiosity Equation | |

| |

| |

| |

Computing Form Factors | |

| |

| |

| |

Carrying Out Radiosity | |

| |

| |

| |

RenderMan | |

| |

| |

| |

Parallel Rendering | |

| |

| |

| |

Sort-Middle Rendering | |

| |

| |

| |

Sort-Last Rendering | |

| |

| |

| |

Sort-First Rendering | |

| |

| |

| |

Volume Rendering | |

| |

| |

| |

Volumetric Data Sets | |

| |

| |

| |

Visualization of Implicit Functions | |

| |

| |

| |

Isosurfaces and Marching Cubes | |

| |

| |

| |

Mesh Simplification | |

| |

| |

| |

Direct Volume Rendering | |

| |

| |

| |

Assignment of Color and Opacity | |

| |

| |

| |

Splatting | |

| |

| |

| |

Volume Ray Tracing | |

| |

| |

| |

Texture Mapping of Volumes | |

| |

| |

| |

Image-Based Rendering | |

| |

| |

| |

A Simple Example | |

| |

| |

Summary and Notes | |

| |

| |

Suggested Readings | |

| |

| |

Exercises | |

| |

| |

| |

Sample Programs | |

| |

| |

| |

Shader Initialization Function | |

| |

| |

| |

Application Code | |

| |

| |

| |

Sierpinski Gasket Program | |

| |

| |

| |

Application Code | |

| |

| |

| |

Vertex Shader | |

| |

| |

| |

Fragment Shader | |

| |

| |

| |

Recursive Generation of Sierpinski Gasket | |

| |

| |

| |

Application Code | |

| |

| |

| |

Vertex Shader | |

| |

| |

| |

Fragment Shader | |

| |

| |

| |

Rotating Cube with Rotation in Shader | |

| |

| |

| |

Application Code | |

| |

| |

| |

Vertex Shader | |

| |

| |

| |

Fragment Shader | |

| |

| |

| |

Perspective Projection | |

| |

| |

| |

Application Code | |

| |

| |

| |

Vertex Shader | |

| |

| |

| |

Fragment Shader | |

| |

| |

| |

Rotating Shaded Cube | |

| |

| |

| |

Application Code | |

| |

| |

| |

Vertex Shader | |

| |

| |

| |

Fragment Shader | |

| |

| |

| |

Per-Fragment Lighting of Sphere Model | |

| |

| |

| |

Application Code | |

| |

| |

| |

Vertex Shader | |

| |

| |

| |

Fragment Shader | |

| |

| |

| |

Rotating Cube with Texture | |

| |

| |

| |

Application Code | |

| |

| |

| |

Vertex Shader | |

| |

| |

| |

Fragment Shader | |

| |

| |

| |

Figure with Tree Traversal | |

| |

| |

| |

Application Code | |

| |

| |

| |

Vertex Shader | |

| |

| |

| |

Fragment Shader | |

| |

| |

| |

Teapot Renderer | |

| |

| |

| |

Application Code | |

| |

| |

| |

Vertex Shader | |

| |

| |

| |

Fragment Shader | |

| |

| |

| |

Spaces | |

| |

| |

| |

Scalars | |

| |

| |

| |

Vector Spaces | |

| |

| |

| |

Affine Spaces | |

| |

| |

| |

Euclidean Spaces | |

| |

| |

| |

Projections | |

| |

| |

| |

Gram-Schmidt Orthogonalization | |

| |

| |

Suggested Readings | |

| |

| |

Exercises | |

| |

| |

| |

Matrices | |

| |

| |

| |

Definitions | |

| |

| |

| |

Matrix Operations | |

| |

| |

| |

Row and Column Matrices | |

| |

| |

| |

Rank | |

| |

| |

| |

Change of Representation | |

| |

| |

| |

The Cross Product | |

| |

| |

| |

Eigenvalues and Eigenvectors | |

| |

| |

| |

Vector and Matrix Classes | |

| |

| |

Suggested Readings | |

| |

| |

Exercises | |

| |

| |

| |

Synopsis of Opengl Functions | |

| |

| |

| |

Initialization and Window Functions | |

| |

| |

| |

Vertex Buffer Objects | |

| |

| |

| |

Interaction | |

| |

| |

| |

Setting Attributes and Enabling Features | |

| |

| |

| |

Texture and Image Functions | |

| |

| |

| |

State and Buffer Manipulation | |

| |

| |

| |

Query Functions | |

| |

| |

| |

GLSL Functions | |

| |

| |

References | |

| |

| |

OpenGL Function Index | |

| |

| |

Subject Index | |