first implementation, clamp seems to be off?

This commit is contained in:
zomseffen 2025-03-06 18:11:44 +01:00
parent 7a58ba9733
commit b581364f5a
8 changed files with 157 additions and 132 deletions
src/scene

View file

@ -22,8 +22,10 @@ pub fn generate_test_scene(scene: &mut Scene, data: &mut AppData) -> Result<(Poi
let mut rng = rand::thread_rng();
let grid_size = CHUNK_SIZE as i32;
let mut oct_tree1: OctTree<Cube> = OctTree::create(CHUNK_SIZE)?;
let mut oct_tree2: OctTree<Cube> = OctTree::create(CHUNK_SIZE)?;
let scale = 1.0;
let mut oct_tree1: OctTree<Cube> = OctTree::create(CHUNK_SIZE, scale)?;
let mut oct_tree2: OctTree<Cube> = OctTree::create(CHUNK_SIZE, scale)?;
for x_index in 0..grid_size {
for y_index in 0..grid_size {
@ -89,24 +91,24 @@ 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), color: vec3(1.0, 1.0, 1.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), color: vec3(0.5, 0.5, 0.5), 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(1.0, 1.0, 1.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 })));
let cube = Cuboid {
pos: vec3(11.0 + grid_size as f32, 11.0 + grid_size as f32, 11.0),
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),
tex_coord: vec2(0.0, 0.0),
size: Vector3 {x: 0.5, y: 0.5, z: 0.5}
size: Vector3 {x: 0.5, y: 0.5, z: 0.5} * scale
};
let index = scene.sized_vertices.len();
cube.draw(&data.topology, index, scene);
let cube = Cuboid {
pos: vec3(9.0 + grid_size as f32, 9.0 + grid_size as f32, 11.0),
pos: vec3(9.0 + grid_size as f32, 9.0 + grid_size as f32, 11.0) * scale,
color: vec3(1.0, 1.0, 1.0),
tex_coord: vec2(0.0, 0.0),
size: Vector3 {x: 0.5, y: 0.5, z: 0.5}
size: Vector3 {x: 0.5, y: 0.5, z: 0.5} * scale
};
let index = scene.sized_vertices.len();
cube.draw(&data.topology, index, scene);
@ -122,6 +124,8 @@ 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 scale = 1.0;
let grid_size = CHUNK_SIZE as i32;
let max_x = chunk_num_x * grid_size as usize;
@ -152,7 +156,7 @@ pub fn generate_test_scene2(scene: &mut Scene, data: &mut AppData, chunk_num_x:
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)?)));
oct_trees[z][y].push(Rc::new(RefCell::new(OctTree::<Cube>::create(CHUNK_SIZE, scale)?)));
}
}
}