Production Volume Rendering: Design and Implementation, 1st Edition (Hardback) book cover

Production Volume Rendering

Design and Implementation, 1st Edition

By Magnus Wrenninge

A K Peters/CRC Press

355 pages | 142 Color Illus.

Purchasing Options:$ = USD
Hardback: 9781568817248
pub: 2012-09-25
SAVE ~$12.39
$61.95
$49.56
x
eBook (VitalSource) : 9780429196157
pub: 2012-09-25
from $29.98


FREE Standard Shipping!

Description

Due to limited publicly available software and lack of documentation, those involved with production volume rendering often have to start from scratch creating the necessary elements to make their system work. Production Volume Rendering: Design and Implementation provides the first full account of volume rendering techniques used for feature animation and visual effects production. It covers the theoretical underpinnings as well as the implementation of a working renderer.

The book offers two paths toward understanding production volume rendering. It describes:

  • Modern production volume rendering techniques in a generic context, explaining how the techniques fit together and how the modules are used to achieve real-world goals
  • Implementation of the techniques, showing how to translate abstract concepts into concrete, working code and how the ideas work together to create a complete system

As an introduction to the field and an overview of current techniques and algorithms, this book is a valuable source of information for programmers, technical directors, artists, and anyone else interested in how production volume rendering works.

Web Resource

The scripts, data, and source code for the book’s renderer are freely available at https://github.com/pvrbook/pvr. Readers can see how the code is implemented and acquire a practical understanding of how various design considerations impact scalability, extensibility, generality, and performance.

Reviews

This book deserves a place on any computer graphics developer’s bookshelf. Over the last few years, volume techniques have become essential to any high-end renderer and this book will bring anyone up to speed very quickly. I highly recommend this book.

—Doug Roble, Creative Director of Software, Digital Domain

Table of Contents

Preface

Goals

The PVR System

C++ and Python

Python bindings

Rendering with PVR

I Fundamentals

The Basics

Time and motion blur

Cameras

Geometry

Geometry attributes

pvr::Geo::AttrTable

pvr::Geo::AttrRef

pvr::Geo::Attr and pvr::Geo::AttrVisitor

Voxel Buffers

Introduction to voxel buffers

Implementing a simple voxel buffer

Field3D

Transformations and mappings

Interpolating voxel data

Filtered lookups

Noise

Procedural textures

Perlin noise

Noise functions

Fractal functions

The fractal base class

Fractional Brownian motion (fBm)

II Volume Modeling

Fundamentals of Volume Modeling

Volume modeling and voxel buffers

Defining the voxel buffer

Volume modeling strategies

Rasterization primitives

Instantiation primitives

Using geometry to guide volumetric primitives

Common coordinate systems

Procedural noise and fractal functions

PVR’s Modeling Pipeline

Overview

pvr::Model::Modeler

pvr::Model::ModelerInput

pvr::Util::ParamBase

pvr::Model::Prim::Primitive

Splatting data to voxel buffers

Rasterization Primitives in PVR

The RasterizationPrim base class

Implementing primitives

Sphere-based primitives

The Point primitive

The PyroclasticPoint primitive

Line-based primitives

The Line primitive

The PyroclasticLine primitive

Instantiation Primitives in PVR

The InstantiationPrim base class

Common strategies

The Sphere instantiation primitive

The Line instantiation primitive

The Surface instantiation primitive

III Volume Rendering

Volumetric Lighting

Lighting fundamentals

Absorption

Emission

Scattering

Phase functions

Optical thickness and transmittance

Wavelength dependency

Other approaches to volume rendering

Raymarching

An introduction to raymarching

Lighting and raymarching

Integration intervals

Integration intervals for multiple volumes

Integration intervals for overlapping volumes

Sampling strategies

Empty space optimization

Holdouts

PVR’s Rendering Pipeline

pvr::Render::Scene

pvr::Render::Renderer

pvr::Render::Camera

pvr::Render::PerspectiveCamera

pvr::Render::SphericalCamera

pvr::Render::Image

PVR Volume Types

Volumes in PVR

pvr::Render::ConstantVolume

pvr::Render::VoxelVolume

pvr::Render::CompositeVolume

Raymarching in PVR

Introduction

pvr::Render::Raymarcher

pvr::Render::UniformRaymarcher

Integration bounds

Lighting in PVR

Raymarch samplers

pvr::Render::DensitySampler

pvr::Render::PhysicalSampler

pvr::Render::Light

pvr::Render::PointLight

pvr::Render::SpotLight

Phase functions in PVR

Occlusion in PVR

Pre-Computed Occlusion

Voxelized occlusion

Deep shadows

Strategies for pre-computation

pvr::Render::VoxelOccluder

pvr::Render::OtfVoxelOccluder

pvr::Render::DeepImage

pvr::Render::TransmittanceMapOccluder

pvr::Render::OtfTransmittanceMapOccluder

Bibliography

About the Author

Magnus Wrenninge is a senior technical director and R&D programmer at Sony Pictures Imageworks. He is one of the developers of Field3D, an open source library for storing voxel data.

Subject Categories

BISAC Subject Codes/Headings:
COM012000
COMPUTERS / Computer Graphics