← Back to context

Comment by dansalvato

1 year ago

I don't know much about 3D graphics and rendering. Oddly enough, I first learned about PBR when I heard that Metroid Prime Remastered for Nintendo Switch used PBR and still achieved 60fps, which is apparently an incredible feat for the platform.

But to help put it into perspective, can someone briefly explain what PBR brings to the table that last-gen rendering stacks in games failed to do? Also, was there a former widely-used standard akin to PBR, or was it more of a free-for-all? I'd love to have an entry-level understanding of how things changed for the gaming/real-time graphics industry with the onset of PBR.

PBR is not really a new rendering stack or a new framework, but a way of thinking about the asset creation process and shader development that allows for more of a separation between material models and lighting. There were a few things associated with the PBR trend that do not have anything, strictly, to do with PBR, but came along for the ride and helped things:

* The recognized importance of specularity in materials, outside of the ones that are obviously shiny. Something something, everything has fresnel. Look at your wood desk, or your matte walls, and you'll notice you'll see some glossy reflections on them.

* We switched away from art workflows that generated normal maps out of Photoshop filters, and towards programs and workflows that kept a much better idea of 3D-ness throughout the stack. Substance Painter, Substance Designer, and baking normal maps from ZBrush are a huge and understated part of the PBR transformation.

* We changed around our terminology, and put more floorboards underneath the rugs. e.g. in the before times, if you had a material that was "unlit", it probably just displayed as the diffuse color texture, and nothing else. That doesn't make sense, that's the reflectance properties of the material. So we changed things around to be lights-first, and a lot of things fell into place from that. Together with that, basic kinds of global illumination started becoming more and more mainstream through probes.

* We redesigned lighting and shading models to use more physics in them. Out went the observational Phong and Blinn-Phong, and in came the more empirical Trowbridge-Reitz and GGX. We fixed lights to have accurate inverse-square-law falloffs. We replaced (or are in the process of replacing) point lights and spotlights with area lights. And GI became a reliable tool.

Before the PBR revolution, things were far more scattershot, though there were definitely attempts at trying to integrate physics. Half-Life 2, Unreal 3, and Halo Reach might not have strictly been "PBR" by modern standards, but definitely had a lot of good ideas floating around it with regards to lighting.

So PBR has become the default in the industry since starting around 2009 but really took off around 2013 - 2014. It was adopted because it could represent a larger range of physical surfaces then previous models while looking more consistent and being easier to understand [0]. Before then most 3d games either used Phong or Blinn-Phong [1] but they were hard to control for artists and they didn't really represent many materials very well.

[0] https://marmoset.co/posts/physically-based-rendering-and-you...

[1] https://en.wikipedia.org/wiki/Blinn%E2%80%93Phong_reflection...

  • > So PBR has become the default in the industry since starting around 2009 but really took off around 2013 - 2014

    I think Disney's publication of their Wreck-it-Ralph movie + papers, showcasing that a singular shader created all the different characters of that one film, really took PBR to the mainstream.

    https://media.disneyanimation.com/uploads/production/publica...

    A highly popular movie that showcased the methodology, as well as published papers on the subject to scientific journals really hammered the point home. This was a new paradigm shift and far easier to think about than earlier models.

    > We deployed our “Principled Layers” shader on Wreck-It Ralph and used it on virtually every material except for hair (which still uses the model developed for Tangled).

    A statement like this from Disney is truly a mic-drop moment. Especially given how impressively diverse the characters were from Wreck-It-Ralph.

    Wreck-It-Ralph was 2012. So pretty close to your timeline. (Especially if we consider that it takes time for people to see the movie, read the papers, think about the situation and realize that a paradigm shift just happened).

My understanding is that in the past you could try to make some random shader and tune it to make it look good/real in some condition, but then it will not look good in other conditions. With PBR you take more complex shaders, but they are based on real physics, and they will look good in almost all conditions.