Log In
Or create an account ->
Imperial Library
Home
About
News
Upload
Forum
Help
Login/SignUp
Index
Halftitle
Title Page
Copyright
Contents
Preface
Intended Audience
How to Use This Book
Acknowledgments
About the Authors
Chapter 1 Getting Started
1.1 Languages and Libraries
1.1.1 Java
1.1.2 OpenGL/GLSL
1.1.3 JOGL
1.1.4 graphicslib3D
1.2 Installation and Configuration
1.2.1 Installing Java
1.2.2 Installing OpenGL/GLSL
1.2.3 Installing JOGL
1.2.4 Installing graphicslib3D
Chapter 2 JOGL and the OpenGL Graphics Pipeline
2.1 The OpenGL Pipeline
2.1.1 Java/JOGL Application
2.1.2 Vertex and Fragment Shaders
2.1.3 Tessellation
2.1.4 Geometry Shader
2.1.5 Rasterization
2.1.6 Fragment Shader
2.1.7 Pixel Operations
2.2 Detecting OpenGL and GLSL Errors
2.3 Reading GLSL Source Code from Files
2.4 Building Objects from Vertices
2.5 Animating a Scene
Chapter 3 Mathematical Foundations
3.1 3D Coordinate Systems
3.2 Points
3.3 Matrices
3.4 Transformation Matrices
3.4.1 Translation
3.4.2 Scaling
3.4.3 Rotation
3.5 Vectors
3.5.1 Uses for Dot Product
3.5.2 Uses for Cross Product
3.6 Local and World Space
3.7 Eye Space and the Synthetic Camera
3.8 Projection Matrices
3.8.1 The Perspective Projection Matrix
3.8.2 The Orthographic Projection Matrix
3.9 Look-At Matrix
3.10 GLSL Functions for Building Matrix Transforms
Chapter 4 Managing 3D Graphics Data
4.1 Buffers & Vertex Attributes
4.2 Uniform Variables
4.3 Interpolation of Vertex Attributes
4.4 Model-View and Perspective Matrices
4.5 Our First 3D Program – a 3D Cube
4.6 Rendering Multiple Copies of an Object
4.6.1 Instancing
4.7 Rendering Multiple Different Models in a Scene
4.8 Matrix Stacks
4.9 Combating “Z-Fighting” Artifacts
4.10 Other Options for Primitives
4.11 Back-Face Culling
Chapter 5 Texture Mapping
5.1 Loading Texture Image Files
5.2 Texture Coordinates
5.3 Creating a Texture Object
5.4 Constructing Texture Coordinates
5.5 Loading Texture Coordinates into Buffers
5.6 Using the Texture in a Shader: Sampler Variables and Texture Units
5.7 Texture Mapping: Example Program
5.8 Mipmapping
5.9 Anisotropic Filtering
5.10 Wrapping and Tiling
5.11 Perspective Distortion
5.12 Loading Texture Image Files Using Java AWT Classes
Chapter 6 3D Models
6.1 Procedural Models – Building a Sphere
6.2 OpenGL Indexing – Building a Torus
6.2.1 The Torus
6.2.2 Indexing in OpenGL
6.3 Loading Externally Produced Models
Chapter 7 Lighting
7.1 Lighting Models
7.2 Lights
7.3 Materials
7.4 ADS Lighting Computations
7.5 Implementing ADS Lighting
7.5.1 Gouraud Shading
7.5.2 Phong Shading
7.6 Combining Lighting and Textures
Chapter 8 Shadows
8.1 The Importance of Shadows
8.2 Projective Shadows
8.3 Shadow Volumes
8.4 Shadow Mapping
8.4.1 Shadow Mapping (PASS ONE) – “Draw” Objects from Light Position
8.4.2 Shadow Mapping (Intermediate Step) – Copying the Z-Buffer to a Texture
8.4.3 Shadow Mapping (PASS TWO) – Rendering the Scene with Shadows
8.5 A Shadow Mapping Example
8.6 Shadow Mapping Artifacts
Chapter 9 Sky and Backgrounds
9.1 Skyboxes
9.2 Skydomes
9.3 Implementing a Skybox
9.3.1 Building a Skybox from Scratch
9.3.2 Using OpenGL Cube Maps
9.4 Environment Mapping
Chapter 10 Enhancing Surface Detail
10.1 Bump Mapping
10.2 Normal Mapping
10.3 Height Mapping
Chapter 11 Parametric Surfaces
11.1 Quadratic Bézier Curves
11.2 Cubic Bézier Curves
11.3 Quadratic Bézier Surfaces
11.4 Cubic Bézier Surfaces
Chapter 12 Tessellation
12.1 Tessellation in OpenGL
12.2 Tessellation for Bézier Surfaces
12.3 Tessellation for Terrain/Height Maps
12.4 Controlling Level of Detail (LOD)
Chapter 13 Geometry Shaders
13.1 Per-Primitive Processing in OpenGL
13.2 Altering Primitives
13.3 Deleting Primitives
13.4 Adding Primitives
Chapter 14 Other Techniques
14.1 Fog
14.2 Compositing/Blending/Transparency
14.3 User-Defined Clipping Planes
14.4 3D Textures
14.5 Noise
14.6 Noise Application – Marble
14.7 Noise Application – Wood
14.8 Noise Application – Clouds
14.9 Noise Application – Special Effects
Index
← Prev
Back
Next →
← Prev
Back
Next →