
Show HN: Physically Based Rendering – Online Edition - wjakob
http://www.pbr-book.org/
======
wjakob
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...](http://www.pbr-
book.org/3ed-2018/Preface_to_the_Online_Edition.html))

~~~
OnACoffeeBreak
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](https://imgur.com/a/3Mfanma)

~~~
mattpharr
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!

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

> where the an accurate modeling

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

------
s-macke
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.

~~~
dahart
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.

~~~
tagrun
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.

~~~
mattnewport
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.

~~~
tagrun
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...](https://en.wikipedia.org/wiki/Ab_initio_quantum_chemistry_methods)
for an example) that doesn't get thrown around cheaply.

~~~
dahart
> 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.

~~~
tagrun
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](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!

~~~
dahart
> 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!

------
peakai
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!

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

[https://www.oscars.org/sci-tech/ceremonies/2014](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.

------
corysama
There is a Patreon to help pay for the servers
[https://www.patreon.com/pbrbook](https://www.patreon.com/pbrbook)

------
elteto
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.

~~~
mattnewport
One option is to dive in with Peter Shirley's ray tracing intros linked at the
top of
[http://www.realtimerendering.com/raytracing.html](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.

~~~
elteto
Fantastic! Thanks for the suggestion.

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

~~~
mattpharr
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.

~~~
svat
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,

------
brian_herman__
Awesome work guys! [http://www.pbr-
book.org/3ed-2018/Introduction/Photorealistic...](http://www.pbr-
book.org/3ed-2018/Introduction/Photorealistic_Rendering_and_the_Ray-
Tracing_Algorithm.html) I am going to read this part when I get home.

------
cultofmetatron
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).

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

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

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

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

------
xchip
Wooow thanks guys!

