PBR, Textures and Video game engines

One thing that all of us have struggled with in video games, as they have all transitioned to PBR renderers… is “what does that mean for FX?” The ideas around Albedo, Metalness, Specularity… and the fundamental philosophy behind it of “scientifically measurable” numbers… is hard to wrap your head around in terms of volumetric smokes, fires, etc…

Even the headroom ranges (albedo textures tend to stay within a subset of the 0-255 range in non HDR textures) that various engines use varies.

So, here’s a thread to discuss findings, best practices, etc…

A few questions to kick it off.

For HDR textures, do you like them to be 0-1 normalized and multiply emissives up to their proper brightnesses? Or would you prefer to see the numbers inside of a .exr -actual proper over 1 values- so that they are more “real world plug and play”.

What are proper albedo numbers, if anyone has found them… for “white smoke” (wood/gasoline source), “black smoke” (rubber/oil smoke), " brown/light grey smoke" for forest fires.

Proper way to discover HDR values from fire (given that if we’re using Action VFX footage, we can unwind from the camera settings… exposure.

Preferred ways to balance PBR accurate vs. “it reads”. For example… muzzle flashes, outdoor during the day, in real life are invisible. Their light is less than the sun is providing. But people in games want to see the muzzle flashes all the time… so how to you balance that? What material or other system do you use to implement this?

Light room tests… Do you all bother to create galleries that are lit in a variety of EV scenarios from negative (very dim candle lit, or less indoor spaces) up to 15 or 18 (extremely bright cloudless sunny days)?

Authoring for bloom? A lot of times, it’s nice to make sparks or other emissive things look a little glowy. So you just put a multiplier in there, and tune that number till the bloom looks nice. It’s not PBR to do it this way, and it is not consistent across lighting scenarios.

What other PBR hurdles have you dealt with?


Good Burger Reading GIF

I’ll have to come back to this topic later, but to start, in general, I prefer values normalized to the 0.000-1.0 scale. In the long run it’s more intuitive, no matter what color bit depth you’re using. None-to-all, Empty-to-full, right?