From cc1f822f5c004b4acb5a30a5fc17feebbc18b8ed Mon Sep 17 00:00:00 2001 From: Brandon Thomas Date: Tue, 28 Apr 2020 03:08:25 -0400 Subject: [PATCH] add distance threshold and scaling --- src/graphics_imgui.rs | 4 ++-- src/point_cloud/gpu_point_cloud_converter.rs | 9 +++++++++ src/point_cloud/point_cloud_renderer.rs | 5 +++++ 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/src/graphics_imgui.rs b/src/graphics_imgui.rs index e30586ae41..1d7f639fcc 100644 --- a/src/graphics_imgui.rs +++ b/src/graphics_imgui.rs @@ -202,7 +202,7 @@ pub fn run(capture_provider: Arc, calibration_data: k4a_sys::k4 let change_delta = last_frame - last_change; - if change_delta > Duration::from_millis(5000) { + /*if change_delta > Duration::from_millis(5000) { colorization_strategy = match colorization_strategy { ColorizationStrategy::Simple => ColorizationStrategy::Shaded, // NB: We won't do simple. ColorizationStrategy::Shaded => ColorizationStrategy::Color, @@ -213,7 +213,7 @@ pub fn run(capture_provider: Arc, calibration_data: k4a_sys::k4 visualizer.set_colorization_strategy(colorization_strategy); last_change = Instant::now(); - } + }*/ //rebinder.restore(); diff --git a/src/point_cloud/gpu_point_cloud_converter.rs b/src/point_cloud/gpu_point_cloud_converter.rs index b5d6ea2789..cbfdb7a370 100644 --- a/src/point_cloud/gpu_point_cloud_converter.rs +++ b/src/point_cloud/gpu_point_cloud_converter.rs @@ -101,6 +101,15 @@ void main() // vertexPosition.x *= -1; + // Distance Threshold + // TODO: Make configurable. + if (vertexPosition.z > 1.5) { + alpha = 0.0f; + vertexPosition.x = 0.0; + vertexPosition.y = 0.0; + vertexPosition.z = 0.0; + } + imageStore(destTex, pixel, vec4(vertexPosition, alpha)); } "; diff --git a/src/point_cloud/point_cloud_renderer.rs b/src/point_cloud/point_cloud_renderer.rs index 0e0c57f14c..95db4c5b09 100644 --- a/src/point_cloud/point_cloud_renderer.rs +++ b/src/point_cloud/point_cloud_renderer.rs @@ -94,6 +94,11 @@ void main() ivec2 currentDepthPixelCoordinates = ivec2(gl_VertexID % pointCloudSize.x, gl_VertexID / pointCloudSize.x); vec3 vertexPosition = imageLoad(pointCloudTexture, currentDepthPixelCoordinates).xyz; + // Scale up while model view matrices not implemented. + vertexPosition.x *= 5.0; + vertexPosition.y *= 5.0; + vertexPosition.z *= 5.0; + gl_Position = projection * view * vec4(vertexPosition, 1); vertexColor = inColor;