#[derive(Debug, Clone, Copy, PartialEq)]
pub struct DwarfPlanetShaderData {
pub has_atmosphere: bool,
pub atmosphere_haze_opacity: f32,
pub sublimation_rate: f32,
pub surface_frost_coverage: f32,
}
impl DwarfPlanetShaderData {
pub fn pluto_like() -> Self {
Self {
has_atmosphere: true,
atmosphere_haze_opacity: 0.05,
sublimation_rate: 1e-8,
surface_frost_coverage: 0.6,
}
}
pub fn eris_like() -> Self {
Self {
has_atmosphere: false,
atmosphere_haze_opacity: 0.0,
sublimation_rate: 0.0,
surface_frost_coverage: 0.9,
}
}
pub fn ceres_like() -> Self {
Self {
has_atmosphere: false,
atmosphere_haze_opacity: 0.0,
sublimation_rate: 1e-10,
surface_frost_coverage: 0.05,
}
}
pub fn haumea_like() -> Self {
Self {
has_atmosphere: false,
atmosphere_haze_opacity: 0.0,
sublimation_rate: 0.0,
surface_frost_coverage: 0.8,
}
}
}