
Texturing and Modeling
A Procedural Approach
- 3rd Edition - December 2, 2002
- Imprint: Morgan Kaufmann
- Authors: David S. Ebert, F. Kenton Musgrave, Darwyn Peachey, Ken Perlin, Steve Worley
- Language: English
- eBook ISBN:9 7 8 - 0 - 0 8 - 0 5 1 8 7 5 - 6
The third edition of this classic tutorial and reference on procedural texturing and modeling is thoroughly updated to meet the needs of today's 3D graphics professionals and… Read more

Purchase options

Institutional subscription on ScienceDirect
Request a sales quoteAs in the previous editions, the authors, who are the creators of the methods they discuss, provide extensive, practical explanations of widely accepted techniques as well as insights into designing new ones. New to the third edition are chapters by two well-known contributors: Bill Mark of NVIDIA and John Hart of the University of Illinois at Urbana-Champaign on state-of-the-art topics not covered in former editions.
No other book on the market contains the breadth of theoretical and practical information necessary for applying procedural methods. More than ever, Texturing & Modeling remains the chosen resource for professionals and advanced students in computer graphics and animation.
- New chapters on: procedural real-time shading by Bill Mark, procedural geometric instancing and real-time solid texturing by John Hart, hardware acceleration strategies by David Ebert, cellular texturing by Steven Worley, and procedural planets and virtual universes by Ken Musgrave.
- New material on Perlin Noise by Ken Perlin.
- Printed in full color throughout.
Preface
Introduction
Procedural Techniques and Computer Graphics
What Is a Procedural Technique?
The Power of Procedural Techniques
Procedural Techniques and Advanced Geometric Modeling
Aim of This Book
Organization
Building Procedural
Introduction
Texture
Procedural Texture
Procedural versus Nonprocedural
Implicit and Explicit Procedures
Advantages of Procedural Texture
Disadvantages of Procedural Texture
The RenderMan Shading Language
What If You Don't Use RenderMan?
Procedural Pattern Generation
Shading Models
Pattern Generation
Texture Spaces
Layering and Composition
Steps, Clamps, and Conditionals
Periodic Functions
Splines and Mappings
Example: Brick Texture
Bump-Mapped Brick
Example: Procedural Star Texture
Spectral Synthesis
What Now?
Aliasing and How to Prevent It
Signal Processing
Methods of Antialiasing Procedural Textures
Determining the Sampling Rate
Clamping
Analytic Prefiltering
Better Filters
Integrals and Summed-Area Tables
Example: Antialiased Brick Texture
Alternative Antialiasing Methods
Making Noises
Lattice Noises
Value Noise
Gradient Noise
Value-Gradient Noise
Lattice Convolution Noise
Sparse Convolution Noise
Explicit Noise Algorithms
Fourier Spectral Synthesis
Generating Irregular Patterns
Spectral Synthesis
Perturbed Regular Patterns
Perturbed Image Textures
Random Placement Patterns
Conclusion
Real-Time Programmable Shading
William R. Mark
Introduction
What Makes Real-Time Shading Different?
Why Use a High-Level Programming Language?
What You Need to Learn Elsewhere
Real-Time Graphics Hardware
Object Space Shading versus Screen Space Shading
Parallelism
Hardware Data Types
Resource Limits
Memory Bandwidth and Performance Tuning
Simple Examples
Vertex and Fragment Code in the Stanford Shading System
Two Versions of the Heidrich/Banks Anisotropic Shader
Surface and Light Shaders
The Interface between Shaders and Applications
More Examples
Volume-Rendering Shader
Noise-Based Procedural Flame
Strategies for Developing Shaders
Future GPU Hardware and Programmable Languages
Literature Review
Acknowledgments
Cellular Texturing
The New Bases
Implementation Strategy
Dicing Space
Neighbor Testing
The Subtle Population Table
Extensions and Alternatives
Sample Code
Advanced Antialiasing
Index Aliasing
An Example: Antialiasing Planetary Rings
Spot Geometry
Sampling and Bumping
Optimization and Verification
Emergency Alternatives
Practical Methods For Texture Design
Introduction
Toolbox Functions
The Art of Noise
Color Mappings
Bump-Mapping Methods
The User Interface
Parameter Ranges
Color Table Equalization
Exploring the Parameter Domain
Previews
Efficiency
Tricks, Perversions, and Other Fun Texture Abuses
Volume Rendering with Surface Textures
Odd Texture Ideas
2D Mapping Methods
Where We're Going
Procedural Modeling Of Gases
Introduction
Previous Approaches to Modeling Gases
The Rendering System
Volume-Rendering Algorithm
Illumination of Gaseous Phenomena
Volumetric Shadowing
Alternative Rendering and Modeling Approaches for Gases
A Procedural Framework: Solid Spaces
Development of Solid Spaces
Description of Solid Spaces
Mathematical Description of Solid Spaces
Geometry of the Gases
My Noise and Turbulence Functions
Basic Gas Shaping
Conclusion
Animating Solid Spaces
Animation Paths
Animating Solid Textures
Marble Forming
Marble Moving
Animating Solid Textured Transparency
Animation of Gaseous Volumes
Helical Path Effects
Three-Dimensional Tables
Accessing the Table Entries
Functional Flow Field Tables
Functional Flow Field Functions
Combinations of Functions
Animating Hypertextures
Volumetric Marble Formation
Particle Systems: Another Procedural Animation Technique
Conclusion
Volumetric Cloud Modeling With Implicit Functions
Cloud Basics
Surface-Based Cloud Modeling Approaches
Volumetric Cloud Models
A Volumetric Cloud Modeling System
Volumetric Cloud Rendering
Cumulus Cloud Models
Cirrus and Stratus Clouds
Cloud Creatures
User Specification and Control
Animating Volumetric Procedural Clouds
Procedural Animation
Implicit Primitive Animation
Interactivity and Clouds
Simple Interactive Cloud Models
Rendering Clouds in Commercial Packages
Conclusion
Issues And Strategies For Hardware Acceleration of Procedural Techniques
Introduction
General Issues
Common Acceleration Techniques
Example Accelerated/Real-Time Procedural Textures and Models
Noise and Turbulence
Marble
Smoke and Fog
Real-Time Clouds and Procedural Detail
Conclusion
Procedural Synthesis Of Geometry
John C. Hart
The L-System
Paradigms of Governing the Synthesis of Procedural Geometry
Data Amplification
Lazy Evaluation
The Scene Graph
Procedural Geometric Instancing
Parameter Passing
Accessing World Coordinates
Other Functions
Comparison with L-Systems
Ordering
Bounding Volumes
Conclusion
Procedural Geometric Modeling and the Web
Future Work
Acknowledgments
Noise,Hypertexture,Antialiasing,And Gesture
Introduction
Shape, Solid Texture, and Hypertexture
Two Basic Paradigms
Bias, Gain, and So Forth
Constructing the noise Function
Computing Which Cubical "Cel" We're In
Finding the Pseudorandom Wavelet at Each Vertex of the Cel
Wavelet Coefficients
To Quickly Index into G in a Nonbiased Way
Evaluating the Wavelet Centered at [i, j, k]
Recent Improvements to the noise Function
Raymarching
System Code: The Raymarcher
Application Code: User-Defined Functions
Interaction
Levels of Editing: Changing Algorithms to Tweaking Knobs
z-Slicing
Some Simple Shapes to Play With
Sphere
Egg
Examples of Hypertexture
Explosions
Life-Forms
Space-Filling Fractals
Woven Cloth
Architexture
The NYU Torch
Smoke
Time Dependency
Smoke Rings
Optimization
Turbulence
Antialiased Rendering of Procedural Textures
Background
The Basic Idea
More Detailed Description
The High-Contrast Filter
Examples
To Sum Up
Surflets
Introduction to Surflets
Surflets as Wavelets
Finding Visible Surfaces
Selective Surface Refinement
A Surflet Generator
Constructing a Surflet Hierarchy
Self-Shadowing with Penumbra
Discussion
Conclusion
Flow Noise
Rotating Gradients
Pseudoadvection
Results
Procedural Shape Synthesis
Textural Limb Animation
Introduction to Textural Limb Motion
Road Map
Related Work
Basic Notions
Stochastic Control of Gesture
The System
Examples
Texture for Facial Movement
Background
Related Work
The Movement Model
Movement Layering
The Bottom-Level Movement Vocabulary
Painting with Actions
Using noise in Movement
Same Action in Different Abstractions
What Next?
Conclusion
Real-Time Procedural Solid Texturing
John C. Hart
A Real-Time Procedural Solid Texturing Algorithm
Creating an Atlas for Procedural Solid Texturing
Avoiding Seam Artifacts
Implementing Real-Time Texturing Procedures
Applications
Acknowledgments
A Brief Introduction To Fractals
What Is a Fractal?
What Are Fractals Good For?
Fractals and Proceduralism
Procedural fBm
Multifractal Functions
Fractals and Ontogenetic Modeling
Conclusion
Fractal Solid Textures: Some Examples
Clouds
Puffy Clouds
A Variety of fBm
Distortion for Cirrus Clouds and Global Circulation
The Coriolis Effect
Fire
Water
Noise Ripples
Wind-Blown Waters
Earth
Sedimentary Rock Strata
Gaea: Building an Entire Planet
Selene
Random Coloring Methods
Random fBm Coloring
The GIT Texturing System
An Impressionistic Image Processing Filter
The "multicolor" Texture
Planetary Rings
Procedural Fractal Terrains
Advantages of Point Evaluation
The Height Field
Homogeneous fBm Terrain Models
Fractal Dimension
Visual Effects of the Basis Function
Heterogeneous Terrain Models
Statistics by Altitude
A Hybrid Multifractal
Multiplicative Multifractal Terrains
Conclusion
QAEB Rendering For Procedural Models
Introduction
QAEB Tracing
Problem Statement
Prior Art
The QAEB Algorithm
Error in the Algorithm
Near and Far Clipping Planes
Calculating the Intersection Point and Surface Normal
Antialiasing
A Speedup Scheme for Height Fields
Shadows, Reflection, and Refraction
Performance
QAEB-Traced Hypertextures
Clouds
Billowing Clouds, Pyroclastic Flows, and Fireballs
Fireballs
Psychedelic Clouds
Conclusion
Atmospheric Models
Introduction
Beer's Law and Homogeneous Fog
Exponential Mist
A Radially Symmetric Planetary Atmosphere
A Minimal Rayleigh Scattering Approximation
Trapezoidal Quadrature of ó = e-r GADD and RenderMan Implementation
Numerical Quadrature with Bounded Error for General Radial GADDs
Conclusion
Genetic Textures
Introduction: The Problem of Parameter Proliferation
A Useful Model: Aesthetic n-Spaces
Control versus Automaticity
A Model from Biology: Genetics and Evolution
The Analogy: Genetic Programming
Implementation
Interpretation of the Root Node
The Library of Genetic Bases
Other Examples of Genetic Programming and Genetic Art
A Final Distinction: Genetic Programming versus Genetic Algorithms
Conclusion
Mojoworld: Building Procedural Planets
Introduction
Fractals and Visual Complexity
Building Mountains
Building Planets
Building a Virtual Universe
What Is a Fractal?
Self-Similarity
Dilation Symmetry
Random Fractals
A Bit of History of Fractal Terrains
The Mathematics
Mathematical Imaging of Fractal Terrains
The Computer Graphics Research Community
The Literature
The Software
Disclaimers and Apologies
The Present and Future
Building Random Fractals
The Basis Function
Fractal Dimension: "Roughness"
Octaves: Limits to Detail
Lacunarity: The Gap between Successive Frequencies
Advanced Topics
Dimensions: Domain and Range
Hyperspace
The Basis Functions
The Seed Tables
Monofractals
Multifractals
Function Fractals
Domain Distortion
Distortion Fractal Functions
Crossover Scales
Driving Function Parameters with Functions
Using Fractals
Textures
Terrains
Displacement Maps
Clouds
Planets
Nebulae
The Expressive Vocabulary of Random Fractals
Experiment!
The Future
On The Future: Engineering The Appearance Of Cyberspace
Introduction
Claims
The Fractal Geometry of Cyberspace
Conclusion
Appendix A C Code Implementing QAEB Tracing
Appendix B C Code for Intersection and Surface Normal
Bibliography
Index
About the Authors and Contributors
- Edition: 3
- Published: December 2, 2002
- Imprint: Morgan Kaufmann
- No. of pages: 712
- Language: English
- eBook ISBN: 9780080518756
DE
David S. Ebert
FM
F. Kenton Musgrave
F. Kenton Musgrave is CEO and CTO of Pandomeda, Inc., whose planet-building software product, MojoWorld, is the pinnacle of his research. He lectures internationally on fractals, computer graphics and the visual arts, and has developed digital effects for films such as Titanic and Apollo 13.
DP
Darwyn Peachey
Darwyn Peachey is vice-president of Research and Development at Pixar Animation Studios. Prior to joining Pixar in 1988, Mr. Peachey was a member of the research staff at the University of Saskatchewan in Canada.
KP
Ken Perlin
Ken Perlin is Professor of Computer Science and Director of the Center for Advanced Technology and the Media Research Lab at New York University. Dr. Perlin received a technical achievement Academy Award for his Perlin Noise, a procedural technique used in motion picture visual effects.
SW