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: settransmission.openPBRSurface: settransmissionWeight.
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
- Connect the texture
outAlpha→multiplyDivide.input1X. - Set the multiplier in
multiplyDivide.input2X. - Connect
multiplyDivide.outputX→shader.transmission(ortransmissionWeight).
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
- Connect
texture.outColor→colorComposite.colorA. - Set the tint on
colorComposite.colorB. - Set
colorCompositeto multiply mode. - Connect
colorComposite.outColor→shader.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
Rawcolor 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/aiStandardSurfaceusetransmissionfor weight;openPBRSurfaceusestransmissionWeight.StingrayPBSdoes not exportKHR_materials_diffuse_transmission.