# 1 Introduction

Rendering is the process of producing an image from the
description of a 3D scene. Obviously, this is a very broad task, and there
are many ways to approach it. *Physically based* techniques attempt
to simulate reality; that is, they use principles of physics to model the
interaction of light and matter. While a physically based approach may
seem to be the most obvious way to approach rendering, it has only been
widely adopted in practice over the past 10 or so years.
Section 1.7 at the end of this chapter gives a brief
history of physically based rendering and its recent adoption for offline
rendering for movies and for interactive rendering for games.

This book describes `pbrt`, a physically based rendering system based on the
ray-tracing algorithm. Most computer graphics books present algorithms
and theory, sometimes combined with snippets of code. In contrast, this book
couples the theory with a complete implementation of a fully functional
rendering system. The full source
code to the system is available under the
BSD license. Further information, including
example scenes and a collection of data for rendering can be found on the
`pbrt` Web site, pbrt.org.