Texturing & Modeling: A Procedural Approach, 3/e (Hardcover)

David S. Ebert, F. Kenton Musgrave, Darwyn Peachey, Ken Perlin, Steve Worley

  • 出版商: Morgan Kaufmann
  • 出版日期: 2002-12-16
  • 定價: $3,260
  • 售價: 3.1$999
  • 語言: 英文
  • 頁數: 712
  • 裝訂: Hardcover
  • ISBN: 1558608486
  • ISBN-13: 9781558608481

立即出貨(限量)

買這商品的人也買了...

相關主題

商品描述

 

Summary

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 students. New for this edition are chapters devoted to real-time issues, cellular texturing, geometric instancing, hardware acceleration, futuristic environments, and virtual universes. In addition, the familiar authoritative chapters on which readers have come to rely contain all-new material covering L-systems, particle systems, scene graphs, spot geometry, bump mapping, cloud modeling, and noise improvements. There are many new spectacular color images to enjoy, especially in this edition's full-color format.

As 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.

An accompanying Web site (www.texturingandmodeling.com) contains all of the book's sample code in C code segments (all updated to the ANSI C Standard) or in RenderMan shading language, plus files of many magnificent full-color illustrations.

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.

Table of Contents

Foreword

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