RapidPBR converts complex offline-render materials into PBR materials for use in real-time rendering. It is designed to work with many material setups, and includes smart handling of non-PBR behavior, however the best conversion results will occur when materials are created within PBR standards. The closer the input materials match these standards, the better your results will be.


Gamma Workflow

For the best compatibility with PBR materials, it is best to enable Gamma and set it to 2.2. 



RapidPBR converts materials into PBR using the glTF PBR material system, which is set up to work in sRGB color space, which in turn is fundamentally very similar to Gamma 2.2.


Bitmaps for inputs like Diffuse, Emissive, Reflection and Refraction each use sRGB color space, while all the other inputs use Linear color space. Normal maps should use Linear.


Color space for Diffuse textures should be Auto, or sRGB, or From 3ds max.


Color space for Normal Map textures should be None, or Inverse Gamma 1.0.


Normal map textures must be saved in Linear color space, without Gamma or sRGB. Use a histogram to check.


V-Ray Materials

The material system in V-Ray is very powerful and allows creators a great amount of control. However, some settings can be used to override physical plausibility, which will make accurate conversion very difficult. 



VRayMtl: Diffuse Roughness

Avoid using Diffuse Roughness. This can be used for extremely rough surfaces like unglazed ceramics, but it produces a minor visual change and is not available in metallic-roughness PBR.


VRayMtl: Reflection Roughness

In the BRDF rollout, set the option Use Roughness. This is not strictly necessary for good conversion as we will invert Glossiness when it is being used. However it is better to work natively with Reflection Roughness so it matches PBR metallic-roughness. It also works well with other tools such as the Adobe Substance 3D suite. 


The setting Use Roughness in a VrayMtl.


VRayMtl: Reflection Color

Reflection Color should be white for most materials. Increase the Roughness to reduce reflectivity. 


Most materials should use white Reflection Color.


It is very rare for real-world non-metallic materials to have a reduced or colored reflection value. Exceptions are Silk or Satin fabrics, which sometimes can show colored reflections.


For colored metals, see the Metalness control below.


VRayMtl: Fresnel Reflections

Do not disable Fresnel Reflections. Real-world surfaces always have Fresnel reflection behavior, and Fresnel is a built-in component of PBR materials. If this is disabled, RapidPBR cannot reproduce a faithful conversion.

The setting for Fresnel Reflections in a VRayMtl.


VRayMtl: Fresnel IOR Lock

Do not disable the Fresnel IOR Lock. PBR materials have a single IOR control for the whole material. For the best results, use the IOR under Refraction which can be used to control refractive materials. 


The setting for Fresnel IOR Lock in a VRayMtl.


VRayMtl: Refraction IOR

Use realistic IOR values for refractive materials. For example glass is 1.5, see https://pixelandpoly.com/ior.html. Do not use high IOR for metallic surfaces; instead set the Metalness value to 1.0 or use a Metalness texture.


The setting for Refraction IOR in a VRayMtl.


VRayMtl: Metalness

To create metallic surfaces, set the Metalness value to 1.0. This offers a more realistic surface response than using a high IOR value. 


For non-metals, set Metalness to 0, and set the Reflection Color to white.


For metals, set the Metalness value to 1.0, Reflection Color to white, and control the metallic color with Diffuse Color. 



This website is helpful for finding realistic PBR colors: https://physicallybased.info/

Set the Engine: to V-Ray then set the Color Space depending on how you wish to control the Diffuse Color:

  • VRayMtl Diffuse Color swatch uses Linear color, so on that website set Color Space = sRGB (Linear).
  • VRayColor node should be set to Color Gamma 2.2, so on that website set Color Space = sRGB.


Use sRGB (Linear) for the Diffuse Color swatch.


Use sRGB and Color Gamma 2.2 for the VRayColor node.


VRayMtl: Refraction Color

Colored glass can be created using black in Diffuse, white in Reflection, and the glass color in Refraction. This works well for glass with an even thickness, for example window glass.


Standard window glass has a greenish tint from iron oxide impurities.


VRayMtl: Fog Color

To represent refractive materials with differing thicknesses, Fog Color can be used instead of Refraction Color


With Fog Color it is essential to use real-world dimensions. The teapot in this example is about 6cm tall, and the thinnest glass in the spout is about 0.5cm thick. Which means we can set Depth(cm) to about 0.5 to get semi-accurate attenuation.  Be careful not to Scale an asset with Fog Color, since this will push the real-world dimensions of the model away from an accurate Depth(cm) value.


We recommend to not use a texture for Fog Color. This will not be converted to real-time PBR since none of the output formats support it.


A glass teapot with varying thickness. Thicker glass causes the color to attenuate and get darker.


Note: Currently we don't support the conversion of Fog Color. Once we add support for the glTF Volume extension, we will convert Fog Color into Attenuation Color and Thickness.


VRayMtl: Bump

It is best to use normal map textures for bump. When grayscale bump textures are used, this results in a slower conversion process, because PBR can only use normal maps for bump. 


V-Ray uses the DirectX convention for normal maps, which means the green channel is pointing down. If the normal map green channel is pointing up, use the Flip Green option in VRayNormalMap.


V-Ray uses the DirectX convention for normal maps.


If the green channel is pointing up, use the Flip Green setting.


Falloff Nodes

Avoid using Falloff nodes; this is a view-dependent effect which is tightly restricted in PBR material systems. The only way to enable edge brightening in glTF PBR is to use Sheen in VRayMtl, which will convert into the KHR_materials_sheen extension. 


The sheen effect is not available for USDz because it will not render on iOS devices in Quick Look nor in AR Quick Look.


Note: Currently we don't support the conversion of Sheen. Once we add support for the glTF Sheen extension, we will convert VRayMtl Sheen into glTF Sheen.