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:
baseColorcombined with thebaseweight. - glTF Target:
baseColorFactorandbaseColorTexture. - Behavior: Maya calculates the effective diffuse
color by multiplying the RGB value of
baseColorby the scalarbaseweight. The resulting color or texture map is assigned directly to the glTFbaseColorTexture(typically stored in sRGB color space).
2. Metallic and Roughness (Channel Packing)
- Arnold Input:
metalnessandspecularRoughness. - 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:
specularRoughnessfrom Arnold is mapped to glTF'sroughnessFactor/ green texture channel. - Blue Channel:
metalnessfrom Arnold is mapped to glTF'smetallicFactor/ blue texture channel. - Red Channel: Often allocated to Ambient Occlusion (AO) if present, or set to 1.0.
- Green Channel:
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
bump2dnode (configured to "Tangent Space Normals") map directly to glTF'snormalTexture. Maya handles the coordinate translation, ensuring the green channel (Y-axis) matches the standard OpenGL/glTF orientation (+Y up).
4. Emission
- Arnold Input:
emissionColorcombined with theemissionweight. - glTF Target:
emissiveFactorandemissiveTexture. - Behavior: The exported emissive value is the
product of
emissionColorandemission. In standard glTF 2.0, emission values are clamped between 0.0 and 1.0 unless the engine or viewer supports theKHR_materials_emissive_strengthextension for HDR values.
5. Specular and Index of Refraction (IOR)
- Arnold Input:
specularIOR,specularColor, andspecular. - 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 rawspecularIORvalue.KHR_materials_specular: ReceivesspecularColorand thespecularweight.
6. Transmission and Refraction
- Arnold Input:
transmissionweight andtransmissionColor. - 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_transmissionextension, allowing real-time glass, liquids, and thin transmissive surfaces.
7. Clearcoat
- Arnold Input:
coatweight andcoatRoughness. - glTF Target:
KHR_materials_clearcoat. - Behavior: Arnold’s dedicated secondary specular
layer maps directly to glTF's clearcoat extension, where the
coatfactor maps toclearcoatFactorandcoatRoughnessmaps toclearcoatRoughnessFactor.
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.