Skip to content

Dispersion

glTF extension: KHR_materials_dispersion
glTF property: dispersion

Dispersion models chromatic aberration inside transmissive materials — the splitting of white light into its spectral components (e.g., prismatic glass, diamonds). It is a scalar constant; no texture input exists. Requires KHR_materials_dispersion to be enabled in the export options.

Note

Dispersion is only meaningful on transmissive materials. Enable KHR_materials_transmission alongside this extension.

Shader Attribute Notes
standardSurface, aiStandardSurface transmissionDispersion Unitless dispersion amount
openPBRSurface transmissionDispersionAbbeNumber Abbe number (different attribute name)
StingrayPBS not supported

Setting dispersion

standardSurface, aiStandardSurface: Set transmissionDispersion on the shader.

openPBRSurface: Set transmissionDispersionAbbeNumber on the shader.

Both export as dispersion. Only written when the value is greater than 0.0 (the default 0.0 means no dispersion).


Notes

  • Dispersion is scalar only — there is no texture slot.
  • Only written when the value is greater than 0.0.
  • standardSurface/aiStandardSurface use transmissionDispersion; openPBRSurface uses transmissionDispersionAbbeNumber. Both map directly to the glTF dispersion property.
  • StingrayPBS does not export KHR_materials_dispersion.

Example: diamond material

A diamond has high transmission, strong dispersion, and a thick volume. The setup below uses the recommended attribute values — adjust them to suit your asset.

standardSurface / aiStandardSurface:

Attribute Value Notes
transmission 1.0 Full transmission (must be > 0)
specularIOR 2.42 Index of refraction for diamond
transmissionDispersion 10.0 Dispersion amount
thickness (Extra Attributes) 0.02 Volume thickness in scene units
gltfDoubleSided (Extra Attributes) enabled Render both sides

openPBRSurface:

Attribute Value Notes
transmissionWeight 1.0 Full transmission (must be > 0)
specularIOR 2.42 Index of refraction for diamond
transmissionDispersionAbbeNumber 10.0 Abbe number
thickness (Extra Attributes) 0.02 Volume thickness in scene units
gltfDoubleSided (Extra Attributes) enabled Render both sides

Note

thickness and gltfDoubleSided are custom attributes managed by the plugin. They appear in the Extra Attributes section of the Attribute Editor and are auto-created on the first export.