Converting 3DS Max models using V-Ray to glTF and USDZ

Interested in Converting your 3D Content to glTF and USDZ?

V-Ray is a rendering software application developed by Chaos Group. Powerful features offered by VRay makes it a popular rendering application. Converting models created on 3DS Max that use V-Ray to glTF and USDZ is not a straightforward process. As a result, we have developed a simple method that directly converts V-Ray to glTF and USDZ. The process involves preparation of the models before export, exporting a binary FBX file with embedded textures and uploading this FBX to our application at https://app.point105ar.com.

We’ve developed an algorithm to convert Vray materials to PBR and eventually to glTF and USDZ formats. We believe that this will enable you to deploy your 3D assets created with V-Ray’s powerful editing features to general purpose AR/VR/WebGL experiences using glTF and USDZ formats. From sharing a 3D Model for review on iMessages to deploying powerful consumer and industrial experiences on VR headsets or your app, you can do it all using V-Ray for 3DS Max.

V-Ray to glTF and USDZ

The most common material workflow supported by glTF and USDZ is called Metallic-Roughness. Metallic-Roughness is a Physically-Based Rendering workflow (or PBR) that produces renders that are physically accurate, relatively speaking. An advantage of using PBR materials is that they render fairly accurately under various lighting conditions. For applications where the lighting conditions are determined by the environment such as AR/VR, this is a very desirable feature.

V-Ray’s shading model is different from PBR’s shading system. We’ve developed an algorithm that combines V-Ray’s parameters and maps to create PBR based glTF and USDZ.

Please try out our VRay conversion tool on https://app.point105ar.com (FBX files using embedded textures) and let us know your feedback. If you face issues or if you need any features that you think will be useful/necessary, please do send us an email at info@point105ar.com.

Details on our VRay support

We support VRayMtl only today.
  1. The set of V-Ray parameters & maps we support
    1. Diffuse (Value and Map)
    2. Reflect (Value and Map)
    3. RGlossiness (Value and Map)
    4. Fresnel IOR (Value only)
    5. Refract (Value) - See “Transparency”
    6. Opacity (Map)
    7. Self-illumination (Value and Map)
    8. Bump (Map)
    9. Compound vraynormal map
    10. VRayLightMtl for Emissive material
      1. Note that glTF and USDZ do not support light emitting materials. So, glTF and USDZ output will be different from the V-Ray rendering.
    11. Two-sided materials
  2. Workaround for adding Ambient Occlusion maps
    1. Add AO Maps into the Fog Color slot
  3. Set of V-Ray parameters we do not support (or we ignore)
    1. Roughness (Value and Map)
    2. HGlossiness (Value and Map)
    3. Glossiness - (Value and Map)
    4. Abbe number
    5. Fog color/multiplier/bias (Value and Map) - (Fog Color Map is used for Ambient Occlusion)
    6. Translucency (Value and Map)
    7. IOR (Map and Value)
    8. Fresnel IOR (Map)
    9. Anisotropy
    10. An. rotation
    11. Refract (Map)
    12. Displace (Map)
    13. BRDF shaders
    14. Procedural maps - See Baking Maps
    15. Special maps such as VRayMultiSubTex or VRayGLSLTex - See Baking Maps
    16. Falloffs are not supported
    17. Environment (Map) - you can add these but will be ignored
  4. Coming soon
    1. VRayBlendMtl (coming soon)
      1. Implementing this is a lot of work and our engineers are hard at work on this.

Important

  • Ensure that color values are in Linear color space and images/textures/maps are in sRGB.
  • If textures are tiled or have any other options, they need to be baked into a single texture.
  • Bake procedural maps, compound and composite maps.
  • Remove falloff maps if you can (so the output glTF and USDZ will be closer to the input)
  • If the object’s color is a result of the environment lightmap or other lighting, our object will not resemble your VRay render.
  • Also, if the Reflect map contains colors that were intended to show lighting effects (such as specular highlights), our output object will contain the color in the base albedo or object’s color and might not look correct. In essence, the Reflect map should contain colors that represent the object’s color in metallic/reflective parts only.
  • Check your mesh before exporting
    • Collapse modifier stack,
    • Check face normals,
    • Remove hidden objects and splines
  • Make sure you export a binary FBX file with embedded textures/media.

Transparency

Transparency is tricky to handle in glTF and USDZ as we cannot specify the render order of objects.
  • Refraction: glTF and USDZ do not support Refraction currently. As a result, we translate the refraction value to a transparency value. As result, the output will be different compared to the VRay render.
  • Do not have intersecting transparent materials
  • Do not have one transparent material contained within another transparent material

Baking Maps

Bake the following image maps:
  • Have bitmap level adjustments like "output" "cropping" tiling" etc.
  • Bitmaps used within compound maps like colour correction and procedural maps like noise
In order to bake any map, right click the relevant material editor slot at the highest level (for example, to bake a bitmap along with its color correction compound map, navigate to the colour correction settings and bake at that level, rather than at the lower bitmap level) and "Render Map" providing size and output details. Once baked the compound map must be removed and replaced with the baked image. We recommend using 2048 by 2048 textures for maps that show a lot of details (such as normal/bump maps or noise procedural maps etc.).
Note that if you are baking a texture from a color value, you might need to turn off any Linear conversion that you might have. Please do not hesitate to consult with us if you are having an issue with this.