Hacker News new | past | comments | ask | show | jobs | submit login
Show HN: Physically Based Rendering – Online Edition (pbr-book.org)
297 points by wjakob on Oct 15, 2018 | hide | past | favorite | 42 comments



Matt, Greg, and I are super-excited to release a free online edition of the Physically Based Rendering Book with hyperlinked cross-referencing, beautiful SVG figures and equations as well as interactive image comparisons. The details of how all of this came to be are explained in the preface to the online edition. (http://www.pbr-book.org/3ed-2018/Preface_to_the_Online_Editi...)


Is there a place to report issues?

In section 2.9.1 Quaternions, 4th paragraph reads as if it's missing an equation for the second representation of a quaternion:

  A quaternion can be represented as a quadruple [EQ present] or as [EQ missing] , where is an imaginary 3-vector and  is the real part. We will use both representations interchangeably in this section. 
This is what it looks like for me:

https://imgur.com/a/3Mfanma


Nice find!

In general, you can send errata/bugs to authors@pbrt.org, but we got this one. :-)

It looks like an equation that MathJax wasn't happy with. I've got it fixed now and will include that fix in a push to the site in a little bit.

If you want to be listed as something other than "OnACoffeeBreak" in the errata credits, send me an email (matt@pharr.org).

Thanks again!


There’s a typo in the second sentence on the landing page, a redundant “the”:

> where the an accurate modeling


Thanks! Also fixed and will also go live in a little bit.


Fantastic news and amazing work, the site looks beautiful! I love my copy of PBR but it's always been a tad on the heavy side for casual reading :)

The image viewer works brilliantly and the renders are looking gorgeous. Looking forward to spending some hours with this on my iPad later.


Thank you, this is fantastic news! PBR has always been one of my favorite textbooks.

Your road map says:

> We plan to release updated versions of the book roughly once a year, starting a year or so from now.

Out of curiosity, do you guys still plan to release new print editions?


Thanks! We'd love to have a new print edition at some point in the future, but the details of this are yet to be determined.


Really great work. I think this book has been exceptionally valuable to many people over a long period of time, and likely raised the overall level of raytracing knowledge among graphics programmers by a large amount.


Awesome, I just recently bought both the print and eBook editions as I start to dive into DirectX ray tracing, this looks like it will be a great complement!


This is amazing! Thank you.

I still buy physical books rather than e-books, but I always thought that hyperlinks were a great part of a reading experience as well.


Thank you for this detailed description. I will definitely take a look and read a few chapters about the light transport.

Just a remark. When I first read the title, I was interested in the approximations you use because you emphasize physics so much in your book and your title. I read the preface and found a suspicious sentence.

When configured to do so, pbrt can compute images that are physically correct; they accurately reflect the lighting as it would be in a real-world version of the scene.

That is not correct. You use a phenomenological model for the light-matter interaction and approximate the effects of light with raytracing. That still produces (almost) photo realistic images for our eyes, but is not "physically correct". A paragraph on the limitations of technology could be worthwhile.


The renderer accurately simulates a good chunk of geometric optics -- light propagation along rays, multiple scattering, specular reflection, refraction, and surface roughness due to random microstructure using state-of-the-art models.

It does not simulate wave-optical effects, polarization, fluorescence, and phosphorescence. Some of them are easy to add (e.g. polarization), others such as wave optics are very challenging to solve in a fully general setting and would make the resulting system impractical to use.

However, that's not the whole story: even when simulating the underlying optics meticulously, a rendering of plane is not going to look photorealistic. Some detail must also go into modeling of the input, which is beyond the scope of the book (though Section 10.6 talks a bit about creating detail with noise functions).


I’d love to hear a bit more about what you mean. What parts of the model do you consider incorrect, and what would it take to be correct? Are there specific things you read in the book, or are you talking about rendering and/or ray tracing generally? Do you have some specific limitations you’re thinking of?

Honestly curious, since as a graphics person and not a physicist, I’ve been under the impression that most of our “physically based” rendering framework these days can be derived from, explained by, or validated against first principles, and that only some of the reflectance functions we use might be described as “phenomenological” (and we might call those “hacky”). And as @wjakob said, there are certainly optical effects we don’t normally see, and don’t spend time computing.

Is it possible to have phenomenological models that are correct? The word means the model hasn’t been derived from first principles, but it doesn’t mean the model is wrong... right?

Personally, I think of the term “physically correct” within the context of computer graphics history. It’s not a technical term, and its meaning historically is referring to what came before now, and maybe not as much of a strict literal absolute as your interpretation(?). The 80’s and 90’s were full of fabulous graphics tricks that are even less physically correct than what we have now. Video games still have lots of them too.

Calling our newer techniques “physically correct” is perhaps kinda like how we call our TVs now “high definition”, or our colors “high dynamic range”. They’re not “high” in any absolute sense of the word, they’re just higher than before. In 10 or 20 years, what we call “high definition” today is probably going to feel like pretty low definition.


