diff --git a/crates/bevy_pbr/src/pbr_material.rs b/crates/bevy_pbr/src/pbr_material.rs
index 998f728c11f14..aa4519414f27e 100644
--- a/crates/bevy_pbr/src/pbr_material.rs
+++ b/crates/bevy_pbr/src/pbr_material.rs
@@ -78,22 +78,27 @@ pub struct StandardMaterial {
/// Linear perceptual roughness, clamped to `[0.089, 1.0]` in the shader.
///
- /// Defaults to minimum of `0.089`.
+ /// Defaults to `0.5`.
///
/// Low values result in a "glossy" material with specular highlights,
/// while values close to `1` result in rough materials.
///
/// If used together with a roughness/metallic texture, this is factored into the final base
/// color as `roughness * roughness_texture_value`.
+ ///
+ /// 0.089 is the minimum floating point value that won't be rounded down to 0 in the
+ /// calculations used.
+ //
+ // Technically for 32-bit floats, 0.045 could be used.
+ // See
pub perceptual_roughness: f32,
- /// How "metallic" the material appears, within `[0.0, 1.0]`,
- /// going from dielectric to pure metallic.
+ /// How "metallic" the material appears, within `[0.0, 1.0]`.
///
- /// Defaults to `0.01`.
+ /// This should be set to 0.0 for dielectric materials or 1.0 for metallic materials.
+ /// For a hybrid surface such as corroded metal, you may need to use in-between values.
///
- /// The closer to `1` the value, the more the material will
- /// reflect light like a metal such as steel or gold.
+ /// Defaults to `0.00`, for dielectric.
///
/// If used together with a roughness/metallic texture, this is factored into the final base
/// color as `metallic * metallic_texture_value`.
@@ -236,19 +241,16 @@ pub struct StandardMaterial {
impl Default for StandardMaterial {
fn default() -> Self {
StandardMaterial {
+ // White because it gets multiplied with texture values if someone uses
+ // a texture.
base_color: Color::rgb(1.0, 1.0, 1.0),
base_color_texture: None,
emissive: Color::BLACK,
emissive_texture: None,
- // This is the minimum the roughness is clamped to in shader code
- // See
- // It's the minimum floating point value that won't be rounded down to 0 in the
- // calculations used. Although technically for 32-bit floats, 0.045 could be
- // used.
- perceptual_roughness: 0.089,
- // Few materials are purely dielectric or metallic
- // This is just a default for mostly-dielectric
- metallic: 0.01,
+ // Matches Blender's default roughness.
+ perceptual_roughness: 0.5,
+ // Metallic should generally be set to 0.0 or 1.0.
+ metallic: 0.0,
metallic_roughness_texture: None,
// Minimum real-world reflectance is 2%, most materials between 2-5%
// Expressed in a linear scale and equivalent to 4% reflectance see