Skip to content

Specular

glTF extension: KHR_materials_specular
glTF properties: specularFactor · specularTexture · specularColorFactor · specularColorTexture

Specular provides additional control over the Fresnel / F0 reflectance of a dielectric PBR material. specularFactor scales the overall specular intensity; specularColorFactor tints the specular highlight color. Requires KHR_materials_specular to be enabled in the export options.

Shader Factor attr Color attr
standardSurface, aiStandardSurface specular specularColor
openPBRSurface specularWeight specularColor
StingrayPBS not supported not supported

Specular intensity

Factor only

standardSurface, aiStandardSurface: Set specular on the shader.
openPBRSurface: Set specularWeight.

Only written when the value differs from the default 1.0 by more than 0.001. Exports as specularFactor.

Texture only

Color space: Raw

Connect the texture outColorR to the factor attribute:

standardSurface · aiStandardSurface:
  aiImage.outColorR  →  shader.specular
  file.outColorR     →  shader.specular

openPBRSurface:
  aiImage.outColorR  →  shader.specularWeight
  file.outColorR     →  shader.specularWeight

Exports as specularTexture.

Factor + texture

glTF computes: specularFactor × specularTexture

  1. Connect the texture outColorRmultiplyDivide.input1X.
  2. Set the multiplier in multiplyDivide.input2X.
  3. Connect multiplyDivide.outputXshader.specular (or specularWeight).

The multiplier exports as specularFactor.


Specular color

Factor only

Both standardSurface/aiStandardSurface and openPBRSurface use specularColor.

Only written when the value is not default white [1, 1, 1]. Exports as specularColorFactor.

Texture only

Color space: sRGB

Connect the texture outColor to specularColor:

standardSurface · aiStandardSurface · openPBRSurface:
  aiImage.outColor  →  shader.specularColor
  file.outColor     →  shader.specularColor

Exports as specularColorTexture.

Factor + texture (color tint)

To tint the texture color, use a colorComposite or multiplyDivide node. A scalar factor from multiplyDivide.input2X exports as specularColorFactor (broadcast to all three channels).


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

  • Specular intensity texture is Raw; specular color texture is sRGB. They are independent textures in glTF — there is no combined packing.
  • specularFactor is only written when it differs from the default 1.0. specularColorFactor is only written when the color is not white [1, 1, 1].
  • openPBRSurface uses specularWeight instead of specular for the intensity attribute; both shaders share specularColor for the color attribute.
  • StingrayPBS does not export KHR_materials_specular.