Killer book on writing a renderer


#1

Guys, y’all gotta check this book out. I got it yesterday from a trade show in London.

“Physically Based Rendering” by Matt Phar and Greg Humphreys (publ. Morgan Kaufmann)
ISBN: 0-12-553180-X

Have a look at the website: www.pbrt.org
(They’ve got the appropriate links to Amazon etc. on their site).

I’ve only read the first 50 pages or so, but from what I’ve seen, anyone who’s even slightly serious about writing their own renderer should get this book NOW! It covers pretty much everything in a standard ray tracer and more, i.e. Photon Mapping, Monte Carlo, sampling theory, scattering, volumetrics, texturing, BRDF models, DOF, etc. But it also includes the code for the pbrt (physically based ray tracer) renderer that implements all of these techniques and the book takes you through the code step by step, which means that you get to see all the little details that go into actually producing the final working renderer.

It also has a plugin API which means that you can easily add your own modules into all sorts of areas of the architecture. Apparently they’ve been using this software to teach the students at Stanford Uni, cause it means they can jump right in and get their hands dirty without having to write all the basic (boring) stuff to do with loading and saving files etc. The code works on Windows, Mac OS X and Linux.

(and no, I’m not being paid for this advert… trust me, this book is good)

Regards

Andy


#2

/sigh : there goes my salary direct to Amazon again…


#3

uhm…I know IT related books are expensive…BUT 80$??


#4

compounded to the $300 i have already spent this month… Amazon owns me.


#5

Hey, at 8 cents per page, that’s a bargain.

I’m currently writing a renderer during lunch breaks at work, and am finding it difficult to get past the boring coding of all of the foundation classes (Matrix Transformations/Translations, Vector classes, etc etc). Maybe once my kitchen reno is paid off I’ll take a look at this book.

Thanks for the link!


#6

Yup, it’s not the cheapest book around, but if you take into account the amount of time it’ll save you in having to research all the techniques via SIGGRAPH papers and experimentation, plus the fact that it includes a CD with the source code to a very capable renderer (probably as good if not better than some products out on the market), then it works out very cheap.


#7

How many pages are there about volume rendering and light scattering??


#8

The contents looks like this…

Chapter 12 Volume Scattering p569
Absorption p570
Emission p572
Out-scattering and Extinction p574
In-scattering p576
Phase Functions p578
Volume Interface and Homogeneous Media p582
Homogeneous Volumes p584
Varying-Density Volumes p586
3D Grids p588
Exponential Density p590

Much of the information presented in that chapter includes explanation of the implementation (including source code).


#9

You might want to do a google-search for algebra3.h

A great library (free) with linear algebra-functions and classes. It might save you some time and hard work.

McWolfe


#10

Or just use Imath, ILM’s rather spiffy templated maths library, available as part of their openexr distribution:

http://www.openexr.com/downloads.html


#11

I had looked at OpenEXR for the native fileformat of my renderer, but since I wasn’t at that stage yet, I had not really looked into all of the code. But after a brief glance into the IMath template headers, I must say that I’m quite impressed with both the clean format of the header files, and the completeness of the classes. A great looking package.

Thanks McWolfe & playmesumch00ns for the tips :slight_smile:


#12

Wow, thanks loads for pointing out how good that library is. I saw it in the pbrt render source code but didn’t explore it enough. I think that’s gonna be the basis for a lot of my code from now on. Thanks :slight_smile:


#13

thats not so expensive, all computer science related books is in that price range…

I bought 2 books for 1600 SEK (Swedish currency) ~= 184$


#14

i received the book this morning - thumbs up. excellent summary with implementation of many rendering techniques with most of the maths fundamentals developped nicely. not a lot of “cutting edge” stuff, but a solid reference on many of the more delicate subjects.

warning : it’s a heavy 1000 pages.


#15

1000 pages? At least you get something for your money :slight_smile:
Sounds like this is one book I want to get!


#16

Not too bad, I’m current writing a ray-tracer.

No I didn’t buy it at Amazon. I went to the vender’s booth at SIGGRAPH. :thumbsup:


#17

Glad to hear that you guys are enjoying the book (I’m one of the authors, found this thread by grepping the referrer log at the pbrt.org website. :slight_smile:

For what it’s worth, as other posters have noted, it is 1000 pages, and it does include a CD with the system’s source code. It is also full color throughout, so there are quite a few color images to help illustrate ideas, etc. Also, BarnesAndNoble.com currently has it on sale for $63 or so.

Regarding:

There are two full chapters on the topic, one on the basics of how light scatters in volumes and modeling volume stuff (uniform densities versus procedurally-defined densities versus voxel grids, etc), and one on algorithms for rendering light scattering in volumes (single scattering, ray marching techniques, etc.) I’d guess about 100 pages total, but I’m not sure since I don’t have a copy in front of me.

-matt


#18

quite frankly - even at $80 it’s still a steal. this is probably the single best source on how to write a fully fledged renderer i have seen so far. after browsing quickly through it yesterday, my only two critics would be:

  • no mention of hybrid renderers (REYES)
  • no diffusion scattering algorithm (the volume scattering section is very good though)
    i wonder how many slaves years it’s taken to put this book together :deal:

#19

slaves == grad students :stuck_out_tongue:


#20

Too bad. While subsurface scattering appears to be the flavor of the week in current rendering, it’s hard to find source code examples. Does anyone know where I can find info besides Mr. Jensen’s publications and Mr. Hery’s SIGGRAPH presentation?