Defining PBR (Physically-Based Rendering) Graphics with Crytek Developers
Posted on March 13, 2015
Physically-based rendering promises photorealistic lighting in 3D environments by offering a mathematical, less production-intensive approach to the rendering of light. The three letter acronym – “PBR” – has circulated lately as industry frontrunners like Chris Roberts (Star Citizen) have touted its presence in triple-A titles. A few game engines come to mind when we think of advanced, hyper-realistic graphics capabilities; one of those engines is the CryEngine, developed and maintained by Crytek and best-known for advancing PC graphics with Crysis.
While at GDC, we had the opportunity to ask a pair of CryEngine developers to explain what PBR is, how it affects gameplay, and if it has any performance or production impact to games. Joining us in the below video is 3D Environment Artist Sina Els and Engine Programmer Scott Peter, providing a top-level definition of physically-based rendering and its uses.
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.”
To see PBR in action, gamers can look forward to Star Citizen (or watch some of our videos on the game) and play Ryse, where everything uses physically-based rendering.
Our thanks to the entire Crytek booth staff for assisting in explaining PBR.
Editorial: Steve "Lelldorianx" Burke.
Film: Keegan "HornetSting" Gallick.