©Anton Podvalny

Table of Contents

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)(minus)
transmission_scatter (color3)(minus)
transmission_scatter_anisotropy (float)(minus)
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)(minus)
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)(minus)
coat IOR (float)coat_ior (float texture)
coat_darkening (float)(minus)
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) 1thin_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)(minus)
geometry_coat_normal (vector3)coat_bump_map (acolor texture)
geometry_coat_tangent (vector3)(minus)
  • No labels
Was this helpful?