stress test
This commit is contained in:
parent
85580c3dc5
commit
4e6bd99e8c
1
.vscode/settings.json
vendored
1
.vscode/settings.json
vendored
|
@ -6,6 +6,7 @@
|
|||
"./Cargo.toml",
|
||||
"./Cargo.toml",
|
||||
"./Cargo.toml",
|
||||
"./Cargo.toml",
|
||||
"./Cargo.toml"
|
||||
],
|
||||
"rust-analyzer.cargo.target": "wasm32-unknown-unknown"
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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 =
|
||||
|
|
Loading…
Reference in a new issue