From 8375885a403493495d8eaa5198438c8948bc4ecd Mon Sep 17 00:00:00 2001 From: zomseffen <steffen@tom.bi> Date: Wed, 28 May 2025 15:04:58 +0200 Subject: [PATCH] volumetric in quad fragf finished for now. --- shaders/compiled/frag_rt_quad.spv | Bin 76768 -> 74304 bytes shaders/rt_quad.frag | 88 +++++++++++++++++------------- src/scene/generators.rs | 6 +- 3 files changed, 52 insertions(+), 42 deletions(-) diff --git a/shaders/compiled/frag_rt_quad.spv b/shaders/compiled/frag_rt_quad.spv index a738849b8da732710694744fb2f76179284f1f06..ff99d3f5c66a518a3a53221f0ae536d218268665 100644 GIT binary patch literal 74304 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 literal 76768 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Ñ_UrT;zjr*Igv0M9Fui>`$cV0_=X^s2)uCcqG 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 diff --git a/shaders/rt_quad.frag b/shaders/rt_quad.frag index d43de76..c59b4e4 100644 --- a/shaders/rt_quad.frag +++ b/shaders/rt_quad.frag @@ -337,6 +337,9 @@ Tracing trace_ray(uint volume_start, vec3 starting_pos, vec3 start_direction, fl float y_border = compound_pos.y + float((compound_grid_size) * uint(!y_pos)) * compound_scale; float z_border = compound_pos.z + float((compound_grid_size) * uint(!z_pos)) * compound_scale; + // go over the borders by this amount + float overstep = 0.00001 / length(direction); + if (!x_null) { x_factor = (x_border - pos.x) / direction.x; } else { @@ -352,6 +355,9 @@ Tracing trace_ray(uint volume_start, vec3 starting_pos, vec3 start_direction, fl } else { z_factor = max_factor; } + x_factor += overstep; + y_factor += overstep; + z_factor += overstep; vec3 intersection_pos = pos; bool is_x_hit = false; @@ -361,14 +367,14 @@ Tracing trace_ray(uint volume_start, vec3 starting_pos, vec3 start_direction, fl if ((compound_pos.x <= intersection_pos.x && intersection_pos.x <= compound_pos.x + float(compound_grid_size) * compound_scale) && (compound_pos.y <= intersection_pos.y && intersection_pos.y <= compound_pos.y + float(compound_grid_size) * compound_scale) && (compound_pos.z <= intersection_pos.z && intersection_pos.z <= compound_pos.z + float(compound_grid_size) * compound_scale)){ - hit_inside = true; + //hit_inside = true; } else { vec3 intersection_pos_x = pos + x_factor * direction; vec3 intersection_pos_y = pos + y_factor * direction; vec3 intersection_pos_z = pos + z_factor * direction; if ((compound_pos.x <= intersection_pos_x.x && intersection_pos_x.x <= compound_pos.x + float(compound_grid_size) * compound_scale) && (compound_pos.y <= intersection_pos_x.y && intersection_pos_x.y <= compound_pos.y + float(compound_grid_size) * compound_scale) && - (compound_pos.z <= intersection_pos_x.z && intersection_pos_x.z <= compound_pos.z + float(compound_grid_size) * compound_scale) && x_factor > 0.0) { + (compound_pos.z <= intersection_pos_x.z && intersection_pos_x.z <= compound_pos.z + float(compound_grid_size) * compound_scale) && x_factor > 0.0 && x_factor <= max_factor) { hit_inside = true; is_x_hit = true; intersection_pos = intersection_pos_x; @@ -376,7 +382,7 @@ Tracing trace_ray(uint volume_start, vec3 starting_pos, vec3 start_direction, fl if ((compound_pos.x <= intersection_pos_y.x && intersection_pos_y.x <= compound_pos.x + float(compound_grid_size) * compound_scale) && (compound_pos.y <= intersection_pos_y.y && intersection_pos_y.y <= compound_pos.y + float(compound_grid_size) * compound_scale) && - (compound_pos.z <= intersection_pos_y.z && intersection_pos_y.z <= compound_pos.z + float(compound_grid_size) * compound_scale) && y_factor > 0.0 && (y_factor < x_factor || !is_x_hit)) { + (compound_pos.z <= intersection_pos_y.z && intersection_pos_y.z <= compound_pos.z + float(compound_grid_size) * compound_scale) && y_factor > 0.0 && y_factor <= max_factor && (y_factor < x_factor || !is_x_hit)) { hit_inside = true; is_y_hit = true; intersection_pos = intersection_pos_y; @@ -384,7 +390,7 @@ Tracing trace_ray(uint volume_start, vec3 starting_pos, vec3 start_direction, fl if ((compound_pos.x <= intersection_pos_z.x && intersection_pos_z.x <= compound_pos.x + float(compound_grid_size) * compound_scale) && (compound_pos.y <= intersection_pos_z.y && intersection_pos_z.y <= compound_pos.y + float(compound_grid_size) * compound_scale) && - (compound_pos.z <= intersection_pos_z.z && intersection_pos_z.z <= compound_pos.z + float(compound_grid_size) * compound_scale) && z_factor > 0.0 && (z_factor < x_factor || !is_x_hit) && (z_factor < y_factor || !is_y_hit)) { + (compound_pos.z <= intersection_pos_z.z && intersection_pos_z.z <= compound_pos.z + float(compound_grid_size) * compound_scale) && z_factor > 0.0 && z_factor <= max_factor && (z_factor < x_factor || !is_x_hit) && (z_factor < y_factor || !is_y_hit)) { hit_inside = true; is_z_hit = true; intersection_pos = intersection_pos_z; @@ -400,6 +406,7 @@ Tracing trace_ray(uint volume_start, vec3 starting_pos, vec3 start_direction, fl uint oct_tree_address = oct_tree_index; // iterate through the oct_tree uint check_it = 0; + uint max_check_it = 60; uint prev_child = 0; uint prev_prev_child = 0; @@ -407,7 +414,7 @@ Tracing trace_ray(uint volume_start, vec3 starting_pos, vec3 start_direction, fl uvec3 parent_pos = uvec3(0, 0, 0); bool has_moved = false; - while (!result.has_hit && check_it < 60) { + while (!result.has_hit && check_it < max_check_it) { // failsafe to get out in case has_moved runs into an accuracy issue check_it ++; oct_tree_pos = vec3(grid_pos) * compound_scale + compound_pos; @@ -428,11 +435,6 @@ Tracing trace_ray(uint volume_start, vec3 starting_pos, vec3 start_direction, fl child_index = 1 * uint(oct_tree_address == oct_tree_mem[parent_index + 1]) + 2 * uint(oct_tree_address == oct_tree_mem[parent_index + 2]) + 3 * uint(oct_tree_address == oct_tree_mem[parent_index + 3]) + 4 * uint(oct_tree_address == oct_tree_mem[parent_index + 4]) + 5 * uint(oct_tree_address == oct_tree_mem[parent_index + 5]) + 6 * uint(oct_tree_address == oct_tree_mem[parent_index + 6]) + 7 * uint(oct_tree_address == oct_tree_mem[parent_index + 7]) + 8 * uint(oct_tree_address == oct_tree_mem[parent_index + 8]); // mark as done to avoid reinvestigating, since intersection_pos is on its edge children_open[child_index - 1] = false; - if (!has_moved) { - for (int i=0; i < child_index; i++) { - children_open[i] = false; - } - } prev_prev_child = prev_child; prev_child = oct_tree_address; @@ -440,15 +442,13 @@ Tracing trace_ray(uint volume_start, vec3 starting_pos, vec3 start_direction, fl grid_pos -= parent_child_vec(current_size, child_index); current_size *= 2; oct_tree_address = parent_index; - // todo remove once parent is implemented - //break; } else { // go down into child if (current_size == 2) { // check block if hit break if (oct_tree_mem[oct_tree_address + child_index] != 0) { result.has_hit = true; - result.end_color = uvec4(255, 0, 0, 32); + result.end_color = unpack_color(oct_tree_mem[oct_tree_address + child_index]); break; } } else { @@ -477,43 +477,57 @@ Tracing trace_ray(uint volume_start, vec3 starting_pos, vec3 start_direction, fl if (!x_null) { x_factor = (x_border - pos.x) / direction.x; + if (x_factor <= 0.0) { + x_factor = max_factor; + } } else { x_factor = max_factor; } if (!y_null) { y_factor = (y_border - pos.y) / direction.y; + if (y_factor <= 0.0) { + y_factor = max_factor; + } } else { y_factor = max_factor; } if (!z_null) { z_factor = (z_border - pos.z) / direction.z; + if (z_factor <= 0.0) { + z_factor = max_factor; + } } else { z_factor = max_factor; } float smallest_factor = min(min(x_factor, y_factor), z_factor); - has_moved = length(intersection_pos - (pos + smallest_factor * direction)) > 0.00001; - //has_moved = intersection_pos != (pos + smallest_factor * direction); + if (x_factor == smallest_factor) { + is_x_hit = true; + is_y_hit = false; + is_z_hit = false; + } + if (y_factor == smallest_factor) { + is_x_hit = false; + is_y_hit = true; + is_z_hit = false; + } + if (z_factor == smallest_factor) { + is_x_hit = false; + is_y_hit = false; + is_z_hit = true; + } + + // move a bit further to fully enter the next quadrant + smallest_factor += overstep; + + //has_moved = length(intersection_pos - (pos + smallest_factor * direction)) >= 0.00001; + has_moved = intersection_pos != (pos + smallest_factor * direction); intersection_pos = pos + smallest_factor * direction; } } uint hit_facing = uint(is_x_hit) * (2 + uint(x_pos)) + uint(is_y_hit) * (4 + uint(y_pos)) + uint(is_z_hit && !z_pos); //result.has_hit = true; - if (!has_moved) { - //result.has_hit = true; - } - if (!((compound_pos.x <= intersection_pos.x && intersection_pos.x <= compound_pos.x + float(compound_grid_size) * compound_scale) && - (compound_pos.y <= intersection_pos.y && intersection_pos.y <= compound_pos.y + float(compound_grid_size) * compound_scale) && - (compound_pos.z <= intersection_pos.z && intersection_pos.z <= compound_pos.z + float(compound_grid_size) * compound_scale))) { - //result.has_hit = true; - } - - if (!((compound_pos.x <= oct_tree_pos.x && oct_tree_pos.x <= compound_pos.x + float(compound_grid_size) * compound_scale) && - (compound_pos.y <= oct_tree_pos.y && oct_tree_pos.y <= compound_pos.y + float(compound_grid_size) * compound_scale) && - (compound_pos.z <= oct_tree_pos.z && oct_tree_pos.z <= compound_pos.z + float(compound_grid_size) * compound_scale))) { - //result.has_hit = true; - } result.end_pos = intersection_pos; result.end_facing = hit_facing; result.end_volume = volume_index; @@ -711,8 +725,7 @@ vec3 get_lighting_color(uint volume_start, vec3 starting_pos, vec4 orig_color_sa return color_sum; } -vec3 diffuse_tracing(uint volume_start, uvec2 raster_pos, vec3 pos, uint f) { - uvec4 color_roughness = sample_color_from_scene_info(volume_start, raster_pos, f); +vec3 diffuse_tracing(uint volume_start, uvec4 color_roughness, vec3 pos, uint f) { vec4 orig_color_sample = vec4(float(color_roughness.x) / 255.0, float(color_roughness.y) / 255.0, float(color_roughness.z) / 255.0, 1); vec3 normal = normal_for_facing(f); @@ -733,10 +746,6 @@ vec3 diffuse_tracing(uint volume_start, uvec2 raster_pos, vec3 pos, uint f) { return color_sum; } -vec3 diffuse_tracing(uint volume_start, vec2 raster_pos, vec3 pos, uint f) { - return diffuse_tracing(volume_start, uvec2(uint(floor(raster_pos.x)), uint(floor(raster_pos.y))), pos, f); -} - vec3 clamp_to_volume(uint volume_start, vec3 position) { float volume_pos_x = uintBitsToFloat(scene_info.infos[volume_start + 0]); float volume_pos_y = uintBitsToFloat(scene_info.infos[volume_start + 1]); @@ -766,7 +775,7 @@ vec3 add_reflection(vec3 view_vector, uint f, uint volume_start, vec3 pos, uvec4 vec3 reflection_direction = reflect_vector(view_vector, f); 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; + vec3 color_from_reflection = diffuse_tracing(reflection_tracing.end_volume, reflection_tracing.end_color, reflection_tracing.end_pos, reflection_tracing.end_facing) * orig_color_sample; color_sum = color_sum * (1.0 - reflectivity) + color_from_reflection * reflectivity; } } @@ -783,14 +792,15 @@ 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); + vec3 color_direct = diffuse_tracing(fragVolumeStart, color_roughness, clamped_pos, facing); 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) { //color_seen_through = vec3(float(t.end_color.x) / 255.0, float(t.end_color.y) / 255.0, float(t.end_color.z) / 255.0); - 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_color, 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); } else { @@ -804,7 +814,7 @@ void main() { //color_sum = color_seen_through; } else { - color_sum = diffuse_tracing(fragVolumeStart, clamped_raster_pos, clamped_pos, facing); + color_sum = diffuse_tracing(fragVolumeStart, color_roughness, clamped_pos, facing); color_sum = add_reflection(normalize(clamped_pos - ubo.camera_pos), facing, fragVolumeStart, clamped_pos, color_roughness, color_sum); } diff --git a/src/scene/generators.rs b/src/scene/generators.rs index a1a4a89..eca7594 100644 --- a/src/scene/generators.rs +++ b/src/scene/generators.rs @@ -94,7 +94,7 @@ pub fn generate_test_scene(scene: &mut Scene, data: &mut AppData) -> Result<(Poi scene.point_lights.push(Rc::new(RefCell::new(PointLight::init(vec3(11.0 + grid_size as f32, 11.0 + grid_size as f32, 11.0) * scale, vec3(2.0, 2.0, 2.0))))); //scene.point_lights.push(Rc::new(RefCell::new(PointLight::init(vec3(9.0 + grid_size as f32, 9.0 + grid_size as f32, 11.0) * scale, vec3(0.5, 0.5, 0.5))))); - scene.directional_lights.push(Rc::new(RefCell::new(DirectionalLight::init(vec3(1.0, 1.0, -1.0), vec3(0.1, 0.1, 0.1))))); + //scene.directional_lights.push(Rc::new(RefCell::new(DirectionalLight::init(vec3(1.0, 1.0, -1.0), vec3(0.1, 0.1, 0.1))))); let cube = Cuboid { pos: vec3(11.0 + grid_size as f32, 11.0 + grid_size as f32, 11.0) * scale, @@ -116,8 +116,8 @@ pub fn generate_test_scene(scene: &mut Scene, data: &mut AppData) -> Result<(Poi let tree_ref_one = Rc::new(RefCell::new(oct_tree1.clone())); 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()]]]; - //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()]]]; + //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()]]]; + 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()]]]; let mut comp = ShapeComposition::new(64); //comp.included_shapes.push(Rc::new(RefCell::new(Rect::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 }, Vector3 { x: 5.0, y: 5.0, z: 5.0 },Vector3 { x: 0, y: 0, z: 255 }, 64, false))));