PBR: A better understanding of the theory

Hi there.

At the moment I’m doing a lot of research. I’m trying to get a better theoretical understanding of whats happening “behind the scenes” of three.js.
These are topics like how does PBR work with its equations and so on. I’ve seen the article that three.js mentions when explaining PBR, but I’m looking for a more mathematical approach. Some deeper detail.

To get this started -> https://learnopengl.com/PBR/Theory

is this link a step into the right direction?
I know there is a lot on the internet but I dont want to confuse the things that three.js does with things it doesnt.

Thanks in advance!

Are you asking for the reference material used to create the three.js PBR materials?

Yes, kind of.
To be more precise -> how does the look of the metalness in the metalness-attribut gets generated. Is there a general equation or something similar? I just want a deeper understanding of the origin of this concept.

Yes. I suggest you also read the resources from the “Further reading” section. There are many papers, books and blog post about PBR so it shouldn’t be too complicated to find appropriate reading material.

Understanding metalness is only half of the story. You also have to understand its relation to roughness and the underlying concept of microfacets.

Okay, I’ll give it a try!
Thank you!

I think the three.js MeshStandardMaterial was originally based, at least partially, on this paper.

I could be wrong about that, but in any case this PDF is a good overview of the theory.

1 Like

Thank you!

In addition to this I have another question: Is the bump-mapping used in three.js a classic height field bump-mapping? I had trouble while researching this.

The technique is based on this paper:

Thank you!

Naty Hoffman’s introduction to “Physically Based Shading” course on SIGGRAPH university offers a really good overview of the basic theory in PBR.

I suggest taking a look at it, if you haven’t done it already.

Personally, having visual cues about the subject helped me a lot when learning it, and makes it so that reading papers of related subject doesn’t feel so disconnect. As many papers assumes previous knowledge of some concepts for a clear understanding.

1 Like

Okay, I’ll check it out!
Thank you :slight_smile:

As I dont want do open another discussion I have a short additional question: What kind of antialiasing is the default WebGL-Renderer using, if the antialias value is set to true?

MSAA (multisample anti-aliasing)

@Kelle Earlier on this day :slight_smile: What AA method does antialias = true use?

1 Like

Thank you! :slight_smile:

Oh :D, what a coincidence. Thank you :slight_smile: