This page provides information about the OpenPBR shading model in V-Ray Material in Maya.
Overview
OpenPBR is an open-source Physically-based Rendering shading model created by Adobe and Autodesk.
V-Ray implements it as a switchable model in the V-Ray Material. Currently, it is supported partially with V-Ray GPU.
Layer Structure
The main difference between the V-Ray material model and OpenPBR is the layers' structure. See the diagram for information on how OpenPBR's layers are calculated.
Fuzz Layer
OpenPBR's topmost layer is Fuzz, which is based on the "Practical Multiple-Scattering Sheen Using Linearly Transformed Cosines"; Tizian Zeltner et all; Siggraph 2022 paper. The Fuzz layer is calculated by itself, unlike in V-Ray Material, where Sheen is coupled with the Diffuse layer. The OpenPBR's Fuzz affects the Coat, Reflection, Refraction, and Diffuse layers, but is not affected by them.
Coat Layer
The Coat layer has an additional parameter, which controls anisotropy.
The Coat parameter simulates a clear, glossy top layer often found on materials like car paint or varnished wood. This layer reflects light, enhancing the visual depth of the material, and adds realism by mimicking physical coatings in the real world.
Coat Darkening
Coat Darkening is a parameter that controls how the coat layer impacts the appearance of the underlying layers, dielectric or metallic. This effect emulates how a clear coat layer slightly darkens the underlying material due to light absorption and scattering. By adjusting this parameter, you can create slight color changes, adding depth and making renders look more realistic.
Roughness
OpenPBR uses the roughness model to simulate light interaction with surfaces.
Roughness determines how smooth or rough a material's surface appears by controlling the scattering of light reflections. A lower roughness value results in sharper, more mirror-like reflections, while higher roughness values produce blurred, diffuse reflections. This parameter is crucial for simulating various surface finishes, from polished metal to matte materials like rubber or chalk.
Emission
V-Ray Self-Illumination corresponds to OpenPBR Emission, and the emission layer is positioned before the coat layer.
The Emission setting allows materials to emit light independently, creating glowing effects. This feature is often used to simulate lights, screens, or any surfaces that need to radiate brightness in a scene.
Thin Film Thickness
In VRayMtl, the thin-film thickness is measured in nanometers (nm), while in OpenPBR, the thickness is measured in micrometers (μm). For instance, a thickness of 0.5 μm in OpenPBR corresponds to 500 nm in VrayMtl. The conversion is handled internally.
Subsurface Scattering (SSS)
In OpenPBR, Subsurface Scattering (SSS) simulates light penetration and scattering beneath a material's surface, commonly seen in materials like skin, wax, or marble. It captures the effect of light entering the surface, scattering within, and exiting at a different location. OpenPBR defines SSS using parameters such as subsurface color and scale, which control the scattering intensity and depth. This ensures a physically accurate representation of translucent materials.
Metalness
Metalness determines whether a material behaves as a metal or a non-metal. Metallic materials (Metalness = 1) reflect light specularly, with the reflection color derived from the base color, and have no diffuse reflection. Non-metallic materials (Metalness = 0) combine diffuse and specular reflections, with the base color defining the diffuse component. This parameter helps achieve realistic material behavior by accurately simulating the optical properties of metals and non-metals.
Refraction
The refraction property of VRayMtl corresponds to the OpenPBR Transmission setting. The Refraction parameter controls the amount of light that passes through a surface, allowing it to simulate transparent or semi-transparent materials such as glass, water, or clear plastics. This parameter affects the visibility of background elements and other objects behind the material, resulting in realistic depth and light interaction.
By adjusting the Transmission setting, you can achieve a range of effects, from frosted glass to fully transparent surfaces.
Thin-Walled
The Thin-Walled setting determines if a material has thickness. When this option is enabled, objects are treated as having no inner volume, making it suitable for items like double-walled glass or thin sheets of plastic. Conversely, if the setting is disabled, the surface behaves like a solid material.
OpenPBR name (data type) | V-Ray plugin name (data type) | Maya UI name |
---|---|---|
base_color (color3) | diffuse (acolor texture) | Diffuse Color |
base_weight (float) | diffuse (acolor texture) | Amount |
base_diffuse_roughness (float) | roughness (float texture) | Roughness Amount |
base_metalness (float) | metalness (float texture) | Metalness |
specular_color (color3) | reflect (acolor texture) | Reflection Color |
specular_weight (float) | reflect (acolor texture) | Amount |
specular_roughness (float) | reflect_glossiness (float texture) | Reflection Roughness |
specular_roughness_anisotropy (float) | anisotropy (float texture) | Anisotropy |
specular_ior (float) | fresnel_ior (float texture) | Fresnel IOR |
transmission_weight (float) | refract (acolor texture) | Amount |
transmission_color (color3) | fresnel_ior (float texture) | Refraction Color |
transmission_depth (float) | fog_depth (float) | Depth |
transmission_scatter (color3) | ||
transmission_scatter_anisotropy (float) | ||
transmission_dispetion_scale (float) | dispersion_on (bool) | Dispersion |
transmission_dispetion_abbe_number (float) | dispersion (float) | Dispersion Abbe |
subsurface_weight (color3) | translucency_amount (float texture) | SSS Amount |
subsurface_color (color3) | translucency_color (acolor texture) | SSS Color |
subsurface_radius (float) | fog_color (color) | Scatter Radius |
subsurface_radius_scale (color3) | fog_mult (float) | Scale (cm) |
subsurface_scatter_anisotropy (float) | ||
coat_color (color3) | coat_color (acolor texture) | Coat Color |
coat_weght (float) | coat_amount (float texture) | Amount |
coat_roughness (float) | coat_glossiness (float texture) | Coat Roughness |
coat_roughness_anisotropy (float) | ||
coat IOR (float) | coat_ior (float texture) | IOR |
coat_darkening (float) | ||
fuzz_color (color3) | sheen_color (acolor texture) | Sheen Color |
fuzz_weight (float) | sheen_amount (float texture) | Amount |
fuzz_roughness (float) | sheen_glossiness (float texture) | Sheen Roughness |
emission_luminance (float) | self_illumination (acolor texture) | Self-Illumination |
emission_color (color3) | self_illumination (acolor texture) | Self-Illumination |
thin_film_weight (float) | thin_film_on (bool) | Enable Thin Film |
thin_film_thickness (float) 1 | thin_film_thickness_min (float) / thin_film_thickness_max (float) | Min / Max Thickness (nm) |
thin_film_ior (float) | thin_film_ior (float texture) | IOR |
geometry_opacity (float) | opacity (float texture) | Opacity Map |
geometry_thin_walled (boolean) | refract_thin_walled (bool) | Thin-walled |
geomenty_normal (vector3) | bump_map (acolor texture) | Map |
geometry_tangent (vector3) | ||
geometry_coat_normal (vector3) | coat_bump_map (acolor texture) | Bump Map |
geometry_coat_tangent (vector3) |