Download the free Kindle app and start reading Kindle books instantly on your smartphone, tablet, or computer - no Kindle device required.
Read instantly on your browser with Kindle for Web.
Using your mobile phone camera - scan the code below and download the Kindle app.
Follow the authors
OK
Physically Based Rendering: From Theory to Implementation 2nd Edition
There is a newer edition of this item:
- ISBN-100123750792
- ISBN-13978-0123750792
- Edition2nd
- PublisherMorgan Kaufmann
- Publication date
2010
July 12
- Language
EN
English
- Dimensions
7.5 x 1.8 x 9.3
inches
- Length
1200
Pages
Customers who viewed this item also viewed
Editorial Reviews
Review
"Physically Based Rendering is a terrific book. It covers all the marvelous math, fascinating physics, practical software engineering, and clever tricks that are necessary to write a state-of-the-art photorealistic renderer. All of these topics are dealt with in a clear and pedagogical manner without omitting the all-important practical details." --Per Christensen Senior Software Developer, RenderMan Products Pixar Animation Studios "Intended for graduate or advanced undergraduate students in a computer graphics course, this large volume provides a comprehensive examination of complex rendering algorithms and demonstrates, through detailed examination of source code and example projects, the practical development and application of cutting edge image creation and processing software. This second edition is updated to reflect current technologies and contains updated information on relevant recent hardware improvements such as advanced multi-core processors as well as an increased focus on production graphics techniques. The text includes numerous illustrations, code examples, and formulas as well as recommendations for further reading and chapter exercises. Pharr is a principle engineer for Intel and Humphreys is an engineer for NVIDIA and a former professor of computer science at the University of Virginia." --SciTech Book News "Pharr and Humphreys’ textbook is beautifully typeset, thoroughly indexed, unendingly cross-referenced, extensively illustrated, and printed in full color. Given its unconventional preparation style, this textbook stands out because of its descriptions of the tradeoffs involved in developing a complete working renderer. Although somewhat verbose at times, the discussions of design tradeoffs and performance considerations are an excellent complement to the more traditional coverage of the theory behind photorealistic rendering. C++ idioms sometimes get in the way of more elegant solutions, but their use is always reasonably justified. If you are just looking for a general introduction to image synthesis and rendering, standard graphics textbooks [2] might fit the bill; however, if you intend to develop your own renderer or try out new ideas, this textbook provides an excellent starting point." --Computing Reviews.com
Review
An updated and expanded edition of the definitive rendering reference!
From the Back Cover
Physically Based Rendering, 2nd 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.
About the Author
Greg Humphreys is Director of Engineering at FanDuel, having previously worked on the Chrome graphics team at Google and the OptiX GPU raytracing engine at NVIDIA. Before that, he was a professor of Computer Science at the University of Virginia, where he conducted research in both high performance and physically based computer graphics, as well as computer architecture and visualization. Greg has a B.S.E. degree from Princeton, and a Ph.D. in Computer Science from Stanford under the supervision of Pat Hanrahan. When he's not tracing rays, Greg can usually be found playing tournament bridge.
Product details
- Publisher : Morgan Kaufmann; 2nd edition (July 12, 2010)
- Language : English
- Hardcover : 1200 pages
- ISBN-10 : 0123750792
- ISBN-13 : 978-0123750792
- Item Weight : 5.84 pounds
- Dimensions : 7.5 x 1.75 x 9.25 inches
- Best Sellers Rank: #2,796,807 in Books (See Top 100 in Books)
- #147 in Rendering & Ray Tracing
- #195 in 3D Graphic Design
- #1,830 in Game Programming
- Customer Reviews:
Important information
To report an issue with this product, click here.
About the authors

Greg Humphreys is a Software Lead at NVIDIA where he works on OptiX, a high performance GPU raytracing engine. Part raytracer, part compiler, part runtime binary modification system, and part operating system, OptiX allows users to create very high performance raytracers that adapt to both the GPU architecture they are running on as well as the dataset they are currently rendering.
Previously Greg has worked at Aggregate Knowledge, a startup company working in analytics, data mining, recommendations, and online advertising. Greg was also a professor of Computer Science at the University of Virginia, and received his Ph.D. from the Stanford Graphics Lab.

