fixes double neighbor assignement and cubes inside of empty volumes after skipping to grow
This commit is contained in:
parent
5353f28acd
commit
457d3e2d6b
7 changed files with 165 additions and 105 deletions
src/scene
|
@ -121,6 +121,7 @@ pub fn generate_test_scene(scene: &mut Scene, data: &mut AppData) -> Result<(Poi
|
|||
|
||||
pub fn generate_test_scene2(scene: &mut Scene, data: &mut AppData, chunk_num_x: usize, chunk_num_y: usize, chunk_num_z: usize, num_gaussians: usize) -> Result<(Point3<f32>)> {
|
||||
let mut rng = rand::thread_rng();
|
||||
|
||||
let grid_size = CHUNK_SIZE as i32;
|
||||
|
||||
let max_x = chunk_num_x * grid_size as usize;
|
||||
|
@ -130,7 +131,7 @@ pub fn generate_test_scene2(scene: &mut Scene, data: &mut AppData, chunk_num_x:
|
|||
let mut height_map = vec![vec![0.0; max_y]; max_x];
|
||||
|
||||
for i in 0..num_gaussians {
|
||||
let height = rng.gen_range(0..max_z / 2) as f32;
|
||||
let height = rng.gen_range(16..max_z / 2) as f32;
|
||||
let center_x = rng.gen_range(0..max_x) as f32;
|
||||
let center_y = rng.gen_range(0..max_y) as f32;
|
||||
|
||||
|
@ -144,7 +145,17 @@ pub fn generate_test_scene2(scene: &mut Scene, data: &mut AppData, chunk_num_x:
|
|||
}
|
||||
}
|
||||
|
||||
let oct_trees = vec![vec![vec![Rc::new(RefCell::new(OctTree::<Cube>::create(CHUNK_SIZE)?)); chunk_num_x]; chunk_num_y]; chunk_num_z];
|
||||
let mut oct_trees = vec![];
|
||||
|
||||
for z in 0..chunk_num_z {
|
||||
oct_trees.push(vec![]);
|
||||
for y in 0..chunk_num_y {
|
||||
oct_trees[z].push(vec![]);
|
||||
for x in 0..chunk_num_x {
|
||||
oct_trees[z][y].push(Rc::new(RefCell::new(OctTree::<Cube>::create(CHUNK_SIZE)?)));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for x in 0..max_x {
|
||||
for y in 0..max_y {
|
||||
|
@ -153,7 +164,7 @@ pub fn generate_test_scene2(scene: &mut Scene, data: &mut AppData, chunk_num_x:
|
|||
if height < max_z {
|
||||
let shade = (rng.gen_range(0..50) as f32) / 100.0;
|
||||
let cube = Cube {
|
||||
pos: vec3(x as f32, y as f32, (height % grid_size as usize) as f32),
|
||||
pos: vec3((x % grid_size as usize) as f32, (y % grid_size as usize) as f32, (height % grid_size as usize) as f32),
|
||||
color: vec3(shade, 1.0, shade),
|
||||
tex_coord: vec2(0.0, 0.0),
|
||||
transparent: false,
|
||||
|
@ -171,7 +182,7 @@ pub fn generate_test_scene2(scene: &mut Scene, data: &mut AppData, chunk_num_x:
|
|||
pillar_height -= 1;
|
||||
let shade = (rng.gen_range(1..50) as f32) / 100.0;
|
||||
let cube = Cube {
|
||||
pos: vec3(x as f32, y as f32, (pillar_height % grid_size as usize) as f32),
|
||||
pos: vec3((x % grid_size as usize) as f32, (y % grid_size as usize) as f32, (pillar_height % grid_size as usize) as f32),
|
||||
color: vec3(shade, shade / 2.0, 0.0),
|
||||
tex_coord: vec2(0.0, 0.0),
|
||||
transparent: false,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue