Physically based rendering (PBR) is a technique for rendering images that simulates the way light interacts with real-world materials. PBR is based on the principles of physics, such as the laws of reflection and refraction. This allows PBR to produce images that are more realistic and visually appealing than traditional rendering techniques.
Here are some of the benefits of PBR:
- More realistic images: PBR images are more realistic because they accurately simulate the way light interacts with real-world materials. This is especially evident in the way that PBR images handle reflections and refractions.
- Visually appealing: PBR images are often more visually appealing than traditional rendering techniques. This is because PBR images have a more natural look and feel.
- Efficient: PBR can be more efficient than traditional rendering techniques. This is because PBR uses a more physically accurate model of light, which can lead to faster rendering times.
PBR is a powerful technique that can be used to create realistic and visually appealing images. It is becoming increasingly popular in video games, architectural visualization, and product design. If you are interested in creating realistic images, then PBR is a technique that you should consider.
Metalness Workflow
The metalness workflow is defined by a set of channels that are fed to a sampler in the PBR shader as textures. The maps specific to the metal/roughness workflow are the base color map, the metallic map, and the roughness map. We will discuss each of these map types, which are common to both workflows. The Sceneri PBR shader also uses a normal map for displacement mapping.
In the metal/roughness workflow, the reflectance value for metals is stored in the base color map, alongside the reflected color for dielectrics. The BRDF handles reflection at grazing angles. A metallic map is used as a mask to differentiate between metal and dielectric data found in the base color map.
Color Albedo (sRGB)
The base color map is an RGB map that can contain two types of data: diffuse reflected color for dielectrics and reflectance values for metals. The color that represents dielectrics represents the reflected wavelengths of light. Reflectance values are present if an area in the metallic map is denoted as metal (white values). This allows for a more realistic representation of materials, as different materials have different properties when it comes to how they reflect light.
Metallic (Linear)
The metallic map is a grayscale texture that defines which areas of a material should be treated as metal. It is used in conjunction with the base color map to tell the shader how to interpret the data found in the base color map. Black areas in the metallic map are interpreted as non-metal, while white areas are interpreted as metal. This allows for a more realistic representation of materials, as different materials have different properties when it comes to how they reflect light.
Roughness (Linear)
A roughness map describes the surface irregularities that cause light to scatter in different directions. This scattering is what gives a surface its matte or glossy appearance. Rougher surfaces will have larger, more diffuse highlights, while smoother surfaces will have smaller, more focused highlights. The total amount of light reflected by a surface is the same regardless of its roughness, but the way that light is reflected is different.
Normal (sRGB)
Normal maps allow 3D graphics cards to simulate the appearance of bumps and dents on low-resolution models. This is done by storing the projected details of a high-resolution model in a RGB map, where each component corresponds to the X, Y, and Z coordinates of the surface normal. The graphics card then uses this information to calculate how the light should be reflected off the surface, giving the illusion of depth and detail.
Normal mapping is a more efficient way to render surface structures than displacement mapping, because it does not actually change the geometry of the model. This means that normal maps can be used to improve the appearance of models without increasing the amount of polygons, which can improve performance.
Additional Concepts
When designing complex materials, you may sometimes add additional maps to provide unique details or lighting effects to your object. Here are several common textures or methods used throughout common PBR workflows:
- Ambient Occlusion: A shading technique that simulates the soft shadows and darkening effect that occurs in small crevices and areas where objects come into close proximity.
- Height map: a powerful tool for enhancing the realism of rendered objects. They do this by introducing additional geometric detail that interacts with lighting and shading, providing a heightened sense of depth and texture.
- Channel Packing: A technique that consolidates multiple maps into individual channels of a texture, optimizing memory usage and improving rendering performance. This is done by storing the data for each attribute, such as color, roughness, or metallic, in a separate channel of the texture. This allows for the efficient use of memory, as only one texture needs to be loaded into the GPU, and it can also improve rendering performance, as the GPU can process the data from the texture more quickly.
In conclusion, PBR is a total game-changer. It's a powerful technique that takes shading and rendering to the next level by accurately simulating how light interacts with surfaces. PBR, or physically based shading, ensures that assets are represented from a physically accurate standpoint, delivering photorealistic results that will make your jaw drop.