3ds Max Guidelines
The RapidPipeline DCC Importer 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.
DCC Importer 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 colored inputs like Diffuse, Emissive, Reflection and Refraction each use sRGB color space, while all the other inputs use linear color space. Normal maps should also 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.
UV Guidelines
Existing UVs can be preserved by DCC Importer, as long as the material ingredients do not require texture baking.
DCC Importer will always attempt to preserve the existing UVs if possible. It examines each material in depth, and chooses different conversion strategies depending on material complexity.
Whenever a material uses geometry-dependent inputs this requires baking, for example VRayDirt. These nodes rely on the shape of the model, and if they are present in a material then any tiling textures cannot be preserved as-is, they have to be baked into an "atlas" UV layout.
UV atlas is all coordinates within the 0-1 space, with no overlaps
Geometry-dependent examples include: VRayDirt, VRayCurvature, Vertex Color, and procedural textures (e.g. Noise, Smoke, Checker, etc.). Additionally, features which rely on specific UV layouts such as UDIMs and Real-World Scale (RWS) will require texture baking as well. In future updates we hope to be able to preserve UDIMs and RWS without baking them.
When baking is needed, existing UVs will be checked for overlaps and whether all UVs are contained within the 0-1 UV space. If UVs do not fit these criteria, and if the material ingredients require baking, then new UVs will be generated to prevent baking errors.
VRayMtl examples of increasing material complexity
- The metal material on the left has no texture inputs, so the UVs are simply removed on output.
- The brick and fabric materials in the middle use textures and color adjustments, so they can re-use their existing UV layouts.
- The chipped-plastic example on the right uses procedural textures and edge wear, which are both geometry-dependent, so this material must be baked. If the existing UVs do not conform to atlas contraints, new UVs will be generated.
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 can make accurate conversion 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, DCC Importer cannot reproduce a faithful conversion.
The setting for Fresnel Reflections in a VRayMtl.
VRayMtl: Fresnel IOR lock
It is best to not disable the Fresnel IOR lock, because PBR materials (as in glTF and USDz) have a single IOR control for the whole material.
For the best results, use the IOR value in Refraction to control the combined IOR value.
The setting for Fresnel IOR lock in a VRayMtl.
VRayMtl: Refraction IOR
It is best to use realistic IOR values for reflective and refractive materials. When Fresnel IOR is locked, the Refraction IOR controls both reflection and refraction, which is how IOR is implemented in most PBR systems.
For example glass is 1.5, see https://pixelandpoly.com/ior.html.
We recommend to avoid using high IOR for metallic surfaces; instead it is better to set the Metalness value to 1.0 or to use a Metalness texture.
The setting for Refraction IOR in a VRayMtl.
High IOR for Metalness
Although it is recommended not to use high IOR values, this can be converted automatically into Metalness by using the IOR to Metalness control in RapidPipeline DCC Importer.
This setting is available in the Cloud interface on upload, or it can be enabled in the CLI using the --iorToMetalness
flag, see DCC Importer CLI.
Note that enabling this setting will cause it to be applied to all materials in the scene.
A high IOR value in a VRayMtl being used to simulate metal.
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.
We do convert into glTF Sheen, which is a PBR standard for view-dependent effects.
VRayMtl: Sheen
Instead of using Falloff nodes, we recommend using the Sheen parameters in VRayMtl. RapidPipeline DCC Importer will convert this into glTF using the extension KHR_materials_sheen.
Sheen parameters in a VRayMtl are converted into Sheen parameters in a glTF Material
Note: The sheen effect is not available for USDz because it uses USDPreviewSurface which does not suport Sheen. When we create USDz files we simply omit Sheen.