ReconstructMe SDK
2.6.43-0
Real-time 3D reconstruction engine
|
Your very first steps with ReconstructMe SDK
This page familiarizes you with the structure of the API. First, we lay down the system requirements. Next, we skim over the basic interfaces provided by the API and explain what their purpose is and how they interact with each other. We will then move on to setting up a new C/C++ project and finally implement our first 3D real-time reconstruction example.
ReconstructMe requires specific hardware to provide real-time reconstruction experience. It makes heavy use of the computational power of modern graphic cards. In order to experience real-time reconstruction, we recommend a decent graphics card, both AMD and NVIDIA will work. We don't make any specific recommendations, but the graphic cards we are currently developing on are
You will also need a RGB-D sensor to perform real-time reconstruction. We've assembled a list of supported sensors plus reviews for your convenience.
ReconstructMe currently runs on Windows Vista/7/8/10 64bit operating systems. ReconstructMe SDK is compiled against Visual Studio 10 and targets 64bit mode. Since ReconstructMe SDK is plain C, integration into other versions of Visual Studio or languages is easily possible.
Note that ReconstructMe uses OpenCL. We recommend that you update your display and/or CPU drivers to the latest version: Here are links to NVIDIA, AMD and INTEL.
The Context interface provides object life-time management and maintains the communication with a computation device (GPU, CPU). Every program needs at least one instance of it. The Sensor interface provides access to Image data of the real world. This data is fed into a Volume where the actual reconstruction happens. The Surface interface allows the extraction of 3D triangle meshes from the reconstruction volume.
By default all interfaces created come with sensible default values. To adjust or access those settings, you can use the generic Options interface, which can be bound to any parameter set through so called binder-methods
. All available binders are listed on the Options Bindings page.
ReconstructMe API comes with inline visualization utilities available via the Viewing interface. These utilities are meant for debugging purposes and not for a production ready applications, since their implementation is layed out for general purpose, not performance.
For testing purposes ReconstructMe API a Recorder interface to stream Sensor to disk. This data can later be replayed using a special file sensor from the Sensor.
To improve the accuracy of your sensor, ReconstructMe API provides you with the Calibration interface. It allows you to estimate the intrinsic camera parameters (such as focal length, principal point and distortions). These parameters can later be used for reconstruction to compensate errors.
When running ReconstructMe SDK in commercial mode, you need to authenticate using License functionality.
In order to use ReconstructMe x64 API successfully from within your project, add the following line to the compiler's include directories
%REMEx64_ROOT_DIRECTORY%/inc
In case you are using Visual Studio, you might want to modify the above line to
$(REMEx64_ROOT_DIRECTORY)/inc
This will allow the Intellisense of Visual Studio to work properly. The REMEx64_ROOT_DIRECTORY
environment variable is set by the ReconstructMe x64 SDK installer to point to the root directory of the last installed version.
Next, for the linking step you need to tell the linker to link against
%REMEx64_ROOT_DIRECTORY%/lib/LibReconstructMeSDK.lib
in all configuration modes (debug, release). For the execution step you need to copy the content of
%REMEx64_ROOT_DIRECTORY%/bin/
to your application's start directory (i.e the directory where your .exe is located). In case you allowed the installer to modify your
PATH
environment variable, you can skip this step, as windows will find the required dynamic link libraries in the installation path. Remember though, to copy the files locally when redistributing your application.
For CMake users we ship package configuration files in
%REMEx64_ROOT_DIRECTORY%/cmake
A sample application using it can be found in
%REMEx64_ROOT_DIRECTORY%/cmake/CMakeLists.txt
The content of this file is shown here for convenience.
Now that your project is setup we can move on to your first example application. The example shows how to perform real-time reconstruction using a single sensor. Besides, built-in real-time visualization and surface visualization is used. The final mesh is saved in PLY format. This example omits error handling for clarity purposes. See Error Handling for a catch up on this.
First, include the necessary headers
Inside your main
method add the following code
More examples can be found at the examples page.