Skip to content

Diffuse Transmission

glTF extension: KHR_materials_diffuse_transmission
glTF properties: diffuseTransmissionFactor · diffuseTransmissionTexture · diffuseTransmissionColorFactor · diffuseTransmissionColorTexture

Diffuse transmission models scattered light passing through a surface (e.g. wax, skin, frosted glass), distinct from the specular/refractive transmission in KHR_materials_transmission. Requires KHR_materials_diffuse_transmission to be enabled in the export options.

Shader Weight attribute Color attribute Notes
standardSurface, aiStandardSurface transmission transmissionColor
openPBRSurface transmissionWeight transmissionColor Different weight attribute name
StingrayPBS not supported not supported

Transmission weight

Factor only

Set the weight attribute directly on the shader.

  • standardSurface, aiStandardSurface: set transmission.
  • openPBRSurface: set transmissionWeight.

Exports as diffuseTransmissionFactor.

Note

A plain scalar on transmission or transmissionWeight is also used by classic transmission. To get a diffuse transmission result from a factor-only setup, pair it with a transmissionColor on the same shader.

Texture only

Color space: Raw

standardSurface · aiStandardSurface:
  aiImage.outAlpha  →  shader.transmission
  file.outAlpha     →  shader.transmission

openPBRSurface:
  aiImage.outAlpha  →  shader.transmissionWeight
  file.outAlpha     →  shader.transmissionWeight

Exports as diffuseTransmissionTexture. glTF reads diffuse transmission weight from the alpha channel.

Note

Use outAlpha, not outColorR. The red-channel path (outColorR) on the same attribute belongs to classic KHR_materials_transmission.

Factor + texture

glTF computes: diffuseTransmissionFactor × diffuseTransmissionTexture

  1. Connect the texture outAlphamultiplyDivide.input1X.
  2. Set the multiplier in multiplyDivide.input2X.
  3. Connect multiplyDivide.outputXshader.transmission (or transmissionWeight).
standardSurface · aiStandardSurface:
  texture.outAlpha  →  multiplyDivide.input1X  →  shader.transmission

openPBRSurface:
  texture.outAlpha  →  multiplyDivide.input1X  →  shader.transmissionWeight

The multiplier exports as diffuseTransmissionFactor.


Transmission color

Color factor only

Set transmissionColor directly on the shader.

Exports as diffuseTransmissionColorFactor.

Note

This color only participates in the diffuse transmission workflow when paired with a diffuse transmission weight setup.

Texture only

Color space: sRGB

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

Exports as diffuseTransmissionColorTexture.

Color factor + texture (tint)

glTF computes: diffuseTransmissionColorFactor × diffuseTransmissionColorTexture

  1. Connect texture.outColorcolorComposite.colorA.
  2. Set the tint on colorComposite.colorB.
  3. Set colorComposite to multiply mode.
  4. Connect colorComposite.outColorshader.transmissionColor.
standardSurface · aiStandardSurface · openPBRSurface:
  texture.outColor  →  colorComposite.colorA  →  shader.transmissionColor

The tint exports as diffuseTransmissionColorFactor.

Note

Changing the shader swatch while a texture is connected does not create a separate exported tint. Use the colorComposite setup above.


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

  • Diffuse transmission weight is a non-color workflow — use Raw color space.
  • Diffuse transmission color is a color workflow — use sRGB.
  • The weight texture uses the alpha channel (outAlpha); classic transmission uses the red channel (outColorR). Do not mix them on the same attribute.
  • standardSurface / aiStandardSurface use transmission for weight; openPBRSurface uses transmissionWeight.
  • StingrayPBS does not export KHR_materials_diffuse_transmission.