Killer book on writing a renderer


#27

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.


#28

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… :slight_smile:

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…

-matt


#29

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. :slight_smile:

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…

-matt


#30

How come they said that SSS is implemented http://www-graphics.stanford.edu/courses/cs348b-competition/cs348b-03/ ?

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.:slight_smile:


#31

?How come they said that SSS is implemented http://www-graphics.stanford.edu/co…tion/cs348b-03/

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.


#32

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…

-matt


#33

mmp, I have sent you private message about a friend of mine who has some questions about your book. :slight_smile:
thanks


#34

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.


#35

got this book a week ago and i must agree, an awesome book it is!

thanks for the advice!

// Redmar


#36

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.

Thanks to matt and greg!

-teep


#37

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 :slight_smile:

BTW if you’re ordering it from the UK, then http://www.compman.co.uk/ have copies at about £15 cheaper than Amazon…


#38

My copy just came in… :thumbsup:


#39

I was about to get Real-Time Rendering by Tomas Akenine-Moller. Should I get this book instead or shuold I get both?

skj


#40

i already got them both and pbrt is way better for CGI.
Real Time Rendering is more for games/game engines.
(for example, RTR explains the inside of the xbox or realtime algorithms while pbrt does all the cool rendering/global illumination stuff)
another big difference with both books is the fact that RTR hasnt got a lot of code in it, while PBRT has a lot of theory and C++ explanation code!

good luck with your choice!

:slight_smile:

// Redmar


#41

I like Real-Time Rendering (2nd Edition). It gives a good breadth of info while also referencing the prospective research papers if you are interested in further research in an area. I would recommend both if you have the cash and time. :thumbsup:


#42

Damn I’ve been waiting for this book for a long time. I emailed the author about it’s availability years ago when I first heard of a rough version being used as a course document. Kudos for getting it out.

I have about $600 worth of books that I want to buy now. :eek:


#43

Did anyone have a chance to look at this book yet?
Production Rendering


#44

Now that’s a good book on writing a renderer. Thanks for the link stew. I’ll get that as soon as I’ve saved up enough money :slight_smile:


#45

sigh /me goes to Amazon… :sad:


#46

Whoever gets it first, make sure you post your impressions of it here! I’d be really interested in this book, but I’m afraid none of the bookshops in my city will have that in the shelf. I’m not too keen on spending 94 Euros on a book I haven’t hat a peek into.