#[derive(Debug, Clone, Copy, PartialEq)]
pub struct DwarfPlanetMaterial {
pub albedo: [f32; 3],
pub roughness: f32,
pub metallic: f32,
pub ice_fraction: f32,
}
impl DwarfPlanetMaterial {
pub fn nitrogen_ice() -> Self {
Self {
albedo: [0.72, 0.70, 0.68],
roughness: 0.2,
metallic: 0.0,
ice_fraction: 0.9,
}
}
pub fn methane_ice() -> Self {
Self {
albedo: [0.80, 0.78, 0.75],
roughness: 0.15,
metallic: 0.0,
ice_fraction: 0.95,
}
}
pub fn dark_tholin() -> Self {
Self {
albedo: [0.15, 0.10, 0.07],
roughness: 0.85,
metallic: 0.0,
ice_fraction: 0.1,
}
}
pub fn mixed_terrain() -> Self {
Self {
albedo: [0.40, 0.35, 0.30],
roughness: 0.6,
metallic: 0.0,
ice_fraction: 0.4,
}
}
pub fn cryovolcanic() -> Self {
Self {
albedo: [0.60, 0.65, 0.70],
roughness: 0.3,
metallic: 0.01,
ice_fraction: 0.7,
}
}
}