Transmission — PBR Concept & Bevy Rendering

Transmission in Physically Based Rendering describes how light passes through a material — think glass, water, gemstones, or thin plastic. Unlike transparency (which often just controls alpha blending), transmission models the full light transport through the material volume, including refraction and roughness-based scattering.

How it works in PBR

In the glTF 2.0 PBR model (via KHR_materials_transmission), transmission is defined by:

  • Transmission factor (0–1): how much light passes through. 0 = fully opaque, 1 = fully transmissive.
  • Transmission texture (optional): a grayscale map for non-uniform transmission.
  • Index of Refraction (IOR): how much light bends when entering/exiting the material. Air = 1.0, water ≈ 1.33, glass ≈ 1.5, diamond ≈ 2.4.
  • Roughness: surface roughness of the transmissive material, affecting how scattered the transmitted light appears.

A key physical principle: when the IOR difference between two media is zero (IOR = 1.0, same as air), light should pass through without any scattering — it should be perfectly sharp. Roughness only matters when there’s a refractive boundary.

In Bevy

Bevy supports transmission in its PBR pipeline. Materials with transmission > 0 are rendered via screen-space transmission, where the scene behind the object is sampled and blurred according to the material’s roughness.

Recent fix (2026-06-03): PR #24453 fixed a bug where transmission roughness was not being scaled by IOR. This meant materials with IOR=1.0 would still appear blurry — contradicting physical behavior. The fix scales the applied roughness by the IOR value, so:

  • IOR=1.0 → perfectly sharp transmission (no blur)
  • Higher IOR → progressively more roughness influence

Practical implications

  • Fix affects material appearance of all transmissive models, especially those with IOR near 1.0.
  • Shader-only change — no Rust API modifications.
  • Tested against Khronos TransmissionRoughnessTest model.
  • If you’re comparing Bevy renders against glTF reference viewers, this makes transmission rendering physically correct.
  • clearcoat — related PBR surface coating concept
  • standard-material — Bevy’s StandardMaterial supports transmission through its PBR properties
  • bevy-pbr — the bevy_pbr crate that implements the PBR pipeline with transmission
  • bevy-rendering — Bevy rendering system overview