<p>As mentioned in <a href="https://computergraphics.stackexchange.com/a/1468/310">this</a> answer, Physically-Based Rendering isn't a set number of things. It's a <em>concept</em>. It's akin to saying something is 'Environmentally Friendly'. There are many different techniques to be environmentally friendly <em>and</em> someone can implement those techniques to varying degrees. The same is for PBR.</p>

<p>In the end, Physically Based Rendering is just that, based on Physics in some way, shape, or form. One of the most basic 'physical' rendering techniques I can think of is using <a href="https://en.wikipedia.org/wiki/Lambertian_reflectance" rel="nofollow noreferrer">Lambert shading</a>. While you may say, "Well that doesn't take into account specular light, or etc, etc. etc.", I agree. Lambert shading is a crude representation of the physics of light. But, pedantically, it <em>is</em> PBR, because it is based off the physical observation that light intensity decreases with viewing angle.</p>

<p>A renderer can implement as many, or as few PBR techniques as they choose. Some can be very computationally expensive, others, quite cheap. They can also choose to enable or disable certain techniques for different targets. For example, UE4 has a different set of techniques for mobile games, than for high end PC games. </p>

<p>Now, that all said, when today's modern renderers talk about being "Physically-based", they are generally referring to using a modern BRDF, generally some form of <a href="http://ruh.li/GraphicsCookTorrance.html" rel="nofollow noreferrer">Cook-Torrance</a>, and physically plausible inputs. Inputs being: materials with physically-plausible color values and lights with physically based intensity values. </p>

<p>Using a modern BRDF can be very computationally expensive, but, there are many approximations that can make it more friendly.</p>

<p>Using physically-plausible inputs is generally not that difficult to implement on the renderer side, rather it's more difficult for artists. IE. teaching them what the different material values mean, and what are physically plausible values. This can be a huge task, depending on your artists, as seen in the presentations <a href="http://www.frostbite.com/wp-content/uploads/2014/11/course_notes_moving_frostbite_to_pbr.pdf" rel="nofollow noreferrer">here</a>, <a href="https://disney-animation.s3.amazonaws.com/library/s2012_pbs_disney_brdf_notes_v2.pdf" rel="nofollow noreferrer">here</a>, and <a href="http://www.slideshare.net/guerrillagames/lighting-of-killzone-shadow-fall" rel="nofollow noreferrer">here</a>, for example. In my opinion, this is the hardest task in switching a studio.</p>

<p><strong>Edit:</strong></p>

<p>One last issue, as brought up by @NathanReed in the comments:</p>

<p>Implementing a modern BRDF in the shader doesn't necessarily immediately make the rendering better. In many cases, it can make other parts of the pipeline a glaring issue. Below are some additional things that are important in getting the most out of a modern BRDF:</p>

<ul>
<li>HDR lights and doing all rendering calculations in HDR</li>
<li>Gamma correct rendering</li>
<li>Indirect lighting of some kind (skybox lighting, static environment probes, screen space reflections, etc)

<ul>
<li>This is huge for metals. <a href="http://blog.selfshadow.com/publications/s2015-shading-course/hoffman/s2015_pbs_physics_math_slides.pdf" rel="nofollow noreferrer">Metals have no diffuse reflectance</a>, so most of the surface of the metal will be black if you don't have indirect reflections</li>
<li>This is also one of the more difficult things to get real-time, especially for dynamic scenes. </li>
</ul></li>
</ul>

CC BY-SA 3.0
2015-10-03T19:27:14.637Z
I understand what PBR is and that it's a vague definition, as you pointed out I should have said BRDF. I get how basic Blinn-Phong shading works, but I'm wondering if (in probably naive terms) going for a (even simplistic) BRDF model is just a rewrite of shader + a slight change in the rendering pipeline, or something more complicated. As for my last question, I mean low end hardware with limited capabilities (think embedded devices).
teh internets is made of catz
CC BY-SA 3.0
2015-10-03T21:43:28.917Z
Yes, implementing a BRDF is just a case of re-writing a shader and swapping out which textures are used as imputs. However, as mentioned above, making those textures is the hard part.
RichieSams
CC BY-SA 3.0
2015-10-03T22:25:01.223Z
Beyond just rewriting the BRDF, it's also important for the rendering pipeline to be gamma-correct and support HDR to some level. Those are definitely more involved changes if the engine doesn't have them already. Also, PBR tends to require more attention to indirect lighting (particularly specular, to look good with glossy materials), and adding various forms of real-time or semi-real-time indirect lighting to your engine can also be a huge task.
Nathan Reed
CC BY-SA 3.0
2015-10-06T00:29:10.157Z
Honestly, this is a bit off topic but to me it seems that focusing on crazy microscopic adjustments on the 5D space curves of BRDF by developping fitting models of microfacets integration, is just nit pick. It is much more important to focus on getting correct global illumination. it doesnt even have to be real time.
v.oddou
CC BY-SA 3.0
2015-10-03T18:06:30.183Z
2015-10-05T20:55:39.827Z
2017-04-13T13:00:43.660Z
RichieSams
<p>I am wondering if the various PBR models used in modern game engines for real time are heavier in terms of computation, that more classic approaches to rendering.</p>

