feat: BlackHoleParams tunable resource
This commit is contained in:
parent
d039064efa
commit
1a2b157ef3
@ -5,6 +5,7 @@ use bevy::window::WindowPlugin;
|
|||||||
mod web;
|
mod web;
|
||||||
mod render;
|
mod render;
|
||||||
mod camera;
|
mod camera;
|
||||||
|
mod params;
|
||||||
|
|
||||||
fn main() {
|
fn main() {
|
||||||
// On web, abort startup if WebGPU isn't available and show a message.
|
// On web, abort startup if WebGPU isn't available and show a message.
|
||||||
|
|||||||
52
src/params.rs
Normal file
52
src/params.rs
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
use bevy::prelude::*;
|
||||||
|
|
||||||
|
/// All tunable black-hole parameters. Edited by the egui panel (Task 17),
|
||||||
|
/// mirrored into BlackHoleUniforms each frame (Task 7).
|
||||||
|
#[derive(Resource, Clone)]
|
||||||
|
pub struct BlackHoleParams {
|
||||||
|
// Physics (natural units, Rs = 1)
|
||||||
|
pub rs: f32,
|
||||||
|
// Accretion disk
|
||||||
|
pub disk_inner: f32,
|
||||||
|
pub disk_outer: f32,
|
||||||
|
pub disk_tilt: f32, // radians, tilt of disk plane vs. camera
|
||||||
|
pub disk_brightness: f32,
|
||||||
|
pub disk_rotation_speed: f32,
|
||||||
|
pub doppler_enabled: bool,
|
||||||
|
pub doppler_strength: f32,
|
||||||
|
// Renderer
|
||||||
|
pub steps: u32,
|
||||||
|
pub render_scale: f32,
|
||||||
|
pub star_intensity: f32,
|
||||||
|
pub grid_enabled: bool,
|
||||||
|
pub grid_density: f32,
|
||||||
|
// Background
|
||||||
|
pub skybox_intensity: f32,
|
||||||
|
// Planets (count matches the storage buffer; Task 14)
|
||||||
|
pub planet_count: u32,
|
||||||
|
// Kerr (Phase 2; unused in Phase 1)
|
||||||
|
pub spin: f32,
|
||||||
|
}
|
||||||
|
|
||||||
|
impl Default for BlackHoleParams {
|
||||||
|
fn default() -> Self {
|
||||||
|
Self {
|
||||||
|
rs: 1.0,
|
||||||
|
disk_inner: 3.0,
|
||||||
|
disk_outer: 15.0,
|
||||||
|
disk_tilt: 1.318, // ~75.5 deg, matching the reference video
|
||||||
|
disk_brightness: 1.0,
|
||||||
|
disk_rotation_speed: 0.5,
|
||||||
|
doppler_enabled: true,
|
||||||
|
doppler_strength: 1.0,
|
||||||
|
steps: 300,
|
||||||
|
render_scale: 1.0,
|
||||||
|
star_intensity: 1.0,
|
||||||
|
grid_enabled: false,
|
||||||
|
grid_density: 1.0,
|
||||||
|
skybox_intensity: 0.0, // procedural stars only by default
|
||||||
|
planet_count: 0,
|
||||||
|
spin: 0.0,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -11,6 +11,7 @@ impl Plugin for BlackHolePlugin {
|
|||||||
.add_systems(Startup, spawn_fullscreen_quad)
|
.add_systems(Startup, spawn_fullscreen_quad)
|
||||||
.add_systems(Update, update_time)
|
.add_systems(Update, update_time)
|
||||||
.init_resource::<crate::camera::OrbitCamera>()
|
.init_resource::<crate::camera::OrbitCamera>()
|
||||||
|
.init_resource::<crate::params::BlackHoleParams>()
|
||||||
.add_systems(Update, crate::camera::orbit_controller);
|
.add_systems(Update, crate::camera::orbit_controller);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user