stress test

This commit is contained in:
Lillian Vixe 2024-04-03 07:24:12 -07:00
parent 85580c3dc5
commit 4e6bd99e8c
3 changed files with 41 additions and 1 deletions

View file

@ -6,6 +6,7 @@
"./Cargo.toml",
"./Cargo.toml",
"./Cargo.toml",
"./Cargo.toml",
"./Cargo.toml"
],
"rust-analyzer.cargo.target": "wasm32-unknown-unknown"

View file

@ -6,7 +6,9 @@ use bevy::app::Update;
use bevy::asset::Assets;
use bevy::asset::Handle;
use bevy::ecs::component::Component;
use bevy::ecs::query::With;
use bevy::ecs::system::Query;
use bevy::ecs::system::Res;
use bevy::ecs::system::ResMut;
use bevy::math::Vec3;
use bevy::render::color::Color;
@ -14,7 +16,9 @@ use bevy::render::mesh::Indices;
use bevy::render::mesh::Mesh;
use bevy::render::mesh::PrimitiveTopology;
use bevy::render::render_asset::RenderAssetUsages;
use bevy::time::Time;
use bevy::utils::hashbrown::HashMap;
use rand::Rng;
pub mod inputs;
pub mod intersections;
@ -477,3 +481,33 @@ fn emit_cube_at(
indices.extend([len + 2, len + 3, len + 1, len + 1, len + 3, len]);
}
}
#[derive(Component)]
pub struct VoxelIterativeBuildTest {
pub timepast: f32,
pub count: usize,
}
pub fn iterate_voxels(
time: Res<Time>,
mut query: Query<(&mut OctTreeModelComponent, &mut VoxelIterativeBuildTest)>,
) {
for (mut model, mut iter) in &mut query {
iter.timepast += time.delta_seconds();
const TIME_STEP: f32 = 0.01;
while iter.timepast >= TIME_STEP && iter.count > 0 {
iter.timepast -= TIME_STEP;
let mut rng = rand::thread_rng();
let x: f32 = rng.gen_range(-10.0..10.0);
let y: f32 = rng.gen_range(-10.0..10.0);
let z: f32 = rng.gen_range(-10.0..10.0);
let vec = Vec3::new(x.round(), y.round(), z.round());
let r: f32 = rng.gen_range(0.0..1.0);
let g: f32 = rng.gen_range(0.0..1.0);
let b: f32 = rng.gen_range(0.0..1.0);
model.model.set_voxel_at_location(vec, Color::rgb(r, g, b));
iter.count -= 1;
}
}
}

View file

@ -3,7 +3,7 @@ pub mod mesh_plugin {
use crate::{
orbit_camera::orbit_camera::*,
vvlib::{octtree::OctTree, OctTreeModelComponent},
vvlib::{iterate_voxels, octtree::OctTree, OctTreeModelComponent, VoxelIterativeBuildTest},
};
pub struct PluginInitializer;
@ -11,6 +11,7 @@ pub mod mesh_plugin {
fn build(&self, app: &mut App) {
app.add_systems(Startup, setup);
app.add_systems(Update, pan_orbit_camera);
app.add_systems(Update, iterate_voxels);
}
}
@ -28,6 +29,10 @@ pub mod mesh_plugin {
..default()
},
model_oct,
VoxelIterativeBuildTest {
timepast: 0.,
count: 4096,
},
));
let camera_and_light_transform =