Table of Contents
Preface xi
1 Theoretical Background and Basic Volume Rendering Approaches
1.1 Problem Setting
1.2 Physical Model of Light Transport
1.3 Volume Rendering Integral
1.4 Discretization
1.5 Volume Data and Reconstruction Filters
1.6 Volume Rendering Pipeline and Basic Approaches
1.7 Further Reading
2 GPU Programming
2.1 The Graphics Pipeline
2.2 Vertex Processing
2.3 Fragment Processing
2.4 Frame Buffer Operations
2.5 Further Reading
3 Basic GPU-Based Volume Rendering
3.1 Components
3.2 2D Texture-Based Volume Rendering
3.3 3D Texture-Based Approach
3.4 2D Multi-Textures-Based Approach
3.5 Vertex Programs
3.6 Further Reading
4 Transfer Functions
4.1 Classification
4.2 Implementation of Pre-Classification
4.3 Implementation of Post-Classification
4.4 Pre- vs. Post-Interpolative Transfer Functions
4.5 Pre-Integrated Transfer Functions
4.6 Implementation of Pre-Integrated Transfer Functions
4.7 Discussion
4.8 Further Reading 5 Local Volume Illumination
5.1 Radiance and Irradiance
5.2 Types of Light Sources
5.3 Gradient-Based Illumination
5.4 Local Illumination Models
5.5 Pre-Computed Gradients
5.6 On-the-fly Gradients
5.7 Environment Mapping
5.8 High Dynamic Range Illumination and Volume Rendering
5.9 Further Reading
6 Global Volume Illumination
6.1 Introduction
6.2 Volumetric Shadows
6.3 Phase Functions
6.4 Translucent Volume Lighting
6.5 Shading Strategies
6.6 Further Reading
7 GPU-Based Ray Casting
7.1 Basic Structure of Ray Casting
7.2 Single-Pass GPU Ray Casting for Uniform Grids
7.3 Performance Aspects and Acceleration Methods
7.4 Multi-Pass GPU Ray Casting for Uniform Grids
7.5 Ray Casting in Tetrahedral Grids
7.6 Further Reading
8 Improving Performance
8.1 Swizzling of volume data
8.2 Asynchronous Data Upload
8.3 Bilinear Filtering
8.4 Empty Space Leaping
8.5 Occlusion Culling
8.6 Early Ray-Termination
8.7 Deferred Shading
8.8 Image Downscaling
8.9 Discussion
9 Improving Image Quality
9.1 Sampling Artifacts
9.2 Filtering Artifacts
9.3 Classification Artifacts
9.4 Shading Artifacts
9.5 Blending Artifacts
9.6 Discussion
10 Transfer Functions Reloaded
10.1 Image Data Versus Scalar Field
10.2 Multi-Dimensional Transfer Functions: Introduction
10.3 Data Value and Derivatives
10.4 General Multi-Dimensional Transfer Functions
10.5 Engineering Multi-Dimensional Transfer Functions
10.6 Transfer Function User Interfaces
10.7 Further Reading
11 Game Developer’s Guide to Volume Graphics
11.1 Volume Graphics in Games
11.2 Differences From “Stand-Alone” Volume Rendering
11.3 Guide to Other Chapters
11.4 Integrating Volumes With Scene Geometry
11.5 A Simple Volume Ray-Caster for Games
11.6 Volumetric Effects
11.7 Simulation
11.8 Integrating Volumes With Scene Shadowing and Lighting
12 Volume Modeling
12.1 Rendering into a 3D Texture
12.2 Voxelization
12.3 Procedural Modeling
12.4 Compositing and Image Processing
12.5 Further Reading
13 Volume Deformation and Animation
13.1 Modeling Paradigms
13.2 Deformation in Model Space
13.3 Deformation in Texture Space
13.4 Deformation and Illumination
13.5 Animation Techniques
13.6 Further Reading
14 Non-Photorealistic and Illustrative Techniques
14.1 Overview of Methods
14.2 Basic NPR Shading Models
14.3 Contour Rendering
14.4 Surface and Isosurface Curvature
14.5 Deferred Shading of Isosurfaces
14.6 Curvature-Based Isosurface Illustration
15 Volume Clipping
15.1 Conceptual Description of Volume Clipping
15.2 Clipping via Voxelized Selection Volumes
15.3 Surface-Based Clipping
15.4 Volume Clipping and Illumination
15.5 Clipping and Pre-Integration
15.6 Clipping and Volume Illustration
15.7 Further Reading
16 Segmented Volume Data
16.1 Overview of this Chapter
16.2 Segmented Data Representation
16.3 Rendering Segmented Data
16.4 The Basic Rendering Loop
16.5 Boundary Filtering
16.6 Two-Level Volume Rendering
17 Large Volume Data
17.1 Memory Performance Considerations
17.2 Bricking
17.3 Multi-Resolution Volume Rendering
17.4 Build-in Texture Compression
17.5 Wavelet Compression
17.6 Packing Techniques
17.7 Vector Quantization
17.8 Discussion
17.9 Further Reading
Bibliography
Index