How Maya Maps Arnold Materials to glTF PBR

Exporting 3D assets from Autodesk Maya to the glTF (GL Transmission Format) standard requires translating proprietary shader networks—predominantly Arnold's aiStandardSurface—into the standardized glTF 2.0 Metallic-Roughness PBR material model. This process involves direct parameter conversion, texture channel packing, and the use of glTF material extensions to preserve material fidelity across real-time engines and web viewers.

Core Architecture Differences

Arnold is a production path-tracing renderer that uses an expansive physical uber-shader (aiStandardSurface) with complex light-interaction models, arbitrary ray depths, and decoupled specular components. Conversely, glTF 2.0 relies on an efficient, real-time-friendly Metallic-Roughness PBR model.

When exporting via Maya’s native glTF exporter, Maya's export pipeline evaluates the Arnold node graph and translates its inputs into glTF-compliant factors and packed texture maps.

Parameter Mapping Breakdown

1. Base Color and Diffuse

  • Arnold Input: baseColor combined with the base weight.
  • glTF Target: baseColorFactor and baseColorTexture.
  • Behavior: Maya calculates the effective diffuse color by multiplying the RGB value of baseColor by the scalar base weight. The resulting color or texture map is assigned directly to the glTF baseColorTexture (typically stored in sRGB color space).

2. Metallic and Roughness (Channel Packing)

  • Arnold Input: metalness and specularRoughness.
  • glTF Target: metallicRoughnessTexture (pbrMetallicRoughness).
  • Behavior: glTF requires a single packed linear texture (commonly known as an ORM texture) for surface roughness and metalness:
    • Green Channel: specularRoughness from Arnold is mapped to glTF's roughnessFactor / green texture channel.
    • Blue Channel: metalness from Arnold is mapped to glTF's metallicFactor / blue texture channel.
    • Red Channel: Often allocated to Ambient Occlusion (AO) if present, or set to 1.0.

3. Normal and Bump Mapping

  • Arnold Input: Normal or bump nodes connected to normalCamera.
  • glTF Target: normalTexture.
  • Behavior: Tangent-space normal maps connected via Maya's bump2d node (configured to "Tangent Space Normals") map directly to glTF's normalTexture. Maya handles the coordinate translation, ensuring the green channel (Y-axis) matches the standard OpenGL/glTF orientation (+Y up).

4. Emission

  • Arnold Input: emissionColor combined with the emission weight.
  • glTF Target: emissiveFactor and emissiveTexture.
  • Behavior: The exported emissive value is the product of emissionColor and emission. In standard glTF 2.0, emission values are clamped between 0.0 and 1.0 unless the engine or viewer supports the KHR_materials_emissive_strength extension for HDR values.

5. Specular and Index of Refraction (IOR)

  • Arnold Input: specularIOR, specularColor, and specular.
  • glTF Target: Standard glTF assumes a fixed dielectric F0 reflectance corresponding to an IOR of 1.5 (4% reflectance). If the Maya glTF exporter is configured with extension support, it translates non-default IOR and specular values using:
    • KHR_materials_ior: Receives the raw specularIOR value.
    • KHR_materials_specular: Receives specularColor and the specular weight.

6. Transmission and Refraction

  • Arnold Input: transmission weight and transmissionColor.
  • glTF Target: KHR_materials_transmission.
  • Behavior: Standard glTF core does not support volumetric transparency, treating opacity primarily as alpha cutout or alpha blending. Maya maps Arnold’s transmission to the KHR_materials_transmission extension, allowing real-time glass, liquids, and thin transmissive surfaces.

7. Clearcoat

  • Arnold Input: coat weight and coatRoughness.
  • glTF Target: KHR_materials_clearcoat.
  • Behavior: Arnold’s dedicated secondary specular layer maps directly to glTF's clearcoat extension, where the coat factor maps to clearcoatFactor and coatRoughness maps to clearcoatRoughnessFactor.

Unsupported and Non-Direct Features

Procedural Arnold utility nodes (such as aiCurvature, aiAmbientOcclusion, or complex layered procedural textures) cannot be natively translated into glTF runtime instructions. For these components to transfer accurately, Maya must bake the downstream result of the procedural network into static image textures prior to or during the glTF export process. Complex subsurface scattering (SSS) networks are also flattened or mapped using the KHR_materials_subsurface extension where supported.