Physically Based Rendering, Second Edition, describes both the mathematical theory behind a modern photorealistic rendering system as well as its practical implementation. A method known as literate ...programming combines human-readable documentation and source code into a single reference that is specifically designed to aid comprehension. The result is a stunning achievement in graphics education. Through the ideas and software in this book, you will learn to design and employ a full-featured rendering system for creating stunning imagery. This new edition greatly refines its best-selling predecessor by streamlining all obsolete code as well as adding sections on parallel rendering and system design; animating transformations; multispectral rendering; realistic lens systems; blue noise and adaptive sampling patterns and reconstruction; measured BRDFs; and instant global illumination, as well as subsurface and multiple-scattering integrators. These updates reflect the current state-of-the-art technology, and along with the lucid pairing of text and code, ensure the book's leading position as a reference text for those working with images, whether it is for film, video, photography, digital design, visualization, or gaming. * The book that won its authors a 2014 Academy Award for Scientific and Technical Achievement from the Academy of Motion Picture Arts and Sciences * New sections on subsurface scattering, Metropolis light transport, precomputed light transport, multispectral rendering, and much more * Includes a companion site complete with source code for the rendering system described in the book, with support for Windows, OS X, and Linux: visit www.pbrt.org * Code and text are tightly woven together through a unique indexing feature that lists each function, variable, and method on the page that they are first described
Describing both the mathematical theory behind a modern photorealistic rendering system and its practical implementation, this book will teach users how to design and employ a fully-featured ...rendering system for creating stunning imagery. --
Physically Based Rendering, Second Edition, describes both the mathematical theory behind a modern photorealistic rendering system as well as its practical implementation.A method known as literate ...programming combines human-readable documentation and source code into a single reference that is specifically designed to aid comprehension. The result is a stunning achievement in graphics education. Through the ideas and software in this book, you will learn to design and employ a full-featured rendering system for creating stunning imagery.This new edition greatly refines its best-selling predecessor by streamlining all obsolete code as well as adding sections on parallel rendering and system design; animating transformations; multispectral rendering; realistic lens systems; blue noise and adaptive sampling patterns and reconstruction; measured BRDFs; and instant global illumination, as well as subsurface and multiple-scattering integrators.These updates reflect the current state-of-the-art technology, and along with the lucid pairing of text and code, ensure the book's leading position as a reference text for those working with images, whether it is for film, video, photography, digital design, visualization, or gaming.The book that won its authors a 2014 Academy Award for Scientific and Technical Achievement from the Academy of Motion Picture Arts and SciencesNew sections on subsurface scattering, Metropolis light transport, precomputed light transport, multispectral rendering, and much moreIncludes a companion site complete with source code for the rendering system described in the book, with support for Windows, OS X, and Linux: visit www.pbrt.orgCode and text are tightly woven together through a unique indexing feature that lists each function, variable, and method on the page that they are first described
Physically Based Rendering: From Theory to Implementation, Third Edition, describes both the mathematical theory behind a modern photorealistic rendering system and its practical implementation. ...Through a method known as 'literate programming', the authors combine human-readable documentation and source code into a single reference that is specifically designed to aid comprehension. The result is a stunning achievement in graphics education. Through the ideas and software in this book, users will learn to design and employ a fully-featured rendering system for creating stunning imagery. This completely updated and revised edition includes new coverage on ray-tracing hair and curves primitives, numerical precision issues with ray tracing, LBVHs, realistic camera models, the measurement equation, and much more. It is a must-have, full color resource on physically-based rendering.Presents up-to-date revisions of the seminal reference on rendering, including new sections on bidirectional path tracing, numerical robustness issues in ray tracing, realistic camera models, and subsurface scatteringProvides the source code for a complete rendering system allowing readers to get up and running fastIncludes a unique indexing feature, literate programming, that lists the locations of each function, variable, and method on the page where they are first describedServes as an essential resource on physically-based rendering
Physically Based Rendering: From Theory to Implementation, Third Edition, describes both the mathematical theory behind a modern photorealistic rendering system and its practical implementation. ...Through a method known as 'literate programming', the authors combine human-readable documentation and source code into a single reference that is specifically designed to aid comprehension. The result is a stunning achievement in graphics education. Through the ideas and software in this book, users will learn to design and employ a fully-featured rendering system for creating stunning imagery. This completely updated and revised edition includes new coverage on ray-tracing hair and curves primitives, numerical precision issues with ray tracing, LBVHs, realistic camera models, the measurement equation, and much more. It is a must-have, full color resource on physically-based rendering.
Presents up-to-date revisions of the seminal reference on rendering, including new sections on bidirectional path tracing, numerical robustness issues in ray tracing, realistic camera models, and subsurface scatteringProvides the source code for a complete rendering system allowing readers to get up and running fastIncludes a unique indexing feature, literate programming, that lists the locations of each function, variable, and method on the page where they are first describedServes as an essential resource on physically-based rendering
Chapter Nine - Materials Humphreys, Greg; Pharr, Matt
Physically Based Rendering,
2010
Book Chapter
The BSDF class in pbrt software represents a collection of the bidirectional reflectance distribution functions (BRDFs) and bidirectional transmittance distribution functions (BTDFs). Grouping them ...in this manner allows the rest of the system to work with composite BSDFs directly, rather than having to consider all of the components they may have been built from. Although low-level BRDFs and BTDFs describe how light is scattered at a particular point on a surface, the renderer needs to determine which BRDFs and BTDFs to use at that point and how to set their parameters. This chapter describes a procedural shading mechanism that determines the BRDF and BTDF to use at points on surfaces. The basic idea is that a surface shader is bound to each primitive in the scene. The surface shader is represented by an instance of the Material interface class, which has a method that takes a point to be shaded and returns a BSDF object. The BSDF class holds a set of BxDFs that collectively describe scattering at a point. Materials, in turn, use instances of the Texture class to determine the material properties at particular points on surfaces. The abstract Material class defines two methods that material implementations must provide, Material::GetBSDF() and Material::GetBSSRDF(). Implementations of these methods are responsible for determining the reflective properties at the given point on the surface and returning an instance of the BSDF class that describes them. The Material class is defined in the files core/material.h and core/material.cpp.
Chapter Ten - Texture Humphreys, Greg; Pharr, Matt
Physically Based Rendering,
2010
Book Chapter
This chapter describes a set of interfaces and classes that allows incorporation of texture into material models. The materials are based on various parameters that describe their characteristics ...(diffuse reflectance, glossiness, etc.). Because real-world material properties typically vary over surfaces, it is necessary to be able to describe these patterns in some manner. In pbrt software, because the texture abstractions are defined in a way that separates the pattern generation methods from the material implementations, it is easy to combine them in arbitrary ways, thereby making it easier to create a wide variety of appearances. In pbrt, a texture is an extremely general concept: it is a function that maps points in some domain (e.g., a surface's (u, v) parametric space or (x, y, z) object space) to values in some other domain. A wide variety of implementations of texture classes are available in the pbrt system. Textures may be a source of high-frequency variation in the final image. The chapter begins by discussing the problem of texture aliasing and general approaches that can be implemented to solve it. It describes the basic texture interface and illustrates its use with a few simple texture functions. Furthermore, the chapter presents a variety of more complex texture implementations, demonstrating the use of a number of different texture antialiasing techniques along the way.
This chapter develops the theory and practice of techniques for improving the efficiency of Monte Carlo integration without necessarily increasing the number of samples. Variance in Monte Carlo ray ...tracing manifests itself as noise in the image. The battle against variance is the basis of most of the work in optimizing Monte Carlo. Monte Carlo's convergence rate means that it is necessary to quadruple the number of samples in order to reduce the variance by half. Because the run time of the estimation procedure is proportional to the number of samples, the cost of reducing variance can be high. One of the techniques that has been most effective for improving efficiency for rendering problems is a method called importance sampling. Choosing a sampling distribution that is similar in shape to the integrand leads to reduced variance. This technique is called importance sampling because samples tend to be taken in “important” parts of the function's domain, where the function's value is relatively large. The chapter discusses importance sampling and a number of other techniques for improving the efficiency of Monte Carlo. Furthermore the chapter derives techniques for generating samples according to the distributions of BSDFs, light sources, and functions related to volume scattering so that they can be used as sampling distributions for importance sampling.