Physicists here. I would be careful about calling it "first principles" (you can look up that the meaning of that term within today's physics literature, it's typically called "ab initio", and usually refers to quantum mechanical treatment without a bunch of high level approximations). To a physicist, a first-principles calculation of light-matter interaction would in practice mean starting from a second-quantized form of the electromagnetic field + the lattice of the bulk or surface material + itinerant electrons.

What PBR people are doing is to imagine the matter at small scale looks like a patchwork of many small walls (perfect reflectance or ballistic transport), and assume that light and matter behave and interact the same way in a macroscopic setting, which is further simplified to Snell's law, neglecting all classical wave-like characteristics. Beyond that, obviously, all quantum mechanical effects are neglected (which aren't that exotic, for daily-life examples, think laser pointers or solar panels or crystals).

That is a far cry from an ab initio calculation and is, at best, a very incomplete toy model or cartoon description of light and matter interaction which might barely be enough to deceive human eye for most everyday objects.


What you seem to be describing are micro facet models which while commonly used in PBR renderers are not really fundamental to PBR. One of the major things that distinguishes PBR from earlier approaches is trying to ensure BRDFs for non emissive surfaces aren't adding energy by reflecting more total outgoing radiance than incoming radiance. Micro facet models help achieve that but there is also research that tries to more or less directly use measured BRDFs as well as trying to fit micro facet based and other models' parameters to measured data.

Of course there are non local scattering effects that are not captured by BRDFs and that can be perceptually important for some materials so there are also extensions like BSDFs used in some PBR renderers. Overall the PBR approach is to try and understand the underlying physics and drop or approximate (in a more or less principled way) the parts that are impractical to simulate or have small perceptual effects in most situations. It's not really about any specific such approximation like micro facet models. "Physically Based" seems like a perfectly good name for this approach, perhaps "Physically Inspired" would have been an appropriate alternative.


Microfacets is just one example (which is what PBR approximations today ubiquitously use BTW). The very idea of a B*DF function for light is a rough approximation, and can never capture a variety of quantum effects. You can simply never recover the first-principles quantum dynamics of a macro-scale matter + light.

Approximations and models need to be made, that's how it works. Yes, you can make it better and better as the hardware improves. And calling it "physically based" sounds fine to me. What doesn't sound fine is to claim that any PBR-related work in the graphics literature today starts from "first principles". First-principles or "ab initio" in physics is a very specific technical word reserved for calculations which really start from first principles (see https://en.wikipedia.org/wiki/Ab_initio_quantum_chemistry_me... for an example) that doesn't get thrown around cheaply.


> What doesn’t sound fine is to claim that any PBR-related work in the graphics literature today starts from “first principles”.

The use of that term was entirely my sloppiness alone. I used “first principles” only to mean the opposite of a phenomenological model, as @s-macke put it. What’s the right term there? Theoretical model?

You’re okay with “physically based”, but not “first principles”, @s-macke was okay with “first principles” but not “physically correct”. Personally, I wouldn’t mind being able to talk about graphics in a way that doesn’t immediately rub physicists the wrong way, but I’m not sure how, and I’m bound to cause some problems flinging around terms that have a precise technical meaning in physics. Sorry about that. ;)

It’s definitely true that in graphics we are not usually setting out to simulate quantum effects, unless the result is visible at the macro scale. Despite that, we’re trying to incorporate all the physics that matter at the macro scale.


I think an accurate description would be classical (meaning not quantum mechanical) model of light (which covers both geometrical optics and wave optics) and phenomenological model (in physicist's sense: https://en.wikipedia.org/wiki/Phenomenological_model) of matter and light-matter interaction. It is a phenomenological model, because it's either derived from a cartoon description of matter at microscopic scale and how light bounces off it, or fitted to some experimental data, and is without an underlying actual first-principles physical theory either way.

BTW, I hope you don't think this is just me being picky about words; if you talk to any physicists in condensed matter matter physics and say the magic words "first principles", they'd immediately start thinking that you did ab initio calculations. First-principles calculations and DFT is a sub-field, and entire careers and communities are built on it!


> I hope you don’t think this is just me being picky about words

Not at all, thank you for taking the time to explain!


To add a little to what @mattnewport said, yes some reflectance models are based on a microfacet theory. But some people are just using measured reflectance (sometimes along with curve-fit approximations). How does an empirical statistical table of reflectance fit into the world of physics models? Would you consider that more correct than a microfact model?

> starting from a second-quantized form of the electromagnetic field + the lattice of the build or surface material + itinerant electrons.

I’d love to see a model derived that way that we can use in graphics, and I don’t have the physics chops for it. Feel like writing a paper for siggraph? ;)

> a very incomplete toy model... which might barely be enough to deceive human eye for most everyday objects.

Yep :) That is the end goal of most graphics, we do stop when it looks good enough.


> How does an empirical statistical table of reflectance fit into the world of physics models? Would you consider that more correct than a microfact model?

Reflectance would be an emergent property of a material. No such thing exists in a microscopic quantum model (that is, first principles). It may make sense in certain situations, but it doesn't make sense in others.

