Skip to content

Twinklebear/topo-vol

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

topo-vol

topo-vol is a topology guided volume exploration and analysis tool, written for the final project in Bei Wang's Computational Topology Course. It's built on top of the Topology ToolKit and VTK for computation, uses ImGui for the UI, and a custom rendering system for the volume rendering. By computing relevant topological structures (e.g. the contour tree) and classifying segments of data corresponding to the branches in this tree we can avoid occlusion issues with global transfer functions and create more useful, detailed renderings. See the report for more details.

Building

In addition to VTK and TTK you'll need GLM and SDL2, these are likely available through your system's package manager if you're on Linux. We've only tested the program so far on Linux, however if you can build TTK on Windows or OS X you can likely build and run our program. OpenGL 4.3 is also required.

After getting GLM and SDL2 download and build VTK and follow the TTK installation instructions to build TTK. When running CMake you'll want to specify the location of the VTK cmake file if it's non-standard, and the path to TTKBaseConfig.cmake and TTKVTKConfig.cmake in TTK's install directory under lib/cmake/ttk. For example:

cmake -DVTK_DIR=<path to VTKConfig.cmake> \
      -DTTKBase_DIR=<path to TTKBaseConfig.cmake> \
      -DTTKVTK_DIR=<path to TTKVTKConfig.cmake> ...

If you're using the main repo of TTK, note that due to some issues with how TTK handles compiling packages depending on it as a library, our cmake will copy a modified ttk.cmake over the one in TTK's directory which will essentially build TTK into .lib files and accelerate compilation. After this you should be able to run make -j8 to build the program and make install to copy the shaders where the executable will look for them in the build directory. We recommend building the Release build for better performance.

Running

topo-vol currently supports scalar-field VTI files with data type char, unsigned char, short, unsigned short or float. To get some data to test on you can load some of the raw files from the Open SciVis Datasets collection directly, or load them in ParaView and export them as VTI. If you built TTK with ParaView you can use that build to convert the data. Note that larger datasets will require much longer computation time and memory. When loading a raw file the file name must contain information about the dimensions and data type, in the format used by the Open SciVis Datasets collection. The format is:

<volume name>_<X dim>x<Y dim>x<Z dim>_<data type>.raw

Here's an example screenshot after performing separate classification of different segments in the contour tree on the Nucleon dataset. For an example of using the system for analysis see the video of a Tooth analysis session.

nucleon classification

About

Topology Guided Volume Exploration

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages