From 839907c8a70bda94692e176d4d453686c41aa72e Mon Sep 17 00:00:00 2001
From: zomseffen <steffen@tom.bi>
Date: Thu, 13 Mar 2025 16:53:24 +0100
Subject: [PATCH] keeps track of iterations glaobally, fix endless loop at min
 border

---
 shaders/compiled/frag_rt_quad.spv | Bin 49312 -> 48596 bytes
 shaders/rt_quad.frag              |  46 ++++++++++++---------
 src/main.rs                       |   4 +-
 src/scene/empty_volume.rs         |  66 ++++++++++++++++--------------
 src/scene/generators.rs           |  10 ++---
 5 files changed, 70 insertions(+), 56 deletions(-)

diff --git a/shaders/compiled/frag_rt_quad.spv b/shaders/compiled/frag_rt_quad.spv
index d3b42758dd6695dd7320ed052f46ba1d4f98ceda..4b2eb6120e53d5c44e487212b939a74748a04a6c 100644
GIT binary patch
literal 48596
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

literal 49312
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

diff --git a/shaders/rt_quad.frag b/shaders/rt_quad.frag
index a7f8001..65f1bdd 100644
--- a/shaders/rt_quad.frag
+++ b/shaders/rt_quad.frag
@@ -34,6 +34,9 @@ int half_diffuse_raster_steps = int(scene_info.infos[2]);
 float raster_distance = uintBitsToFloat(scene_info.infos[3]);
 int raster_points = (2 * half_diffuse_raster_steps + 1) * (2 * half_diffuse_raster_steps + 1);
 float pos_infinity = uintBitsToFloat(0x7F800000);
+// set limit for maximal iterations
+uint max_iterations = max_num_lights * max_iterations_per_light * raster_points;
+uint iteration_num = 0;
 
 uvec4 unpack_color(uint val) {
     // left most 8 bits first
@@ -212,11 +215,10 @@ struct Tracing {
     bool has_transparent_hit;
 };
 
-Tracing trace_ray(uint volume_start, vec3 starting_pos, vec3 start_direction, float start_max_factor, uint start_cycle, uint max_cycle, bool allow_reflect) {
+Tracing trace_ray(uint volume_start, vec3 starting_pos, vec3 start_direction, float start_max_factor, bool allow_reflect) {
     vec3 direction = start_direction;
     float max_factor = start_max_factor;
     vec3 pos = starting_pos;
-    uint cycle = start_cycle;
     // setup volume info
     uint volume_index = volume_start;
     float volume_scale = uintBitsToFloat(scene_info.infos[volume_index + array_descr_offset + color_array_offset - 1]);
@@ -251,8 +253,8 @@ Tracing trace_ray(uint volume_start, vec3 starting_pos, vec3 start_direction, fl
     uvec2 end_raster_transparent;
     vec3 color_mul_transparent;
 
-    while (cycle < max_cycle) {
-        cycle ++;
+    while (iteration_num < max_iterations) {
+        iteration_num ++;
         float x_border = volume_pos_x + float((scene_info.infos[volume_index + 3]) * uint(x_pos)) * volume_scale - 0.5 * volume_scale;
         float y_border = volume_pos_y + float((scene_info.infos[volume_index + 4]) * uint(y_pos)) * volume_scale - 0.5 * volume_scale;
         float z_border = volume_pos_z + float((scene_info.infos[volume_index + 5]) * uint(z_pos)) * volume_scale - 0.5 * volume_scale;
@@ -370,8 +372,14 @@ Tracing trace_ray(uint volume_start, vec3 starting_pos, vec3 start_direction, fl
             }
         }
     }
+    /*if (iteration_num == max_iterations) {
+        end_color_transparent = uvec4(0, 0, 255, 255);
+        result.end_color = uvec4(0, 0, 255, 255);
+        result.color_mul = vec3(0.0, 0.0, 1.0);
+    }*/
+
     result.end_factor = min(min(x_factor, y_factor), z_factor);
-    result.end_cycle = cycle;
+    result.end_cycle = iteration_num;
 
     // in case we have a transparent hit but no hit afterwards
     if (!result.has_hit && result.has_transparent_hit) {
@@ -395,11 +403,9 @@ vec3 get_lighting_color(uint volume_start, vec3 starting_pos, vec4 orig_color_sa
     uint light_num = 0;
 
     // initialize color
-    vec3 color_sum = vec3(0.0, 0.0, 0.0) + (orig_color_sample.xyz * 0.005);
+    vec3 color_sum = vec3(0.0, 0.0, 0.0);// + (orig_color_sample.xyz * 0.005);
 
-    uint max_iterations = max_num_lights * max_iterations_per_light;
-    uint iteration = 0;
-    while (iteration < max_iterations) {
+    while (iteration_num < max_iterations) {
         // setup light info
         uint light_index = scene_info.infos[volume_start + 6 + light_num];
         if (light_index == 0) {
@@ -419,11 +425,12 @@ vec3 get_lighting_color(uint volume_start, vec3 starting_pos, vec4 orig_color_sa
         }
         vec3 light_color = get_light_color(light_index);
 
-        Tracing result = trace_ray(volume_start, starting_pos, light_direction, max_factor, iteration, max_iterations, false);
+        Tracing result = trace_ray(volume_start, starting_pos, light_direction, max_factor, false);
         // add result, if there is a hit the null vector will be added
         color_sum += float(!result.has_hit) * result.color_mul * max(dot(normal, normalize(light_direction)), 0.0) * (orig_color_sample.xyz * light_color) / (length(light_direction) * length(light_direction));
-        
-        iteration = result.end_cycle;
+        /*if (scene_info.infos[light_index] == 1) { 
+            color_sum = float(!result.has_hit) * result.color_mul;
+        }*/
 
         light_num += 1;
         if (light_num >= max_num_lights) {
@@ -487,7 +494,7 @@ vec3 add_reflection(vec3 view_vector, uint f, uint volume_start, vec3 pos, uvec4
     if (reflectivity > 0.01) {
         vec3 orig_color_sample = vec3(float(color_sample.x) / 255.0, float(color_sample.y) / 255.0, float(color_sample.z) / 255.0);
         vec3 reflection_direction = reflect_vector(view_vector, f);
-        Tracing reflection_tracing = trace_ray(volume_start, pos, reflection_direction, pos_infinity, 0, max_iterations_per_light, true);
+        Tracing reflection_tracing = trace_ray(volume_start, pos, reflection_direction, pos_infinity, true);
         if (reflection_tracing.has_hit || reflection_tracing.has_transparent_hit) {
             vec3 color_from_reflection = diffuse_tracing(reflection_tracing.end_volume, reflection_tracing.end_raster, reflection_tracing.end_pos, reflection_tracing.end_facing) * orig_color_sample;
             color_sum = color_sum * (1.0 - reflectivity) + color_from_reflection * reflectivity;
@@ -507,20 +514,21 @@ void main() {
     uint orig_neighbor = sample_neighbor_from_scene_info(fragVolumeStart, clamped_raster_pos, facing);
     if (orig_neighbor != 0) {
         vec3 color_direct = diffuse_tracing(fragVolumeStart, clamped_raster_pos, clamped_pos, facing);
-        color_direct = add_reflection(normalize(clamped_pos - ubo.camera_pos), facing, fragVolumeStart, clamped_pos, color_roughness, color_direct);
 
-        Tracing t = trace_ray(fragVolumeStart, ubo.camera_pos, clamped_pos - ubo.camera_pos, pos_infinity, 0, max_iterations_per_light, false);
+        Tracing t = trace_ray(fragVolumeStart, ubo.camera_pos, clamped_pos - ubo.camera_pos, pos_infinity, false);
         float opacity = float(color_roughness.w) / 255.0;
+        vec3 color_seen_through;
         if (t.has_hit) {
-            vec3 color_seen_through = diffuse_tracing(t.end_volume, t.end_raster, t.end_pos, t.end_facing) * orig_color_sample * t.color_mul;
+            color_seen_through = diffuse_tracing(t.end_volume, t.end_raster, t.end_pos, t.end_facing) * orig_color_sample * t.color_mul;
             color_seen_through = add_reflection(t.end_direction, t.end_facing, t.end_volume, t.end_pos, t.end_color, color_seen_through);
-
-            color_sum = opacity * color_direct + (1.0 - opacity) * color_seen_through;
         }
         else {
             // Todo: hit sky box
-            color_sum = opacity * color_direct + (1.0 - opacity) * vec3(0.0, 0.0, 0.0);
+            color_seen_through = vec3(0.0, 0.0, 0.0);
         }
+
+        color_direct = add_reflection(normalize(clamped_pos - ubo.camera_pos), facing, fragVolumeStart, clamped_pos, color_roughness, color_direct);
+        color_sum = opacity * color_direct + (1.0 - opacity) * color_seen_through;
     }
     else {
         color_sum = diffuse_tracing(fragVolumeStart, clamped_raster_pos, clamped_pos, facing);
diff --git a/src/main.rs b/src/main.rs
index 223503e..84a07ad 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -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)?;
diff --git a/src/scene/empty_volume.rs b/src/scene/empty_volume.rs
index 893cc92..b7f2cb9 100644
--- a/src/scene/empty_volume.rs
+++ b/src/scene/empty_volume.rs
@@ -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);
+                        }
                     }
                 }
             }
diff --git a/src/scene/generators.rs b/src/scene/generators.rs
index c40c5da..9461344 100644
--- a/src/scene/generators.rs
+++ b/src/scene/generators.rs
@@ -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 })));