Think about a simple process of an electron absorbing a photon, which later goes back to it's initial state by spontaneously emitting two photons of different colors (like from |0> -> |2> by absorption, and |2> -> |1> -> |0> by two consequent emission) with random delays in time (which has to obey the distribution is determined by Fermi's golden rule, which is in turn determined by the microscopic Hamiltonian). How do you assign a reflectance to this process?

Or a valance electron going into conduction band by absorbing a photon, moving around a bit, and emitting a similar photon at a different point after merging with a hole.

I can give you dozens of examples of physical processes of light-matter interactions that no kind of B*DF function can emulate.

> I’d love to see a model derived that way that we can use in graphics, and I don’t have the physics chops for it. Feel like writing a paper for siggraph? ;)

Solving the many-body problem in the presence of an EM field which is also treated quantum mechanically, without approximations that washes away all the quantum mechanical effects? That's probably worth a lot much more than a siggraph paper, like a couple dozen of Nobel prizes.

> Yep :) That is the end goal of most graphics, we do stop when it looks good enough.

I completely agree, and I'm not saying it's a bad model for its purposes. It just isn't a first principles physics, is all I'm saying.


@wjakob has already mentioned a few effects not taken into account in your approximation. You can derive raytracing from first principles, e.g. from the Maxwell-equations or even Quantum electrodynamics. But only with massive approximations. I guess you want to say, that you are "physically correct" within the framework (approximation, limitation) of raytracing. That would be Ok here.


FWIW, the book gives a more detailed description of the assumptions/limitations of pbrt here: http://www.pbr-book.org/3ed-2018/Color_and_Radiometry/Radiom...

E.g. it doesn't handle things like polarization, interference or fluorescence, assumes light is instantaneous, etc.


All models are wrong. "Physically-based" is rather inspecific as a description, but it's the term people are familiar with.


Ever since I saw this book being sold, I've been eagerly wanting to read it. The physics-based approach is definitely the way I would prefer to learn any subject, and rendering is just one of the areas I wish I knew more about. Delighted to know that you guys put it online, thank you!


This is the book that won Matt Pharr, Greg Humphreys and Pat Hanrahan an Academy Award

https://www.oscars.org/sci-tech/ceremonies/2014

>> To Matt Pharr, Greg Humphreys and Pat Hanrahan for their formalization and reference implementation of the concepts behind physically based rendering, as shared in their book Physically Based Rendering.

>> Physically based rendering has transformed computer graphics lighting by more accurately simulating materials and lights, allowing digital artists to focus on cinematography rather than the intricacies of rendering. First published in 2004, Physically Based Rendering is both a textbook and a complete source-code implementation that has provided a widely adopted practical roadmap for most physically based shading and lighting systems used in film production.


There is a Patreon to help pay for the servers https://www.patreon.com/pbrbook


What is the best way to attack this book as a graphics programming beginner (but with plenty of C++ experience)? I saw several people praise it a while back in HN and took a cursory look. It seemed complete and thoroughly explained but missing examples or "checkpoints" along the way where I could turn around and test what I had been building.


One option is to dive in with Peter Shirley's ray tracing intros linked at the top of http://www.realtimerendering.com/raytracing.html

These will get you a quick overview and get something rendering. PBRT is a great follow up to really understand the physical underpinnings and get more into the theory of how to do things correctly and efficiently.


Fantastic! Thanks for the suggestion.


The new Real Time Rendering book is good. Also, the sidebar of https://www.reddit.com/r/opengl/ has good tutorials


what technology have they used to create the website? I'm guessing some pandoc to html workflow plus a static site engine?


It's pretty much a big hack.

The book was originally written in TeX, with lots of macros on top. We hacked together a custom translator (~3k loc, written in golang) that parses the TeX and generates the site.

Then MathJax to render the equations, Bootstrap 4 for some navigation, and jeri.io for the interaction with images.


Thank you, this is the first time I've seen a "literate programming" text presented on the web. It's really well done, and makes up for some of the drawbacks of on-paper LP: being able to expand the definitions of sections (modules?) in-place, and being able to follow function definitions, are both very useful.

I had some plans to present some other such written-in-TeX-literate-programs in HTML; could you perhaps share somewhere your "big hack" that you used here (the translator, the javascript)? Totally ok if you don't want to :) Thanks,


Awesome work guys! http://www.pbr-book.org/3ed-2018/Introduction/Photorealistic... I am going to read this part when I get home.


This makes me super happy. I bought the book a few years back and always meant to go through it with rigor to build my own renderer. Now I have that free time but as a digital nomad, I couldn't bring the book. (its up there in size).


Thanks for putting this online, my physical copy is currently buried in storage and I’ve been dying continue reading it!


I got my physical copy a few months ago, glad to see more people having access to this great resource now!


Thank you so much. I love my physical copy but can't always take it with me places.


This is amazing news. Congratulations and thanks so much for this present to humanity.


Wooow thanks guys!




Consider applying for YC's W25 batch! Applications are open till Nov 12.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: