PBR stands for Physically Based Rendering, or Physically Based Rendering in Chinese. Originally proposed by Disney in 2012, it has since been widely adopted in the gaming industry. Compared to traditional rendering methods like Blinn-Phong, PBR adheres to energy conservation and physical rules. Artists only need to adjust a few simple parameters to ensure accurate rendering results even in complex scenes. PBR follows energy conservation principles, is physically based, and incorporates IBL to simulate global illumination. It allows for easier adjustment of rendering effects through parameters like metallic and roughness.
Parameter | Description |
---|---|
metallic | Metallic. Simulates the metallic properties of a material. Higher values result in stronger specular reflections, reflecting more surrounding environment. |
roughness | Roughness. Simulates the roughness of a material. Higher roughness creates a less flat microsurface and blurrier specular reflections. |
roughnessMetallicTexture | Roughness Metallic Texture. Used with metallic and roughness, operates in a multiplicative relationship. |
baseColor | Base Color. Base Color * Base Color Texture = Final Base Color. The base color represents the albedo value of an object. Unlike traditional diffuse color, it contributes to both specular and diffuse components. We can control the contribution ratio using metallic and roughness. |
emissiveColor | Emissive Color. Renders color even without lighting. |
baseTexture | Base Color Texture. Used with base color, operates in a multiplicative relationship. |
normalTexture | Normal Texture. Creates surface detail with a bump map and controls depth via normal intensity. |
emissiveTexture | Emissive Texture. Combine with emissive color (emissiveFactor) to achieve emissive effects, rendering color even without lighting. |
occlusionTexture | Occlusion Texture. Enhances shadow details of objects. |
tilingOffset | Tiling Offset. A Vector4 value controlling UV scale and offset (see example). |
clearCoat | Clear Coat Strength. Default is 0 (disabled). See example. |
clearCoatTexture | Clear Coat Strength Texture. Multiplied with clearCoat. |
clearCoatRoughness | Clear Coat Roughness. |
clearCoatRoughnessTexture | Clear Coat Roughness Texture. Multiplied with clearCoatRoughness. |
clearCoatNormalTexture | Clear Coat Normal Texture. Shares the original material’s normal if not set. |
By adjusting the metallic parameter, you’ll notice that higher metallic values make the surrounding environment clearer and transition from a white pure color to a colorful one. This occurs because dielectric materials (metallic = 1) reflect 100% of light at the surface, resulting in colorful environmental reflections:
In addition to the above general parameters, PBR provides two workflows: Metal-Roughness and Specular-Glossiness, corresponding to PBRMaterial and PBRSpecularMaterial.
Refers to the directional variation of light reflection on a surface, often manifesting as distinct gloss or reflection effects. This phenomenon is common in real-world materials, especially metals, fabrics, and hair.
Parameter | Description |
---|---|
anisotropy | Anisotropy Strength. Default is 0 (disabled). See example. |
anisotropyRotation | Anisotropy Rotation Angle. Rotates along tangent and bitangent space. |
anisotropyTexture | Anisotropy Texture. RG channels store anisotropy direction (multiplied with rotation); B channel stores strength (multiplied with anisotropy). |
Enabling Anisotropy
Used to simulate subtle glossy effects on fabric surfaces. This gloss is visible at specific viewing angles, resembling light scattering on silk, velvet, or other fine fibers.
Parameter | Description |
---|---|
sheenColor | Base Sheen Color. Determines the color observed when light interacts with the surface. |
sheenColorTexture | Sheen Color Texture. Provides complex color variations across the surface. |
sheenRoughness | Sheen Roughness. Lower values = smoother surfaces with concentrated gloss; higher values = rougher surfaces with softer, diffused gloss. |
sheenRoughnessTexture | Sheen Roughness Texture. Defines varying roughness across the surface. |
Enabling Sheen
Occurs when surface colors change with viewing and lighting angles. Common in soap bubbles, insect wings, and pearls.
Parameter | Description |
---|---|
iridescence | Thin Film Interference Strength (0–1). |
iridescenceTexture | Iridescence Strength Texture. |
iridescenceIOR | Iridescence Refractive Index. Controls light bending and resulting colors. |
iridescenceThicknessRange | Iridescence Thickness Range. Determines color variation. |
iridescenceThicknessTexture | Iridescence Thickness Texture. Affects color and thickness. |
Enabling Iridescence
Describes light passing through a material rather than being reflected or absorbed. When light hits a transparent/semi-transparent object, some light transmits through it.
Parameter | Description |
---|---|
transmission | Transmission Strength (0–1). 0 = no transmission; 1 = fully transparent. |
transmissionTexture | Transmission Texture. Samples R channel, multiplied with transmission. |
Enabling Transmission
According to physics, refraction relies on transmission. Refraction only occurs when transmission > 0.
Parameter | Description |
---|---|
attenuationColor | Absorption Color. Simulates optical absorption in colored glass, liquids, or gems. |
attenuationDistance | Attenuation Distance. Shorter distances = denser, more vivid colors; longer distances = softer color transitions. |
thickness | Refraction Thickness. Controls light bending. Larger values = more pronounced refraction. |
thicknessTexture | Thickness Texture. Samples G channel; white = thicker, black = thinner. Multiplied with thickness. |
Enabling Refraction
For refraction calculations, we assume:
- Use a simplified geometry shape to approximate surface properties.
- Use refractionMode to define the refraction mode.
refractionMode | Description |
---|---|
Sphere | Uses spheres to approximate curved surface refraction. |
Planar | Uses planes for flat surface refraction. |
Parameter | Description |
---|---|
specularColor | Specular Color. Unlike metal-roughness workflows, this directly defines specular color (only active when metal-roughness workflow is disabled). |
glossiness | Glossiness. Opposite of roughness (only active when metal-roughness workflow is disabled). |
specularGlossinessTexture | Specular Glossiness Texture. Multiplied with specular and glossiness. |
Note: PBR must enable ambient lighting.
For script-based material usage, refer to the material usage tutorial.