7
$\begingroup$

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 ?

$\endgroup$
8
$\begingroup$

As mentioned in this 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. 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, 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, here, and here, for example. In my opinion, this is the hardest task in switching a studio.

Edit:

One last issue, as brought up by @NathanReed 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, 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.
$\endgroup$
  • $\begingroup$ 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). $\endgroup$ – teh internets is made of catz Oct 3 '15 at 19:27
  • $\begingroup$ 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. $\endgroup$ – RichieSams Oct 3 '15 at 21:43
  • 3
    $\begingroup$ 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. $\endgroup$ – Nathan Reed Oct 3 '15 at 22:25
  • $\begingroup$ 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. $\endgroup$ – v.oddou Oct 6 '15 at 0:29

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.