keeps track of iterations glaobally, fix endless loop at min border
This commit is contained in:
parent
e3829a73e4
commit
839907c8a7
5 changed files with 70 additions and 56 deletions
|
@ -224,8 +224,8 @@ impl App {
|
|||
image::create_texture_image_view(&device, &mut data)?;
|
||||
image::create_texture_sampler(&device, &mut data)?;
|
||||
|
||||
//let cur_pos = generators::generate_test_scene(&mut scene_handler, &mut data)?;
|
||||
let cur_pos = generators::generate_test_scene2(&mut scene_handler, &mut data, 31, 31,1, 5)?;
|
||||
let cur_pos = generators::generate_test_scene(&mut scene_handler, &mut data)?;
|
||||
//let cur_pos = generators::generate_test_scene2(&mut scene_handler, &mut data, 31, 31,1, 5)?;
|
||||
scene_handler.prepare_data(&instance, &device, &mut data)?;
|
||||
|
||||
buffer::create_uniform_buffers(&instance, &device, &mut data)?;
|
||||
|
|
|
@ -553,16 +553,18 @@ impl EmptyVolume {
|
|||
let mut bottom_neighbors = vec![];
|
||||
let mut bottom_elements_num = 0;
|
||||
let mut all_same = true;
|
||||
for x in 0..reference.borrow().size_x {
|
||||
for y in 0..reference.borrow().size_y {
|
||||
if let Some(c) = neighbors.get_element(reference.borrow().grid_position.x + x, reference.borrow().grid_position.y + y, z_min_pos) {
|
||||
bottom_elements_num += 1;
|
||||
bottom_neighbors.push(Some(c.clone()));
|
||||
all_same = all_same && (bottom_neighbors[0] == Some(c));
|
||||
}
|
||||
else {
|
||||
bottom_neighbors.push(None);
|
||||
all_same = all_same && (bottom_neighbors[0] == None);
|
||||
if reference.borrow().grid_position.z != 0 {
|
||||
for x in 0..reference.borrow().size_x {
|
||||
for y in 0..reference.borrow().size_y {
|
||||
if let Some(c) = neighbors.get_element(reference.borrow().grid_position.x + x, reference.borrow().grid_position.y + y, z_min_pos) {
|
||||
bottom_elements_num += 1;
|
||||
bottom_neighbors.push(Some(c.clone()));
|
||||
all_same = all_same && (bottom_neighbors[0] == Some(c));
|
||||
}
|
||||
else {
|
||||
bottom_neighbors.push(None);
|
||||
all_same = all_same && (bottom_neighbors[0] == None);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -639,16 +641,18 @@ impl EmptyVolume {
|
|||
let mut front_neighbors = vec![];
|
||||
let mut front_elements_num = 0;
|
||||
let mut all_same = true;
|
||||
for x in 0..reference.borrow().size_x {
|
||||
for z in 0..reference.borrow().size_z {
|
||||
if let Some(c) = neighbors.get_element(reference.borrow().grid_position.x + x, y_min_pos, reference.borrow().grid_position.z + z) {
|
||||
front_elements_num += 1;
|
||||
front_neighbors.push(Some(c.clone()));
|
||||
all_same = all_same && (front_neighbors[0] == Some(c));
|
||||
}
|
||||
else {
|
||||
front_neighbors.push(None);
|
||||
all_same = all_same && (front_neighbors[0] == None);
|
||||
if reference.borrow().grid_position.y != 0 {
|
||||
for x in 0..reference.borrow().size_x {
|
||||
for z in 0..reference.borrow().size_z {
|
||||
if let Some(c) = neighbors.get_element(reference.borrow().grid_position.x + x, y_min_pos, reference.borrow().grid_position.z + z) {
|
||||
front_elements_num += 1;
|
||||
front_neighbors.push(Some(c.clone()));
|
||||
all_same = all_same && (front_neighbors[0] == Some(c));
|
||||
}
|
||||
else {
|
||||
front_neighbors.push(None);
|
||||
all_same = all_same && (front_neighbors[0] == None);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -668,16 +672,18 @@ impl EmptyVolume {
|
|||
let mut left_neighbors = vec![];
|
||||
let mut left_elements_num = 0;
|
||||
let mut all_same = true;
|
||||
for y in 0..reference.borrow().size_y {
|
||||
for z in 0..reference.borrow().size_z {
|
||||
if let Some(c) = neighbors.get_element(x_min_pos, reference.borrow().grid_position.y + y, reference.borrow().grid_position.z + z) {
|
||||
left_elements_num += 1;
|
||||
left_neighbors.push(Some(c.clone()));
|
||||
all_same = all_same && (left_neighbors[0] == Some(c));
|
||||
}
|
||||
else {
|
||||
left_neighbors.push(None);
|
||||
all_same = all_same && (left_neighbors[0] == None);
|
||||
if reference.borrow().grid_position.x != 0 {
|
||||
for y in 0..reference.borrow().size_y {
|
||||
for z in 0..reference.borrow().size_z {
|
||||
if let Some(c) = neighbors.get_element(x_min_pos, reference.borrow().grid_position.y + y, reference.borrow().grid_position.z + z) {
|
||||
left_elements_num += 1;
|
||||
left_neighbors.push(Some(c.clone()));
|
||||
all_same = all_same && (left_neighbors[0] == Some(c));
|
||||
}
|
||||
else {
|
||||
left_neighbors.push(None);
|
||||
all_same = all_same && (left_neighbors[0] == None);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -58,8 +58,8 @@ pub fn generate_test_scene(scene: &mut Scene, data: &mut AppData) -> Result<(Poi
|
|||
pos: vec3(10.0, 10.0, 10.0),
|
||||
color: vec3(0.0, 0.0, 0.9),
|
||||
tex_coord: vec2(0.0, 0.0),
|
||||
transparent: false,
|
||||
roughness: 128,
|
||||
transparent: true,
|
||||
roughness: 32,
|
||||
};
|
||||
oct_tree1.set_cube(cube.clone());
|
||||
|
||||
|
@ -67,8 +67,8 @@ pub fn generate_test_scene(scene: &mut Scene, data: &mut AppData) -> Result<(Poi
|
|||
pos: vec3(10.0, 10.0, 9.0),
|
||||
color: vec3(0.0, 0.0, 0.9),
|
||||
tex_coord: vec2(0.0, 0.0),
|
||||
transparent: false,
|
||||
roughness: 128,
|
||||
transparent: true,
|
||||
roughness: 32,
|
||||
};
|
||||
oct_tree1.set_cube(cube.clone());
|
||||
|
||||
|
@ -91,7 +91,7 @@ pub fn generate_test_scene(scene: &mut Scene, data: &mut AppData) -> Result<(Poi
|
|||
};
|
||||
oct_tree2.set_cube(cube.clone());
|
||||
|
||||
scene.point_lights.push(Rc::new(RefCell::new(PointLight { pos: vec3(11.0 + grid_size as f32, 11.0 + grid_size as f32, 11.0) * scale, color: vec3(1.0, 1.0, 1.0), memory_start: 0 })));
|
||||
scene.point_lights.push(Rc::new(RefCell::new(PointLight { pos: vec3(11.0 + grid_size as f32, 11.0 + grid_size as f32, 11.0) * scale, color: vec3(2.0, 2.0, 2.0), memory_start: 0 })));
|
||||
scene.point_lights.push(Rc::new(RefCell::new(PointLight { pos: vec3(9.0 + grid_size as f32, 9.0 + grid_size as f32, 11.0) * scale, color: vec3(0.5, 0.5, 0.5), memory_start: 0 })));
|
||||
scene.directional_lights.push(Rc::new(RefCell::new(DirectionalLight { direction: vec3(1.0, 1.0, -1.0), color: vec3(0.1, 0.1, 0.1), memory_start: 0 })));
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue