This page provides information about the OpenPBR shading model in V-Ray Material.
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's not supported with V-Ray GPU.
To use OpenPBR Shading Model:
BRDFVRayMtl::option_shading_model=1 where (0 - V-Ray, 1 - OpenPBR)
By default, this option is set to (0), V-Ray.
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.
Roughness
OpenPBR uses the roughness model to simulate light interaction with surfaces.
Emission
V-Ray Self-Illumination corresponds to OpenPBR Emission, and the emission layer is positioned before the coat layer.
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.
openPBR name (data type) | V-Ray plugin name (data type) |
---|---|
base_color (color3) | diffuse (acolor texture) |
base_weight (float) | diffuse (acolor texture) |
base_diffuse_roughness (float) | roughness (float texture) |
base_metalness (float) | metalness (float texture) |
specular_color (color3) | reflect (acolor texture) |
specular_weight (float) | reflect (acolor texture) |
specular_roughness (float) | reflect_glossiness (float texture) |
specular_roughness_anisotropy (float) | anisotropy (float texture) |
specular_ior (float) | fresnel_ior (float texture) |
transmission_weight (float) | refract (acolor texture) |
transmission_color (color3) | rfresnel_ior (float texture) |
transmission_depth (float) | |
transmission_scatter (color3) | |
transmission_scatter_anisotropy (float) | |
transmission_dispetion_scale (float) | dispersion_on (bool) |
transmission_dispetion_abbe_number (float) | dispersion (float) |
subsurface_weight (color3) | translucency_amount (float texture) |
subsurface_color (color3) | translucency_color (acolor texture) |
subsurface_radius (float) | fog_color (color) |
subsurface_radius_scale (color3) | fog_mult (float) |
subsurface_scatter_anisotropy (float) | |
coat_color (color3) | coat_color (acolor texture) |
coat_weght (float) | coat_amount (float texture) |
coat_roughness (float) | coat_glossiness (float texture) |
coat_roughness_anisotropy (float) | |
coat IOR (float) | coat_ior (float texture) |
coat_darkening (float) | |
fuzz_color (color3) | sheen_color (acolor texture) |
fuzz_weight (float) | sheen_amount (float texture) |
fuzz_roughness (float) | sheen_glossiness (float texture) |
emission_luminance (float) | self_illumination (acolor texture) |
emission_color (color3) | self_illumination (acolor texture) |
thin_film_weight (float) | thin_film_on (bool) |
thin_film_thickness (float) 1 | thin_film_thickness_min (float) / thin_film_thickness_max (float) |
thin_film_ior (float) | thin_film_ior (float texture) |
geometry_opacity (float) | opacity (float texture) |
geometry_thin_walled (boolean) | refract_thin_walled (bool) |
geomenty_normal (vector3) | bump_map (acolor texture) |
geometry_tangent (vector3) | |
geometry_coat_normal (vector3) | coat_bump_map (acolor texture) |
geometry_coat_tangent (vector3) |