pbrt-v3 source code now available

Practical and theoretical implementation discussion.
mattpharr
Posts: 9
Joined: Sat Jun 20, 2015 8:59 pm

pbrt-v3 source code now available

Postby mattpharr » Tue Jun 30, 2015 5:13 am

In case anyone didn't see it on twitter or on the pbrt mailing lists, I've posted the pbrt-v3 source code: https://github.com/mmp/pbrt-v3. This is the source code that corresponds to the (coming out in Spring 2016) third edition of the book.

There are many improvements and new features in this version; the readme file has all the details: https://github.com/mmp/pbrt-v3/blob/master/README.md.

We'd definitely be happy to hear feedback from the experts here about anything and everything. (But with the caveat that we only have ~2 months before the manuscript goes off to the publisher and thence no significant changes to the implementation are possible any more.)

Thanks,
Matt

dr_eck
Posts: 45
Joined: Mon Dec 05, 2011 7:35 pm

Re: pbrt-v3 source code now available

Postby dr_eck » Wed Jul 01, 2015 6:16 pm

I took a quick run through the comments in the BDPT integrator but couldn't determine if you have implemented Georgiev's VCM or Hachisuka's near-equivalent. I'm under the impression that these are really important contributions. Are they included? Will they be?

How about Markov Chain Monte Carlo?

Will you discuss Kelemen-style MLT versus Veach-style? (Or did I miss that because I'm still at v1.0 of your book?)

How about Adaptive Progressive Photon Mapping? (I only see SPPM in the code comments.)

PBRT is a great book. I'd love to have a copy that include all of the best available algorithms.

koiava
Posts: 47
Joined: Thu Apr 24, 2014 8:18 am
Location: Tbilisi, Georgia
Contact:

Re: pbrt-v3 source code now available

Postby koiava » Thu Jul 02, 2015 8:56 am

Hello Matt,
Really good news! As I see, there is great major features and improvements, congrats! I'll definitely buy a new book!

I have a question about code, there you have sampling function for shape(sphere), and in addition you have function for Pdf? What is the reason to separate those two. Practically In every case when we sample something we also need to know pdf and in external function you need to calculate already calculated thinks again. I guess this is for readability and stylezation of code but I don't think that returning pdf from sampling functions somehow worsens readability.
Colibri Renderer

bachi
Posts: 13
Joined: Sun Aug 26, 2012 8:03 am

Re: pbrt-v3 source code now available

Postby bachi » Thu Jul 02, 2015 11:13 am

koiava wrote:Hello Matt,
Really good news! As I see, there is great major features and improvements, congrats! I'll definitely buy a new book!

I have a question about code, there you have sampling function for shape(sphere), and in addition you have function for Pdf? What is the reason to separate those two. Practically In every case when we sample something we also need to know pdf and in external function you need to calculate already calculated thinks again. I guess this is for readability and stylezation of code but I don't think that returning pdf from sampling functions somehow worsens readability.


I think we will eventually need a separated Pdf function for MIS calculation anyway?

koiava
Posts: 47
Joined: Thu Apr 24, 2014 8:18 am
Location: Tbilisi, Georgia
Contact:

Re: pbrt-v3 source code now available

Postby koiava » Thu Jul 02, 2015 12:24 pm

We might have separate Pdf functions but returning sample and sampling Pdf from sampling function I think is more clear. Is there any case when you are sampling something and you doesn't need to know pdf?
Colibri Renderer

papaboo
Posts: 41
Joined: Fri Jun 21, 2013 10:02 am
Contact:

Re: pbrt-v3 source code now available

Postby papaboo » Thu Jul 02, 2015 2:15 pm

I'm with Koiava on this. Generally I find it much easier to return both sample and pdf as a single entity. It just makes it clear that you need to take the pdf into account.
The only exception is when we can sample something uniformly and the pdf is the same for all samples. In some of those cases we can just average by the number of samples taken and pdf be damned. However, even in those cases I would still implement both sample methods, just to make it clear that there is still a pdf involved.

stefan
Posts: 43
Joined: Wed Dec 21, 2011 8:57 pm

Re: pbrt-v3 source code now available

Postby stefan » Fri Jul 03, 2015 3:02 pm

Spring 2016? I guess I have the code as bedtime reading material until then. ;)

shiqiu1105
Posts: 138
Joined: Sun May 27, 2012 4:42 pm

Re: pbrt-v3 source code now available

Postby shiqiu1105 » Mon Jul 06, 2015 11:59 pm

Hi Matt,

Really looking forward to the book!

I took a brief at what you updated in v3, and it looks like some of the recent advances in gradient domain integrators have not been included.
Such as gradient path tracing and bidirectional path tracing. I personally feel like these are really impactful algorithms that many will use in the future.

Son't know if it's too late to suggest you to add it at this point.

ypoissant
Posts: 97
Joined: Wed Nov 30, 2011 12:44 pm

Re: pbrt-v3 source code now available

Postby ypoissant » Tue Jul 07, 2015 5:37 pm

I'm reading the chapter on floating point precision.

I was surprised to read that one can use an "enum" for casting between two different representations. I did not try that but I used to use a "union" for that.

Edit: I see that the "union" is later mentioned. So I say that the two use of "enum" are errors. Page 209.

ypoissant
Posts: 97
Joined: Wed Nov 30, 2011 12:44 pm

Re: pbrt-v3 source code now available

Postby ypoissant » Wed Jul 08, 2015 12:25 am

On page 214, I don't understand the sentence "When working with these error intervals, it’s important to remember that because
(1 ± em) terms represent intervals, canceling them incorrect:"

On page 219 "then it’s impossible to tell whether it is exactly zero or whether a small positive negative value has rounded to zero."

Page 229 "guaranteed to be on the right side of the surface so that they ray doesn’t incorrectly intersect the surface it’s leaving." and "a second source of rounding error most also be addressed"
Last edited by ypoissant on Wed Jul 08, 2015 11:36 pm, edited 1 time in total.


Return to “General Development”

Who is online

Users browsing this forum: No registered users and 3 guests