<p>Worded differently, is PBR just a different way to organize one's rendering pipeline, or does it add serious complexity (especially in regards to lighting) ?</p>

<p>Depending on the answer, what would be the bottleneck for a low-resource implementation ?</p>

<rendering><real-time><lighting><physically-based>
Does PBR incur a performance penalty by design?
teh internets is made of catz
# Does PBR incur a performance penalty by design?

(Asked by: username_0 on 2015-10-03)

I am wondering if the various PBR models used in modern game engines for real time are heavier in terms of computation, that more classic approaches to rendering.

Worded differently, is PBR just a different way to organize one's rendering pipeline, or does it add serious complexity (especially in regards to lighting) ?

Depending on the answer, what would be the bottleneck for a low-resource implementation ?

**Tags:** rendering, real-time, lighting, physically-based


---

## 1 answers

### Answer by username_1 on 2015-10-03. Score: 8 | Accepted answer

As mentioned in [this](https://computergraphics.stackexchange.com/a/1468/310) answer, Physically-Based Rendering isn't a set number of things. It's a *concept*. It's akin to saying something is 'Environmentally Friendly'. There are many different techniques to be environmentally friendly *and* someone can implement those techniques to varying degrees. The same is for PBR.

In the end, Physically Based Rendering is just that, based on Physics in some way, shape, or form. One of the most basic 'physical' rendering techniques I can think of is using [Lambert shading](https://en.wikipedia.org/wiki/Lambertian_reflectance). While you may say, "Well that doesn't take into account specular light, or etc, etc. etc.", I agree. Lambert shading is a crude representation of the physics of light. But, pedantically, it *is* PBR, because it is based off the physical observation that light intensity decreases with viewing angle.

A renderer can implement as many, or as few PBR techniques as they choose. Some can be very computationally expensive, others, quite cheap. They can also choose to enable or disable certain techniques for different targets. For example, UE4 has a different set of techniques for mobile games, than for high end PC games.

Now, that all said, when today's modern renderers talk about being "Physically-based", they are generally referring to using a modern BRDF, generally some form of [Cook-Torrance](http://ruh.li/GraphicsCookTorrance.html), and physically plausible inputs. Inputs being: materials with physically-plausible color values and lights with physically based intensity values.

Using a modern BRDF can be very computationally expensive, but, there are many approximations that can make it more friendly.

Using physically-plausible inputs is generally not that difficult to implement on the renderer side, rather it's more difficult for artists. IE. teaching them what the different material values mean, and what are physically plausible values. This can be a huge task, depending on your artists, as seen in the presentations [here](http://www.frostbite.com/wp-content/uploads/2014/11/course_notes_moving_frostbite_to_pbr.pdf), [here](https://disney-animation.s3.amazonaws.com/library/s2012_pbs_disney_brdf_notes_v2.pdf), and [here](http://www.slideshare.net/guerrillagames/lighting-of-killzone-shadow-fall), for example. In my opinion, this is the hardest task in switching a studio.

**Edit:**

One last issue, as brought up by @username_2 in the comments:

Implementing a modern BRDF in the shader doesn't necessarily immediately make the rendering better. In many cases, it can make other parts of the pipeline a glaring issue. Below are some additional things that are important in getting the most out of a modern BRDF:

* HDR lights and doing all rendering calculations in HDR
* Gamma correct rendering
* Indirect lighting of some kind (skybox lighting, static environment probes, screen space reflections, etc)
  + This is huge for metals. [Metals have no diffuse reflectance](http://blog.selfshadow.com/publications/s2015-shading-course/hoffman/s2015_pbs_physics_math_slides.pdf), so most of the surface of the metal will be black if you don't have indirect reflections
  + This is also one of the more difficult things to get real-time, especially for dynamic scenes.

> **Comments:**
> **username_0**: I understand what PBR is and that it's a vague definition, as you pointed out I should have said BRDF. I get how basic Blinn-Phong shading works, but I'm wondering if (in probably naive terms) going for a (even simplistic) BRDF model is just a rewrite of shader + a slight change in the rendering pipeline, or something more complicated. As for my last question, I mean low end hardware with limited capabilities (think embedded devices).  
> **username_1**: Yes, implementing a BRDF is just a case of re-writing a shader and swapping out which textures are used as imputs. However, as mentioned above, making those textures is the hard part.  
> **username_2**: Beyond just rewriting the BRDF, it's also important for the rendering pipeline to be gamma-correct and support HDR to some level. Those are definitely more involved changes if the engine doesn't have them already. Also, PBR tends to require more attention to indirect lighting (particularly specular, to look good with glossy materials), and adding various forms of real-time or semi-real-time indirect lighting to your engine can also be a huge task.  
> **username_3**: Honestly, this is a bit off topic but to me it seems that focusing on crazy microscopic adjustments on the 5D space curves of BRDF by developping fitting models of microfacets integration, is just nit pick. It is much more important to focus on getting correct global illumination. it doesnt even have to be real time.  

---

