BRDF model for the PBR maps


(3Digify) #1

Releasing PBR is great news and certainly the right way to go for Sketchfab!

Is there any information about the BRDF model (Ward, Phong, Lafortune, ...) you are using, for the PBR maps?

E.g. What exactly are the "Metalness", "Roughness" or the "Specular" parameters?

The information I am seeking is something like, "We use the Ward BRDF model and our roughness parameter refers to parameter xy in this formula".

Any information would be great for me, because I would like to fit these parameters to some illumination measurements. Accordingly, I need to understand what they exactly mean.

Thx for your help!


(Cedric) #2

Hi,
We used the implementation of PBR described in UE4 papers. You can find the details in the links below. Additionally, in reference to different workflows ( metallic / specular ) and how they work, we recommend you to read the guide from Allegorithmic.

UE4 Brian Karis paper:
http://blog.selfshadow.com/publications/s2013-shading-course/karis/s2013_pbs_epic_slides.pdf
http://blog.selfshadow.com/publications/s2013-shading-course/karis/s2013_pbs_epic_notes_v2.pdf

Allegorithmic PBR guide
https://www.allegorithmic.com/page_element/text_large_media/986

I hope this helps


(3Digify) #3

Hi cedric,

thanks for your answers. So what I got until now is that you are using the UE4 reflectance model.
From the papers you linked I could find out that the UE4 pipeline uses the "Disney BRDF model", however with some modifications that are not explained in further detail. Is there any paper you know where I can find the complete BRDF formula as you are assuming it in Sketchfab (including "Metalness", "Cavity", ...) ?

Thanks Tobias


(Cedric) #4

I dont remember exactly where all the exact references come from, I guess in papers referenced.
The metallic things is explained quickly in this paper http://blog.selfshadow.com/publications/s2012-shading-course/burley/s2012_pbs_disney_brdf_notes_v3.pdf page 12. There is also a very good resource about PBR http://www.frostbite.com/2014/11/moving-frostbite-to-pbr/

Some useful references:

For the diffuse part we use a simple Lambert and for the specular we use the one in the UE4 paper. We also use the same roughness remapping as UE4.

Here the pseudo code to compute diffuse and specular from metallic workflow:

float metallic = texture2D( metallicMap, uv ).r;
vec3 diffuse = baseColor * (1.0 - metallic);
specular = mix( dielectricReflectance, baseColor, metallic);

I hope this help
Cedric


(3Digify) #5

Thanks very much, this answers most of my questions. I haven't read all of your provided references yet. So I'll do this first and then come back to this thread if some questions remain.
Thx