diff --git a/shaders/compiled/rt_compute.spv b/shaders/compiled/rt_compute.spv index c0e451b..1cbfcfe 100644 Binary files a/shaders/compiled/rt_compute.spv and b/shaders/compiled/rt_compute.spv differ diff --git a/shaders/rt_compute.comp b/shaders/rt_compute.comp index 13f9361..f1854b4 100644 --- a/shaders/rt_compute.comp +++ b/shaders/rt_compute.comp @@ -175,9 +175,9 @@ void main() { uint compound_start = 0; // iterate over the compounds and find the work index inside of it while (index > compounds[compound_start] * compounds[compound_start]) { - compound_start = compounds[compound_start + 2]; - index -= compounds[compound_start] * compounds[compound_start]; output_offset += compounds[compound_start] * compounds[compound_start] * compounds[compound_start]; + index -= compounds[compound_start] * compounds[compound_start]; + compound_start = compounds[compound_start + 2]; } // grid pos in the task uint compound_grid_size = compounds[compound_start]; @@ -307,7 +307,7 @@ void main() { } if (render) { - add_cube(gl_GlobalInvocationID.x * compound_grid_size + z, compound_scale, check_pos, color); + add_cube(output_offset + index * compound_grid_size + z, compound_scale, check_pos, color); } } diff --git a/src/main.rs b/src/main.rs index 9b36399..71bae1b 100644 --- a/src/main.rs +++ b/src/main.rs @@ -124,7 +124,7 @@ fn main() -> Result<()> { }, WindowEvent::KeyboardInput { device_id, event, is_synthetic } => { if event.logical_key == "w" { - app.cur_pos += app.view_direction * 0.1; + app.cur_pos += app.view_direction * 0.5; } if event.logical_key == "s" { app.cur_pos -= app.view_direction * 0.1; diff --git a/src/scene/generators.rs b/src/scene/generators.rs index 3aa7c64..b86a385 100644 --- a/src/scene/generators.rs +++ b/src/scene/generators.rs @@ -118,7 +118,7 @@ pub fn generate_test_scene(scene: &mut Scene, data: &mut AppData) -> Result<(Poi let tree_ref_two = Rc::new(RefCell::new(oct_tree2.clone())); scene.oct_trees = vec![vec![vec![tree_ref_two.clone(), tree_ref_two.clone(), tree_ref_two.clone()], vec![tree_ref_two.clone(), tree_ref_one.clone(), tree_ref_two.clone()], vec![tree_ref_two.clone(), tree_ref_two.clone(), tree_ref_two.clone()]], vec![vec![tree_ref_two.clone(), tree_ref_two.clone(), tree_ref_two.clone()], vec![tree_ref_two.clone(), tree_ref_one.clone(), tree_ref_two.clone()], vec![tree_ref_two.clone(), tree_ref_two.clone(), tree_ref_two.clone()]]]; - let mut comp = ShapeComposition::new(64); + let mut comp = ShapeComposition::new(128); comp.included_shapes.push(Rc::new(RefCell::new(Sphere::new(Vector3 { x: 5.0 + grid_size as f32, y: 5.0 + grid_size as f32, z: 10.0 }, Vector3 { x: 0.0, y: 0.0, z: 0.0 }, 2.0, Vector3 { x: 0, y: 255, z: 0 }, 64, false)))); comp.included_shapes.push(Rc::new(RefCell::new(Sphere::new(Vector3 { x: 5.0 + grid_size as f32, y: 5.0 + grid_size as f32, z: 10.0 }, Vector3 { x: 0.0, y: 0.0, z: 0.0 }, 2.5, Vector3 { x: 255, y: 0, z: 0 }, 64, false)))); comp.excluded_shapes.push(Rc::new(RefCell::new(Sphere::new(Vector3 { x: 5.0 + grid_size as f32, y: 5.0 + grid_size as f32, z: 11.5 }, Vector3 { x: 0.0, y: 0.0, z: 0.0 }, 1.5, Vector3 { x: 0, y: 255, z: 0 }, 64, false))));