PBR, short for Physically Based Rendering, is a rendering method first introduced by Disney in 2012 and later widely adopted by the gaming industry. Compared to traditional rendering methods like Blinn-Phong, PBR adheres to energy conservation and follows physical principles. Artists only need to adjust a few simple parameters to achieve accurate rendering results, even in complex scenes. PBR incorporates energy conservation, is physically-based, and introduces IBL (Image-Based Lighting) to simulate global illumination. By using parameters such as metallic and roughness, it allows for more convenient adjustment of rendering effects.
Parameter | Application |
---|---|
metallic | Metallic Level: Simulates the metallic nature of a material. The higher the metallic value, the stronger the specular reflection, allowing more surrounding environment to be reflected. |
roughness | Roughness: Simulates the material's roughness. The higher the roughness, the less smooth the micro-surface becomes, resulting in more diffuse specular reflections. |
roughnessMetallicTexture | Metallic-Roughness Texture: Works in conjunction with metallic and roughness values, using a multiplicative relationship. |
baseColor | Base Color: Base Color × Base Color Texture = Final Base Color. Base color represents the material's reflectance value. Unlike traditional diffuse colors, it contributes to both specular and diffuse reflections. You can adjust the metallic and roughness properties to control the ratio of these contributions. |
emissiveColor | Emissive Color: Allows materials to emit light, rendering colors even without illumination. |
baseTexture | Base Color Texture: Works with base color in a multiplicative relationship. |
normalTexture | Normal Map Texture: Simulates surface bumps visually using a normal map, with adjustable strength to control the intensity of the effect. |
emissiveTexture | Emissive Texture: Used in conjunction with emissive color(emissiveFactor)to achieve self-emitting effects. |
occlusionTexture | Occlusion Texture: Enhances shadow detail using an occlusion map. |
tilingOffset | Texture Tiling and Offset: A Vector4 controlling the tiling and offset of the texture in the UV directions,See example |
clearCoat | Clear Coat Intensity: Default is 0, meaning the clear coat effect is disabled. See example 。 |
clearCoatTexture | Clear Coat Intensity Texture: Works multiplicatively with clearCoat. |
clearCoatRoughness | Clear Coat Roughness: Determines the roughness of the clear coat layer. |
clearCoatRoughnessTexture | Clear Coat Roughness Texture: Works multiplicatively with clearCoatRoughness. |
clearCoatNormalTexture | Clear Coat Normal Texture: If not set, it defaults to using the base material's normal texture. |
Adjusting the metallic property reveals that higher metallic values make the environment reflection more vivid, transitioning from pure white to colored. This happens because fully metallic surfaces (metallic = 1) reflect 100% of the light, including the surrounding environment:
Beyond these general parameters, PBR supports two workflows: Metallic-Roughness and Specular-Glossiness, corresponding to PBRMaterial and PBRSpecularMaterial。
Parameter | Application |
---|---|
anisotropy | Anisotropy Strength: Default is 0, disabling anisotropic effects. See example 。 |
anisotropyRotation | Anisotropy Rotation: Rotates the effect in tangent space. |
anisotropyTexture | Anisotropy Texture: The RG channels store direction information (combined with anisotropyRotation), while the B channel stores anisotropy strength (multiplied by anisotropy). |
To enable anisotropy
Typically used to simulate the subtle glossy effect of surfaces like fabrics, this effect is usually visible at certain viewing angles. It mimics the light-scattering characteristics of materials like silk, velvet, or other finely textured surfaces.
Parameter | Description |
---|---|
sheenColor | Base sheen color of the surface. This property determines the observed glossy color when light interacts with the surface. |
sheenColorTexture | Adds more complex and detailed variations to the sheen color. Using this texture allows different areas of the surface to exhibit distinct glossy colors. |
sheenRoughness | Defines the surface roughness. Lower values indicate smoother surfaces with more concentrated gloss, while higher values create rougher surfaces with softer, more diffused gloss. |
sheenRoughnessTexture | Allows variations in roughness across the surface using a texture, enabling detailed roughness patterns for more realistic effects. |
Enable sheen
Parameter | Description |
---|---|
iridescence | Intensity of the thin-film iridescence, ranging from 0 to 1. |
iridescenceTexture | Texture controlling the intensity of the thin-film iridescence. |
iridescenceIOR | Index of refraction for the thin-film effect, influencing the degree of light bending and resulting colors. |
iridescenceThicknessRange | Defines the thickness range of the thin film, determining the color variation caused by the iridescence effect. |
iridescenceThicknessTexture | Texture defining the thickness variation of the thin film, influencing the final colors. |
Enable Iridescence
Parameter | Description |
---|---|
transmission | Controls the intensity of light transmission through the material, ranging from 0 (opaque) to 1 (fully transparent). |
transmissionTexture | A texture that multiplies with the transmission value, sampled from the R channel, to control varying transmission intensities across the surface. |
Enable transmission
Refraction
occurs based on the physical principle that it requires transmission
. This means refraction
effects only apply when transmission is greater than 0.
Parameter | Description |
---|---|
attenuationColor | Absorption color, determining the color change of light as it travels through the object. Useful for simulating colored glass, liquids, or gemstone effects. |
attenuationDistance | The distance over which light diminishes within the object. Shorter distances result in denser appearances with more pronounced color changes, while longer distances produce more gradual changes. A value of 0 means no attenuation. |
thickness | Refraction thickness, controlling the bending of light as it passes through the object. Higher values produce more pronounced refraction, while smaller values create straighter light paths. |
thicknessTexture | A texture sampled from the G channel to define thickness variations. White areas represent greater thickness, black areas represent less, and it multiplies with the thickness value. |
Enable Refraction
Assumptions made for implementing the refraction algorithm:
A simple geometric approximation is used to simulate the surface characteristics of the object. The material's refraction mode is determined using refractionMode.
refractionMode | Description |
---|---|
Sphere | Uses a sphere as the geometric approximation for the surface, efficiently handling light refraction on curved surfaces. |
Planar | Uses a plane as the geometric approximation for the surface, suitable for simulating transmission and refraction on flat materials. |
Parameter | Application |
---|---|
specularColor | Specifies the specular highlight color directly instead of deriving it from metallic and base color values (only effective when the metallic-roughness workflow is disabled). |
glossiness | Simulates surface smoothness, opposite to roughness (only effective when the metallic-roughness workflow is disabled). |
specularGlossinessTexture | A texture for combining specular color and glossiness, with the values being multiplied together. |
Note:PBR require ambient lighting to be enabled.
For scripting materials,refer to the Material Usage Guide.