What is PBR (Physically-Based Rendering)?
PBR effects can be seen in the above video during the B-roll segments, featuring a CryEngine tech demo of Ryse and a Star Citizen ship rendering. At its most basic level, PBR is “a lighting technique that treats light the way it really behaves in the world” (Scott Peters, in the video above). To achieve its photorealistic promises, PBR employs mathematical equations that determine how a light source will diffuse (diffusion) or reflect (specularity) when it interacts with two primary types of materials: Metals and non-metals.
Diffusion and specularity (effectively reflectivity) are the two means through which light interacts with a surface. When light connects with a metallic, glossy surface, a significant percentage of the light will be reflected off that object; light connecting with softer, non-shiny surfaces (think: wood, cloth) will be absorbed and diffused across that surface, making it brighter without reflecting as much outward light. In instances of semi-transparent but non-shiny materials (the skin of a human ear or hand), sub-surface scattering diffuses the light underneath the surface and produces a new color output. “Albedo” is used to describe the color of light that scatters out of a surface.
PBR only defines metals (conductors) and non-metals (dielectrics). Metal surfaces are mapped in a way that PBR can produce a specific color of light when reflected off the surface. This has been demonstrated in several game engines, to include CryEngine and Unreal Engine, and makes for realistic environments. If a light sources shines brilliantly upon a red, metal subway bench, that bench will produce a “glow-like” effect coloring nearby surfaces (walls) a slight red.
Dielectric (insulating) surfaces do not emit a colored light output with PBR, though conductors will, as in the real world.
No surface is perfect, though: Imperfections in a surface are illustrated in-game with “microsurface shading,” producing light-to-surface interactions based upon the general roughness mapped to a particular material. This is something that was improved upon with PBR, significantly reducing an artist's hands-on time; PBR uses its set of calculations to restrict surface reflection per material, so an identical metal with a different surface roughness will still reflect the same amount of light. Rather than change the amount of light reflected by rougher surfaces, physically-based renders will assign more of a glowing beam to less rough surfaces and more scattered light to rougher surfaces.
PBR also allows for real-world reflection/diffusion phenomena, like conservation of energy and physically-correct distribution patterns of light. Conservation of energy ensures that the light reflected or diffused by a surface never exceeds the input (source of the light), meaning that artists can't accidentally break the rules of physics. This enforces more realistic lighting scenarios.
On the technique and development side, PBR makes it easier for artists to treat assets normally. Physically-based rendering of an object means that artists don't have to independently and manually tweak for every lighting condition, reducing asset creation and allowing for use of a single texture. In traditional, non-PBR implementations of light, artists have to account for every possible lighting scenario – day and night, for instance – thus lengthening asset creation time. This change results in a faster production pipeline while enhancing visuals, as light will algorithmically be fitted for varying wavelengths, brightness (intensity), and angles of impact.
When speaking to the CryEngine team, we learned that there's almost no noticeable performance impact to the hardware. Scott Peter, an on-site engine programmer, explained that PBR produces a very realistic look with less effort (on behalf of the developers), but indicated that “the shader computations are not significantly different.”
Our thanks to the entire Crytek booth staff for assisting in explaining PBR.
Editorial: Steve "Lelldorianx" Burke.
Film: Keegan "HornetSting" Gallick.