StandardMaterial

StandardMaterial is Bevy’s primary PBR (Physically Based Rendering) material component. It lives in bevy_pbr::prelude and defines the surface properties used for mesh rendering in the standard PBR pipeline.

Every mesh entity rendered with the PBR pipeline requires a Handle<StandardMaterial> component.

Key properties

PropertyTypeDescription
base_colorColorSurface color before lighting. Diffuse albedo for non-metallic, specular for metallic. Multiplied by base_color_texture if set.
base_color_textureOption<Handle<Image>>Texture override for base color. Set base_color to Color::WHITE for texture-as-is.
perceptual_roughnessf320–1 surface roughness. 0 = mirror, 1 = fully diffuse.
metallicf320–1 metallic factor. 0 = dielectric, 1 = fully metallic.
reflectancef320.16–1.0 reflectance at normal incidence (F0). Default 0.5.
emissiveColorSelf-illumination color. LinearRgba::BLACK (default) = no emission.
clearcoatf320–1 clearcoat factor. Intensity of the thin transparent coating layer.
clearcoat_textureOption<Handle<Image>>Grayscale texture for partial clearcoat. Fixed in PR #24514.
transmissionf320–1 light transmission factor. Glass/water effects.
iorf32Index of Refraction. Default 1.5. Affects transmission roughness (PR #24453 fix).
specular_transmissionf320–1 specular component of transmission.

Recent fixes

  • 2026-06-03 — clearcoat texture propagation (#24514, issam3105): glTF ClearCoat materials now correctly propagate clearcoat_texture to StandardMaterial. Previously, partial coating (e.g., Khronos ClearCoatTest) was broken.
  • 2026-06-03 — transmission roughness IOR scaling (#24453, issam3105): ior now correctly scales transmission roughness. IOR=1.0 materials no longer appear blurry.

Usage patterns

// Basic usage
commands.spawn((
    Mesh3d(mesh_handle),
    MeshMaterial3d(material_handle),
));
 
// Creating a glass-like transmissive material
let glass = StandardMaterial {
    base_color: Color::srgba(1.0, 1.0, 1.0, 0.1),
    perceptual_roughness: 0.1,
    metallic: 0.0,
    reflectance: 0.5,
    transmission: 0.95,
    ior: 1.5,
    ..default()
};