Matt Pharr is a Software Engineer at Google, where he works in virtual reality. He was previously a Principal Engineer at Intel after Intel acquired Neoptica, which he co-founded. Before Neoptica, Matt co-founded Exluna (acquired by NVIDIA), worked in Pixar's Rendering R&D group, and received his PhD from the Stanford Graphics Lab.
Customer reviews
Customer Reviews, including Product Star Ratings help customers to learn more about the product and decide whether it is the right product for them.
To calculate the overall star rating and percentage breakdown by star, we don’t use a simple average. Instead, our system considers things like how recent a review is and if the reviewer bought the item on Amazon. It also analyzed reviews to verify trustworthiness.
Learn more how customers reviews work on Amazon-
Top reviews
Top reviews from the United States
There was a problem filtering reviews right now. Please try again later.
I also will not repeat what you can find in th preface - thanks to editor you can preview the book and find what it is about and how it differs from the first edition. The preview also contains three chapters, it is more than enough to give you an understanding what kind of book is it. So, please, no this "I whant to render nice pictures, and this book is full of formulas and program code" comments.
No CDs included, because the renderer source code is available on the book web site (mentioned in the introductory chapter)
I just whant to add something to "About the Authors" because things about them changed more than a little bit, and because you could not find this information here.
(from the back-cover)
Matt Pharr co-founded both Exluna (acquired by NVIDIA) and Neoptica (acquired by Intel), and has also worked in Pixar's Rendering R&D group.
Greg Humphreys is the software lead for the OptiX ray tracing engine at NVIDIA [OptiX is GPU-accelerated rt toolkit, you can find it on NVIDIA developer site - V.I.]
So, as you can see, the authors are trustworthy, at least in this area :).
Also I have print book and reviewed book. That is very good information for ray-tracing programming but it is not for beginners. It requires knowledge of Calculus and Linear Algebra. I researched about that and found some interesting articles like realistic camera lens that uses complex mathematics to render everything as if real camera take photos. I am so impressed. Some day I will learn how to write a program to simulate real camera lens. Rated 5 stars.
Overall ratings: 3 stars.
Now I get to learn it at a much lower level.
This will be a fun journey.
"pbrt" is based on the ray-tracing algorithm. According to the authors this software has three goals in mind: it should be complete, illustrative, and physically based. Completeness meaning that there should be lacking features found in high quality commercial rendering packages, illustrative meaning that they tried to choose algorithms, data structures, and rendering techniques with an eye toward readability and clarity, and physically based meaning that the foundations should be based on the laws of physics and their mathematically expressions.
It should also be noted that the authors take the "literate programming" methodology first coined by Donald Knuth based on the idea that programs should be written more for people's consumption than for computer's consumption.
In order to get the most out of this text your should already have a strong background in computer graphics and are probably enrolled in a graduate level computer science program. Knowledge of vector geometry and transformations are assumed. Also experience with programs with tens of thousands lines of source code would be beneficial, in my opinion.
But if you think your ready, Matt Pharr and Greg Humphreys deliver on their promise with over 1,000 pages building the "pbrt" rendering system from the ground up. You'll get a full course meal consisting of primitive acceleration, radiometry, sampling and reconstruction, reflection models, volume scattering, monte carlo integration, and light transport.
Overall, this can be an intimidating tome. I probably would not recommend this textbook to those that are wanting to jump right to section to learn more about a concept. Instead, you need to have a lot of time set aside to work though this book, which will consists of a lot of code writing. But if you have what it takes, I highly recommend taking the journey, for you will be rewarding with an exceptional understanding of the entire workflow of physically based rendering techniques.
Top reviews from other countries
Es werden alle Bestandteile (Sampler, Integratoren, Metropolis Light Transport, BRDF, ...) eines Rendering Systems behandelt. Neben der Dardestellung im Buch gibt es auf der begleitenden Web-Site auch noch das komplette System im Quellcode samt zahlreichen Beispielszenen unter einer freien Lizenz. Selbst Grundlagen wie geometrische Datenstrukturen (Trees, Voxel, ...) zur effizienten Implementierung finden Platz.
In einer englischen Rezension wurde folgender treffene Kommentar zu diesem Buch samt der kompletten, funktionierenden Implementierung des Renderers abgegeben: jeder, der schon mal auf Basis eines Papers etwas implementieren musste, dass auch funktioniert, weiß wie sehr man dieses Werk schätzen muss!
In allen Kapiteln gibt es auch noch Übungen und Ideen für Erweiterungen sowie Literaturhinweise (so gehört es sich natürlich auch, ist jedoch leider nicht selbstvertändlich).
Abschließend sei noch das wunderschön gebundene Buch zum vergleichsweise günstigen Preis für so ein Spezialthema lobend erwähnt.
Zu meckern gibt es also nichts wesentliches. Der pbrt-Renderer hat sich inzwischen auch als Basis für zahlreiche Paper und Veröffentlichungen etabliert. Das saubere, objektorientierte und dabei doch performante Design und die einfache Erweiterbarkeit dürften die Hauptgründe dafür sein.
Nur ganz aktuelle Entwicklungen, wie z.B. Teile des Renderers mit OpenCL auf GPUs laufen lassen (die nächste Generation vom Blender Renderer wird dies nutzen, im luxrender gibt es auch erste Module dazu) oder auch SPPM ("Stochastic progressive photon mapping"), sind in diesem Grundlagenbuch noch nicht abgedeckt.
Das Buch ist im sogenannten “Literate-Programming”-Stil verfaßt, d.h. Code-Listings wechseln sich mit erklärenden Prosa-Texten ab. Die Code-Schnipsel stammen aus dem Raytracer pbrt der Autoren, dessen Quellcode auch auf der Website des Buches heruntergeladen werden kann. Nun mag sich Literate Programming gut dazu eignen komplexen Quellcode zu dokumentieren und wenn man dem Buch von Anfang bis Ende folgt (und keine Fehler macht), kann man so auch eine eigene Version von pbrt selbst reimplementieren. Ob diese Version dann funktionstüchtig ist, merkt man aber leider erst ganz zum Schluß.
Sinnvoller wäre es meiner Meinung nach gewesen, wenn die Autoren einen iterativen Weg gewählt hätten: Anstatt dem Leser vom ersten Kapitel an einen schwer zu durchblickenden, vergleichsweise komplexen State-of-the-Art-Raytracer um die Ohren zu hauen, hätten sie mit einer einfachen, grundlegenden Variante beginnen sollen (Stichwort: Schwebende Kugel im Raum mit Ambient-Lighting), deren Fähigkeiten dann nach und nach ausgebaut werden würde. So hätte der CG-Neuling direkt laufenden Programmcode zur Hand — den er noch dazu in allen Einzelheiten verstünde — was der dauerhaften Motivation sicherlich zugute käme.
Folglich kann man dieses, grundsätzlich schön gemachte, Buch nur Lesern empfehlen, die bereits über ein fundiertes Grundwissen verfügen und schon zwei, drei Raytracer selbst implementiert haben. Dann kann dieses Werk durchaus als Inspirationsquelle für die eigene Arbeit dienen. Neulinge aber sollten besser die Finger von "Physically based rendering" lassen.
The first chapter presents the idea of "literate programming", and mentions that in reading the book, you will read the "full implementation of the pbrt rendering system". Yup, the entire source code for their program is in the book. Is it any wonder that (as the authors note) only two other books have been written like this?
As I see it, the hierarchy of code to books should be like so:
The code should contain the working implementation in its simplest practical form. It should be clear, concise, readable, and easily navigable with modern IDEs and tools. Putting the code in the book destroys that last point, making it harder to understand, and harder to get an idea of structure or intent. In addition the code itself is made less readable (by reducing variable and function name length and removing all vertical spacing) purely for purposes of fitting it in the book.
Comments should explain why the code makes certain choices with regard to implementation. They should describe what code does only where the code must necessarily be unclear. The PBRT source contains reasonable (if minimal) comments. However, in the book, the authors choose to simply restate most of what the code does in the form of text, similar to the worst type of code commenting by beginner programmers.
Theory should not be explained in the code or comments. This is what a book is for. It should work from top down, explaining the background and overall aims of the code, as well as the techniques and algorithms used, going into detail where necessary. In book form, diagrams, graphs and tables can be freely used to convey ideas. While PBRT contains some useful diagrams and passages, it often abandons any attempt to explain and devolves to uniformly copy-pasting and describing all the source code.
To sum up: The PBRT book takes the code and theory, and shoves it all together. This makes it very difficult to read and digest the theory, and harder to understand or navigate the code. Furthermore the actual writing is often very unclear or ambiguous.
If this book omitted the code and focussed on explaining the theory as clearly as possible it could be around a third of the length, but contain more information.





