Skip to content

Normal Map

glTF: normalTexture · normalTexture.scale

Normal maps encode per-fragment surface orientation in tangent space (RGB). They are non-color, linear textures. A scale factor can amplify or soften the effect.

Shader Attribute Notes
standardSurface, aiStandardSurface, openPBRSurface normalCamera Route through aiNormalMap for scale support
StingrayPBS TEX_normal_map + use_normal_map Direct texture workflow

Texture only

Color space: Raw

standardSurface · aiStandardSurface · openPBRSurface:
  aiImage.outColor  →  aiNormalMap  →  shader.normalCamera
  file.outColor     →  aiNormalMap  →  shader.normalCamera

StingrayPBS:
  file.outColor  →  shader.TEX_normal_map  (enable use_normal_map)

A direct texture → normalCamera connection (without aiNormalMap) is also supported for PBR shaders.

Exports as normalTexture.


Texture + scale

Use aiNormalMap and set aiNormalMap.strength to the value you want. The texture connects the same way as above.

Exports aiNormalMap.strength as normalTexture.scale.

Note

StingrayPBS does not export a normal scale value. Use a PBR shader if you need normalTexture.scale.


Green channel inversion

If any of these attributes are enabled on the aiNormalMap node, the exporter generates an inverted-green normal image so the glTF result matches the Maya viewport:

invertY · flipY · invert_y · invertGreen · invertG


UV transform

file nodes: set repeat, wrap, mirror, offset, and rotation on the connected place2dTexture.
aiImage nodes: wrap, scale, and offset export natively; rotation requires a place2dTexture.

UV set: assign via Maya's UV Set Editor or UV Linking — see UV Set Selection for node-type differences.


Notes

  • Normal maps are RGB tangent-space textures, not scalar grayscale maps. Always use Raw color space.
  • The recommended path for PBR shaders is texture → aiNormalMap → normalCamera.
  • StingrayPBS: use TEX_normal_map and use_normal_map; set UV transforms on the connected place2dTexture.