From c369db913ca585ce03785eea3275d3d460ecf6be Mon Sep 17 00:00:00 2001
From: Nicolas Pope <nwpope@utu.fi>
Date: Sun, 21 Jul 2019 19:57:35 +0300
Subject: [PATCH] Put MLS params in config file

---
 applications/reconstruct/include/ftl/voxel_hash_params.hpp | 1 +
 applications/reconstruct/src/integrators.cu                | 3 ++-
 applications/reconstruct/src/voxel_scene.cpp               | 1 +
 3 files changed, 4 insertions(+), 1 deletion(-)

diff --git a/applications/reconstruct/include/ftl/voxel_hash_params.hpp b/applications/reconstruct/include/ftl/voxel_hash_params.hpp
index aa19368ea..a08bc7a61 100644
--- a/applications/reconstruct/include/ftl/voxel_hash_params.hpp
+++ b/applications/reconstruct/include/ftl/voxel_hash_params.hpp
@@ -28,6 +28,7 @@ struct __align__(16) HashParams {
 	float3 m_minBounds;
 	float3 m_maxBounds;
 	float m_spatialSmoothing;
+	float m_confidenceThresh;
 };
 
 }  // namespace voxhash
diff --git a/applications/reconstruct/src/integrators.cu b/applications/reconstruct/src/integrators.cu
index bc0baee89..203b19801 100644
--- a/applications/reconstruct/src/integrators.cu
+++ b/applications/reconstruct/src/integrators.cu
@@ -253,7 +253,8 @@ __global__ void integrateMLSKernel(HashData hashData, HashParams hashParams, int
 
 	// Calculate voxel sign values across a warp
 	int warpNum = i / WARP_SIZE;
-	uint solid_ballot = __ballot_sync(0xFFFFFFFF, (fabs(sdf) < 0.04f && weights > 20.0f) ? 1 : 0);
+	//uint laneMask = 1 << (i % WARP_SIZE);
+	uint solid_ballot = __ballot_sync(0xFFFFFFFF, (fabs(sdf) < hashParams.m_virtualVoxelSize && weights > hashParams.m_confidenceThresh) ? 1 : 0);
 	//uint valid_ballot = __ballot_sync(0xFFFFFFFF, (weights >= 1.0f) ? 1 : 0);
 
 	// Aggregate each warp result into voxel mask
diff --git a/applications/reconstruct/src/voxel_scene.cpp b/applications/reconstruct/src/voxel_scene.cpp
index 861e480e2..a1cdba97e 100644
--- a/applications/reconstruct/src/voxel_scene.cpp
+++ b/applications/reconstruct/src/voxel_scene.cpp
@@ -284,6 +284,7 @@ HashParams SceneRep::_parametersFromConfig() {
 	params.m_integrationWeightSample = value("SDFIntegrationWeightSample", 10);
 	params.m_integrationWeightMax = value("SDFIntegrationWeightMax", 255);
 	params.m_spatialSmoothing = value("spatialSmoothing", 0.04f); // 4cm
+	params.m_confidenceThresh = value("confidenceThreshold", 20.0f);
 	params.m_maxBounds = make_float3(
 		value("bbox_x_max", 2.0f),
 		value("bbox_y_max", 2.0f),
-- 
GitLab