#[derive(Debug, Clone, Copy, PartialEq)]
pub struct BlackHoleMaterial {
pub shadow_color: [f32; 3],
pub accretion_inner_color: [f32; 3],
pub accretion_outer_color: [f32; 3],
pub jet_color: [f32; 3],
pub photon_ring_intensity: f32,
}
impl BlackHoleMaterial {
pub fn stellar_mass() -> Self {
Self {
shadow_color: [0.0, 0.0, 0.0],
accretion_inner_color: [0.8, 0.85, 1.0],
accretion_outer_color: [1.0, 0.5, 0.1],
jet_color: [0.4, 0.6, 1.0],
photon_ring_intensity: 3.0,
}
}
pub fn supermassive() -> Self {
Self {
shadow_color: [0.0, 0.0, 0.0],
accretion_inner_color: [1.0, 0.9, 0.8],
accretion_outer_color: [0.9, 0.4, 0.1],
jet_color: [0.5, 0.7, 1.0],
photon_ring_intensity: 6.0,
}
}
pub fn quiescent() -> Self {
Self {
shadow_color: [0.0, 0.0, 0.0],
accretion_inner_color: [0.3, 0.2, 0.1],
accretion_outer_color: [0.1, 0.05, 0.02],
jet_color: [0.0, 0.0, 0.0],
photon_ring_intensity: 0.5,
}
}
}