cboillet / Caustic-Design

31 stars 16 forks source link

Caustic-Design-Project

There are two major parts in this project.

  1. Caustic-Design - handles Optimal-Transport and corresponding tasks
  2. Target Optimization - handles 3D Optimization

Caustic-Design

Note: This step is optional.. qmake is not fully functional in the current version. Please see the Build-Section for details.

Import in QT-Creator

Dependencies

Following dependencies are needed for the Caustic_Designer:

Debian dependencies as one-liner:
sudo apt-get install cmake libqt4-dev libcgal-dev libcgal-qt4-dev libblas-dev liblapack-dev libtbb-dev libmetis-dev libsuitesparse-dev liblbfgs-dev libtinyxml-dev

Build

We suggest using cmake to build the project. To do so, simple:

  1. Create Build Directory (e.g. mkdir build-Caustic_Design)
  2. Run cmake in the build directory (e.g. cd build-Caustic_Design && cmake ../Caustic_Design/)

You may also use qmake instead of cmake if you prefer qmake. But in the current version, suitesparse does not seem to be set correctly when installing it via apt-get.

Usage

Following sections describe the usage of the different steps for the caustic-design project.

Optimal Transport

To run the optimal transport, a source-image as well as a target-image needed. The rest of the steps are done automatically.


Loading source- and target-image

NOTE: Source- and Target-Image need to be of same ratio.


Configuration
All relevant values (amount of sites, multi-scale levels) can be configured in the config.h file.


Running To finally run the Optimal Transport:


Interpolation-> Natural Neigbors CGAL

// Assigned to: Cam
algorithm->compute interpolation to load the source image, and points (.dat) and weights (.weights) data from the OTM and run the interpolation


Target Optimization

Dependencies

Following libraries are needed:

Target Surface -> C++ (3D part)

// Assigned to: Cam
Input

Output

Computing the surface optomization
The code is located in target-surface-optimization folder
Prerequisits:

Debian dependencies as one-liner:
sudo apt-get install libglew-dev libsoil-dev