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:
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?
Although I already have couple of similar graphics prgroamming books for beginer, but those books does not include any ready-to-use sounce code. So I am thinking about buying this book if :
Are there any algorithms or source codes included in these sections? Or just some euqations?
(
5.3 Working with Radiometric Integrals
5.3.1 Integrals over Projected Solid Angle
5.3.2 Integrals over Spherical Coordinates
5.3.3 Integrals over Area
16.5.2 Photon Integrator
16.5.3 Building the Photon Maps
17.1 The Equation of Transfer
17.2 Volume Integrator Interface
17.3 Emission-Only Integrator
17.4 Single Scattering Integrator
)
Since I already have couple of graphics programming books and many siggraph papers,
the most/only attractive topic of this books to me is volume scattering (any topics about subsurface scattering?) and rendering. Will it be to hard to understand these for the people like me who don’t have too much maths background?
One thing I have been feeling very diffcult so far is converting those eqautions to programming code, if this book provides the codes of these chapters , I must buy it as I hope I can learn those equations from the codes. And what method/function they will use for the symbol/notation.
There is no source code in these sections, though essentially all of chapters 14, 15, and 16 is about implementing the ideas discussed here, and they are all full of source code.
Yes, source code.
Just math in those, though the remainder of ch 12 is full of source code implementing the ideas discussed in section 12.1
Yes, source code implementing all of this stuff.
Yes!
No source in 17.1, just math. But 17.2, 17.3, and 17.4 have source code implementing the ideas discussed there.
IMHO one of the more useful things that the book provides is both the theory (math) and the implementation (source code) of just about every topic that is introduced. So I think it helps bridge the gap for people to better understand the math by seeing the implementation and being able to refer to that. Because all of the source code is there, it’s much less likely that the book glosses over important details, etc.
From looking at the toc it doesn’t seem to include any discussion of writing an efficient scanline algorithm or dealing with large datasets. Are these topics mentioned at all?
there is some information about space partitioning structures but there isn’t any extensive discussion of “critically large” datasets that you can find in architecture or that kind of engineering problems (that i have seen - Matt can correct me).
so the book won’t help you to write a hybrid renderer, which seems to have become the flavor of the moment. that’s probably why it’s called “physically based” rendering rather than “rendering for FX and movies”.
mmp, I still have 2 more questions , I oredered the book today though.
Since I remember this one http://www.pbrt.org/gallery/01F11.jpg is rendered by a winner of 348b rendering competition, I wonder whether I can use your renderer to render the image like this , without writing and additional code?
IS there any difference of your pbrt and the lrt? are they 100% same?
I have downloaded some source codes from the winnder of 348b rendering competition before, but I don’t know what the code (scattering module) exactly doing as there are not too many comments or explanations. How about pbrt, any comments beside the source code?
Thanks again.
Yep, indeed, there isn’t a lot of detail about either handling datasets that don’t fit into memory and/or hybrid/scanline approaches. (There are some exercises that discuss how to extend the system to handle large amounts of texture map data, however.)
While those are definitely interesting topics, we didn’t include much about them since the system doesn’t have algorithms for that stuff implemented. So the good news about the approach we took in the book is that if we do discuss an algorithm, we also discuss how to implement it in great detail, down to the level of walking through complete source code that implements it. The bad news is that if we didn’t implement a particular algorithm, we don’t discuss it very much. And given the length already, we had to draw the line somewhere…
Certainly we tried to include what we thought were the most interesting/appropriate topics for the focus of the book (physically-based rendering), but there are plenty of interesting things like the stuff you mention that would have been nice to include but aren’t in there for the above reasons…
No, that one necessitated extending the system to include a subsurface scattering algorithm. (That’s probably the biggest cool/new rendering feature that’s not in there.) Of the ones in the gallery, all but that one, the dog, and the nighttime snow scene are rendered with the unmodified system as described in the book. Those three illustrate the cool things one can do by extending the system.
pbrt and lrt are the same thing. The fact that we couldn’t get the lrt.org domain had something to do with the name change. If you downloaded code that extended the system written by students in classes that used it, I definitely can’t make any guarantees that there will be much in terms of comments. The actual pbrt source code in the .h and .cpp files has relatively few comments, the idea being that if you want to understand their implementation, really the thing to do is to read the book, which deconstructs all of them in pretty deep detail. The book also has quite a lot in terms of cross-references, so that it’s easy to get to the page that has the definition a certain function that is used in code that’s discussed on that page, etc…
Is there any image rendered with the actual pbrt with volume / single scattering?
Unfortunately, the code of SSS is not in there, but I beleive many ppl want to get it. Is there any reason that SSS is not included in this book? Is it too hard to understand for graphics programming newbie?
I am not a programmer, i use my spare time to learn graphics programming by myself, sorry if my questions are silly.
i haven’t used the software… so i am guessing here but i would venture that his implementation is a standalone application that is not a direct part of the renderer (the proposal indicates an irradiance gathering pass…)
>Is there any image rendered with the actual pbrt with volume / single scattering?
the book has several illustrations of fog and smoke showing single scatter
>Is it too hard to understand for graphics programming newbie?
single scatter integration is fairly simple (fairly straigthforward importance sampling) and has been around for a while (hanranhan 93 ?)- the dipole simulation on the other hand is a little trickier to perform efficiently. there are other ways to implement specific diffusion more efficiently though.
Right, that’s because the point of those rendering competitions is for students to implement an algorithm themselves and then render an image showing off the new algorithm, not to just use the system as is to make pictures… So it was implemented by a student taking the course by modifying the pbrt system; it’s not that it was implemented in the core system described in the book.
In the gallery page, http://pbrt.org/gallery.php, both the image with the smoky cloud as well as the one with the outdoor scene that sort of looks like a dark stormy/cloudy day are rendered with single scattering, using the algorithms described and implemented in chapter 17.
No problem, there’s nothing wrong with asking questions to learn! I agree that it’s too bad that there isn’t a SSS implementation in there. It was just one of those things where we couldn’t make the book any longer, and there was nothing obvious to cut to make room for that.
Over time, our goal is to have a number of plugins available on the pbrt.org website that extend the system in various interesting ways. We’re working on some now, and hopefully users/readers will contribute their own as well. A nice subsurface scattering implementation would certainly be a nice thing to have there…
Got the book two days ago*. I didn’t have the time yet to start reading it properly, but what I can tell from flipping the pages and reading one or the other paragraph is that this is the book I’ve been waiting for: It’s the missing link between the scientific papers and source code. It looks like it could answer a lot of questions I’ve had so far (not all, unfortunately - I wish the book had a chapter explaining the dipole approximation of diffuse scattering) - I can only highly recommend it.
*actually, it’s my coworker’s free copy, he contributed the sports car image. Mine’s ordered, but takes a while.
I just got the book a couple of days ago, and I highly recommend it. My only complaint is that my body is too small in relation to the size of the book, and there is not enough spare time in my life for reading this book.
In all seriousness, this is a great book, great value for money. If you are like me, who is novice programmer, and have always wanted to know more about the rendering process, this is the only book you need to have. Great explainations and sources. Typically you get one without the other, but pbrt has them both.
As for features which people are asking for, that aren’t available now, I think that because of the excellent way in which the book is put together, you’ll soon have contributions pouring in, if not by the original authors themselves, but by people that have bought the book and have learned alot from it.
Just got a copy too. Haven’t had a chance to take a long look yet, but first impressions after a skim through are that it looks great! It also has to be the heaviest book I think I’ve ever seen - might need to reinforce my bookshelf
BTW if you’re ordering it from the UK, then http://www.compman.co.uk/ have copies at about £15 cheaper than Amazon…